3v4l.org

run code in 300+ PHP versions simultaneously
<?php //https://github.com/php/php-src/blob/master/Zend/micro_bench.php function hallo() {} function hallo2() {} function simpleucall($n) { for ($i = 0; $i < $n; $i++) hallo(); } function simpleudcall($n) { for ($i = 0; $i < $n; $i++) hallo2(); } function simpleicall($n) { for ($i = 0; $i < $n; $i++) func_num_args(); } class Foo { static $a = 0; public $b = 0; const TEST = 0; static function read_static($n) { for ($i = 0; $i < $n; ++$i) $x = self::$a; } static function write_static($n) { for ($i = 0; $i < $n; ++$i) self::$a = 0; } static function isset_static($n) { for ($i = 0; $i < $n; ++$i) $x = isset(self::$a); } static function empty_static($n) { for ($i = 0; $i < $n; ++$i) $x = empty(self::$a); } static function f() {} static function call_static($n) { for ($i = 0; $i < $n; ++$i) self::f(); } function read_prop($n) { for ($i = 0; $i < $n; ++$i) $x = $this->b; } function write_prop($n) { for ($i = 0; $i < $n; ++$i) $this->b = 0; } function assign_add_prop($n) { for ($i = 0; $i < $n; ++$i) $this->b += 2; } function pre_inc_prop($n) { for ($i = 0; $i < $n; ++$i) ++$this->b; } function pre_dec_prop($n) { for ($i = 0; $i < $n; ++$i) --$this->b; } function post_inc_prop($n) { for ($i = 0; $i < $n; ++$i) $this->b++; } function post_dec_prop($n) { for ($i = 0; $i < $n; ++$i) $this->b--; } function isset_prop($n) { for ($i = 0; $i < $n; ++$i) $x = isset($this->b); } function empty_prop($n) { for ($i = 0; $i < $n; ++$i) $x = empty($this->b); } function g() {} function call($n) { for ($i = 0; $i < $n; ++$i) $this->g(); } function read_const($n) { for ($i = 0; $i < $n; ++$i) $x = $this::TEST; } } function read_static($n){ for ($i = 0; $i < $n; ++$i) $x = Foo::$a; } function write_static($n) { for ($i = 0; $i < $n; ++$i) Foo::$a = 0; } function isset_static($n) { for ($i = 0; $i < $n; ++$i) $x = isset(Foo::$a); } function empty_static($n) { for ($i = 0; $i < $n; ++$i) $x = empty(Foo::$a); } function call_static($n) { for ($i = 0; $i < $n; ++$i) Foo::f(); } function create_object($n) { for ($i = 0; $i < $n; ++$i) $x = new Foo(); } define('TEST', null); function read_const($n) { for ($i = 0; $i < $n; ++$i) $x = TEST; } function read_auto_global($n) { for ($i = 0; $i < $n; ++$i) $x = $_GET; } $g_var = 0; function read_global_var($n) { for ($i = 0; $i < $n; ++$i) $x = $GLOBALS['g_var']; } function read_hash($n) { $hash = array('test' => 0); for ($i = 0; $i < $n; ++$i) $x = $hash['test'];} function read_str_offset($n) { $str = "test"; for ($i = 0; $i < $n; ++$i) $x = $str[1]; } function issetor($n) { $val = array(0,1,2,3,4,5,6,7,8,9); for ($i = 0; $i < $n; ++$i) $x = $val ?: null; } function issetor2($n) { $f = false; $j = 0; for ($i = 0; $i < $n; ++$i) $x = $f ?: $j + 1; } function ternary($n) { $val = array(0,1,2,3,4,5,6,7,8,9); $f = false; for ($i = 0; $i < $n; ++$i) $x = $f ? null : $val; } function ternary2($n) { $f = false; $j = 0; for ($i = 0; $i < $n; ++$i) $x = $f ? $f : $j + 1; } /*****/ function getmicrotime() { $t = gettimeofday(); return ($t['sec'] + $t['usec'] / 1000000);} const N = 50000; simpleucall(N); simpleudcall(N); simpleicall(N); Foo::write_static(N); Foo::isset_static(N); Foo::empty_static(N); read_static(N); write_static(N); isset_static(N); empty_static(N); Foo::call_static(N); call_static(N); $x = new Foo(); $x->read_prop(N); $x->write_prop(N); $x->assign_add_prop(N); $x->pre_inc_prop(N); $x->pre_dec_prop(N); $x->post_inc_prop(N); $x->post_dec_prop(N); $x->isset_prop(N); $x->empty_prop(N); $x->call(N); $x->read_const(N); create_object(N); read_const(N); read_auto_global(N); read_global_var(N); read_hash(N); read_str_offset(N); issetor(N); issetor2(N); ternary(N); ternary2(N);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/gM8r2
function name:  (null)
number of ops:  142
compiled vars:  !0 = $g_var, !1 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   43     0  E >   INIT_FCALL                                               'define'
          1        SEND_VAL                                                 'TEST'
          2        SEND_VAL                                                 null
          3        DO_ICALL                                                 
   48     4        ASSIGN                                                   !0, 0
   62     5        DECLARE_CONST                                            'N', 50000
   64     6        INIT_FCALL                                               'simpleucall'
          7        FETCH_CONSTANT                                   ~4      'N'
          8        SEND_VAL                                                 ~4
          9        DO_FCALL                                      0          
   65    10        INIT_FCALL                                               'simpleudcall'
         11        FETCH_CONSTANT                                   ~6      'N'
         12        SEND_VAL                                                 ~6
         13        DO_FCALL                                      0          
   66    14        INIT_FCALL                                               'simpleicall'
         15        FETCH_CONSTANT                                   ~8      'N'
         16        SEND_VAL                                                 ~8
         17        DO_FCALL                                      0          
   67    18        INIT_STATIC_METHOD_CALL                                  'Foo', 'write_static'
         19        FETCH_CONSTANT                                   ~10     'N'
         20        SEND_VAL                                                 ~10
         21        DO_FCALL                                      0          
   68    22        INIT_STATIC_METHOD_CALL                                  'Foo', 'isset_static'
         23        FETCH_CONSTANT                                   ~12     'N'
         24        SEND_VAL                                                 ~12
         25        DO_FCALL                                      0          
   69    26        INIT_STATIC_METHOD_CALL                                  'Foo', 'empty_static'
         27        FETCH_CONSTANT                                   ~14     'N'
         28        SEND_VAL                                                 ~14
         29        DO_FCALL                                      0          
   70    30        INIT_FCALL                                               'read_static'
         31        FETCH_CONSTANT                                   ~16     'N'
         32        SEND_VAL                                                 ~16
         33        DO_FCALL                                      0          
   71    34        INIT_FCALL                                               'write_static'
         35        FETCH_CONSTANT                                   ~18     'N'
         36        SEND_VAL                                                 ~18
         37        DO_FCALL                                      0          
   72    38        INIT_FCALL                                               'isset_static'
         39        FETCH_CONSTANT                                   ~20     'N'
         40        SEND_VAL                                                 ~20
         41        DO_FCALL                                      0          
   73    42        INIT_FCALL                                               'empty_static'
         43        FETCH_CONSTANT                                   ~22     'N'
         44        SEND_VAL                                                 ~22
         45        DO_FCALL                                      0          
   74    46        INIT_STATIC_METHOD_CALL                                  'Foo', 'call_static'
         47        FETCH_CONSTANT                                   ~24     'N'
         48        SEND_VAL                                                 ~24
         49        DO_FCALL                                      0          
   75    50        INIT_FCALL                                               'call_static'
         51        FETCH_CONSTANT                                   ~26     'N'
         52        SEND_VAL                                                 ~26
         53        DO_FCALL                                      0          
   76    54        NEW                                              $28     'Foo'
         55        DO_FCALL                                      0          
         56        ASSIGN                                                   !1, $28
   77    57        INIT_METHOD_CALL                                         !1, 'read_prop'
         58        FETCH_CONSTANT                                   ~31     'N'
         59        SEND_VAL_EX                                              ~31
         60        DO_FCALL                                      0          
   78    61        INIT_METHOD_CALL                                         !1, 'write_prop'
         62        FETCH_CONSTANT                                   ~33     'N'
         63        SEND_VAL_EX                                              ~33
         64        DO_FCALL                                      0          
   79    65        INIT_METHOD_CALL                                         !1, 'assign_add_prop'
         66        FETCH_CONSTANT                                   ~35     'N'
         67        SEND_VAL_EX                                              ~35
         68        DO_FCALL                                      0          
   80    69        INIT_METHOD_CALL                                         !1, 'pre_inc_prop'
         70        FETCH_CONSTANT                                   ~37     'N'
         71        SEND_VAL_EX                                              ~37
         72        DO_FCALL                                      0          
   81    73        INIT_METHOD_CALL                                         !1, 'pre_dec_prop'
         74        FETCH_CONSTANT                                   ~39     'N'
         75        SEND_VAL_EX                                              ~39
         76        DO_FCALL                                      0          
   82    77        INIT_METHOD_CALL                                         !1, 'post_inc_prop'
         78        FETCH_CONSTANT                                   ~41     'N'
         79        SEND_VAL_EX                                              ~41
         80        DO_FCALL                                      0          
   83    81        INIT_METHOD_CALL                                         !1, 'post_dec_prop'
         82        FETCH_CONSTANT                                   ~43     'N'
         83        SEND_VAL_EX                                              ~43
         84        DO_FCALL                                      0          
   84    85        INIT_METHOD_CALL                                         !1, 'isset_prop'
         86        FETCH_CONSTANT                                   ~45     'N'
         87        SEND_VAL_EX                                              ~45
         88        DO_FCALL                                      0          
   85    89        INIT_METHOD_CALL                                         !1, 'empty_prop'
         90        FETCH_CONSTANT                                   ~47     'N'
         91        SEND_VAL_EX                                              ~47
         92        DO_FCALL                                      0          
   86    93        INIT_METHOD_CALL                                         !1, 'call'
         94        FETCH_CONSTANT                                   ~49     'N'
         95        SEND_VAL_EX                                              ~49
         96        DO_FCALL                                      0          
   87    97        INIT_METHOD_CALL                                         !1, 'read_const'
         98        FETCH_CONSTANT                                   ~51     'N'
         99        SEND_VAL_EX                                              ~51
        100        DO_FCALL                                      0          
   88   101        INIT_FCALL                                               'create_object'
        102        FETCH_CONSTANT                                   ~53     'N'
        103        SEND_VAL                                                 ~53
        104        DO_FCALL                                      0          
   89   105        INIT_FCALL                                               'read_const'
        106        FETCH_CONSTANT                                   ~55     'N'
        107        SEND_VAL                                                 ~55
        108        DO_FCALL                                      0          
   90   109        INIT_FCALL                                               'read_auto_global'
        110        FETCH_CONSTANT                                   ~57     'N'
        111        SEND_VAL                                                 ~57
        112        DO_FCALL                                      0          
   91   113        INIT_FCALL                                               'read_global_var'
        114        FETCH_CONSTANT                                   ~59     'N'
        115        SEND_VAL                                                 ~59
        116        DO_FCALL                                      0          
   92   117        INIT_FCALL                                               'read_hash'
        118        FETCH_CONSTANT                                   ~61     'N'
        119        SEND_VAL                                                 ~61
        120        DO_FCALL                                      0          
   93   121        INIT_FCALL                                               'read_str_offset'
        122        FETCH_CONSTANT                                   ~63     'N'
        123        SEND_VAL                                                 ~63
        124        DO_FCALL                                      0          
   94   125        INIT_FCALL                                               'issetor'
        126        FETCH_CONSTANT                                   ~65     'N'
        127        SEND_VAL                                                 ~65
        128        DO_FCALL                                      0          
   95   129        INIT_FCALL                                               'issetor2'
        130        FETCH_CONSTANT                                   ~67     'N'
        131        SEND_VAL                                                 ~67
        132        DO_FCALL                                      0          
   96   133        INIT_FCALL                                               'ternary'
        134        FETCH_CONSTANT                                   ~69     'N'
        135        SEND_VAL                                                 ~69
        136        DO_FCALL                                      0          
   97   137        INIT_FCALL                                               'ternary2'
        138        FETCH_CONSTANT                                   ~71     'N'
        139        SEND_VAL                                                 ~71
        140        DO_FCALL                                      0          
        141      > RETURN                                                   1

Function hallo:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/gM8r2
function name:  hallo
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E > > RETURN                                                   null

End of function hallo

Function hallo2:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/gM8r2
function name:  hallo2
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E > > RETURN                                                   null

End of function hallo2

Function simpleucall:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  simpleucall
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   INIT_FCALL                                               'hallo'
          4        DO_FCALL                                      0          
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~5, ->3
          8    > > RETURN                                                   null

End of function simpleucall

Function simpleudcall:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  simpleudcall
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    8     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   INIT_FCALL                                               'hallo2'
          4        DO_FCALL                                      0          
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~5, ->3
          8    > > RETURN                                                   null

End of function simpleudcall

Function simpleicall:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  simpleicall
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   FUNC_NUM_ARGS                                    ~3      
          4        FREE                                                     ~3
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~5, ->3
          8    > > RETURN                                                   null

End of function simpleicall

Function read_static:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  read_static
number of ops:  9
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   36     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   FETCH_STATIC_PROP_R          unknown             ~4      'a'
          4        ASSIGN                                                   !2, ~4
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~7, ->3
          8    > > RETURN                                                   null

End of function read_static

Function write_static:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  write_static
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   37     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   ASSIGN_STATIC_PROP                                       'a', 'Foo'
          4        OP_DATA                                                  0
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~5, ->3
          8    > > RETURN                                                   null

End of function write_static

Function isset_static:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  isset_static
number of ops:  9
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   38     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   ISSET_ISEMPTY_STATIC_PROP                        ~4      'a'
          4        ASSIGN                                                   !2, ~4
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~7, ->3
          8    > > RETURN                                                   null

End of function isset_static

Function empty_static:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  empty_static
number of ops:  9
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   39     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   ISSET_ISEMPTY_STATIC_PROP                        ~4      'a'
          4        ASSIGN                                                   !2, ~4
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~7, ->3
          8    > > RETURN                                                   null

End of function empty_static

Function call_static:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  call_static
number of ops:  9
compiled vars:  !0 = $n, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   40     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   INIT_STATIC_METHOD_CALL                                  'Foo', 'f'
          4        DO_FCALL                                      0          
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~5, ->3
          8    > > RETURN                                                   null

End of function call_static

Function create_object:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 3
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 3
Branch analysis from position: 9
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  create_object
number of ops:  10
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   41     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->7
          3    >   NEW                                              $4      'Foo'
          4        DO_FCALL                                      0          
          5        ASSIGN                                                   !2, $4
          6        PRE_INC                                                  !1
          7    >   IS_SMALLER                                               !1, !0
          8      > JMPNZ                                                    ~8, ->3
          9    > > RETURN                                                   null

End of function create_object

Function read_const:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  read_const
number of ops:  9
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   45     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   FETCH_CONSTANT                                   ~4      'TEST'
          4        ASSIGN                                                   !2, ~4
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~7, ->3
          8    > > RETURN                                                   null

End of function read_const

Function read_auto_global:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  read_auto_global
number of ops:  9
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   46     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
          3    >   FETCH_R                      global              ~4      '_GET'
          4        ASSIGN                                                   !2, ~4
          5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !0
          7      > JMPNZ                                                    ~7, ->3
          8    > > RETURN                                                   null

End of function read_auto_global

Function read_global_var:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 3
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 3
Branch analysis from position: 9
Branch analysis from position: 3
filename:       /in/gM8r2
function name:  read_global_var
number of ops:  10
compiled vars:  !0 = $n, !1 = $i, !2 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   50     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->7
          3    >   FETCH_R                      global              ~4      'GLOBALS'
          4        FETCH_DIM_R                                      ~5      ~4, 'g_var'
          5        ASSIGN                                                   !2, ~5
          6        PRE_INC                                                  !1
          7    >   IS_SMALLER                                               !1, !0
          8      > JMPNZ                                                    ~8, ->3
          9    > > RETURN                                                   null

End of function read_global_var

Function read_hash:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 4
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 4
Branch analysis from position: 9
Branch analysis from position: 4
filename:       /in/gM8r2
function name:  read_hash
number of ops:  10
compiled vars:  !0 = $n, !1 = $hash, !2 = $i, !3 = $x
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   51     0  E >   RECV                                             !0      
          1        ASSIGN                                                   !1, <array>
          2        ASSIGN                                                   !2, 0
          3      > JMP                                                      ->7
          4    >   FETCH_DIM_R                                      ~6      !1, 'test'
          5        ASSIGN                                                   !3, ~6
          6        PRE_INC                                                  !2
          7    >   IS_SMALLER                                               !2, !0
          8      > JMPNZ                                                    ~9, ->4
          9    > > RETURN                                                   null

End of function read_hash

Function read_str_offset:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
2 jumps found. (Code = 44) Position 1 = 9, Position 2 = 4
Branch analysis from

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
175.6 ms | 1431 KiB | 35 Q