Last active
March 23, 2024 09:21
-
-
Save sebastianbergmann/bb9c8ab2285555f8d7a33022b4257c37 to your computer and use it in GitHub Desktop.
Finding optimized-away bytecode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
``` | |
$ php -d opcache.enable=1 \ | |
-d opcache.enable_cli=1 \ | |
-d opcache.optimization_level=-1 \ | |
-d opcache.opt_debug_level=0x10000 \ | |
Runtime.php \ | |
> /tmp/2-before-optimization 2>&1 | |
``` | |
``` | |
$ php -d opcache.enable=1 \ | |
-d opcache.enable_cli=1 \ | |
-d opcache.optimization_level=-1 \ | |
-d opcache.opt_debug_level=0x20000 \ | |
Runtime.php \ | |
> /tmp/3-after-optimization 2>&1 | |
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$_main: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:1-295 | |
; return [] RANGE[0..0] | |
0000 RETURN int(1) | |
SebastianBergmann\Environment\Runtime::canCollectCodeCoverage: | |
; (lines=14, args=0, vars=0, tmps=4) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:40-43 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("hasXdebug") | |
0001 V0 = DO_FCALL | |
0002 T1 = JMPNZ_EX V0 0006 | |
0003 INIT_METHOD_CALL 0 THIS string("hasPCOV") | |
0004 V2 = DO_FCALL | |
0005 T1 = BOOL V2 | |
0006 T1 = JMPNZ_EX T1 0010 | |
0007 INIT_METHOD_CALL 0 THIS string("hasPHPDBGCodeCoverage") | |
0008 V3 = DO_FCALL | |
0009 T1 = BOOL V3 | |
0010 VERIFY_RETURN_TYPE T1 | |
0011 RETURN T1 | |
0012 VERIFY_RETURN_TYPE | |
0013 RETURN null | |
SebastianBergmann\Environment\Runtime::discardsComments: | |
; (lines=14, args=0, vars=0, tmps=4) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:49-60 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isOpcacheActive") | |
0001 V0 = DO_FCALL | |
0002 T1 = BOOL_NOT V0 | |
0003 JMPZ T1 0005 | |
0004 RETURN bool(false) | |
0005 INIT_FCALL 1 96 string("ini_get") | |
0006 SEND_VAL string("opcache.save_comments") 1 | |
0007 V2 = DO_ICALL | |
0008 T3 = IS_NOT_IDENTICAL V2 string("0") | |
0009 JMPZ T3 0011 | |
0010 RETURN bool(false) | |
0011 RETURN bool(true) | |
0012 VERIFY_RETURN_TYPE | |
0013 RETURN null | |
SebastianBergmann\Environment\Runtime::performsJustInTimeCompilation: | |
; (lines=33, args=0, vars=1, tmps=10) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:66-91 | |
; return [] RANGE[0..0] | |
0000 JMPZ bool(false) 0002 | |
0001 RETURN bool(false) | |
0002 INIT_METHOD_CALL 0 THIS string("isOpcacheActive") | |
0003 V1 = DO_FCALL | |
0004 T2 = BOOL_NOT V1 | |
0005 JMPZ T2 0007 | |
0006 RETURN bool(false) | |
0007 INIT_FCALL 1 96 string("ini_get") | |
0008 SEND_VAL string("opcache.jit_buffer_size") 1 | |
0009 V3 = DO_ICALL | |
0010 T4 = IS_IDENTICAL V3 string("0") | |
0011 JMPZ T4 0013 | |
0012 RETURN bool(false) | |
0013 INIT_FCALL 1 96 string("ini_get") | |
0014 SEND_VAL string("opcache.jit") 1 | |
0015 V5 = DO_ICALL | |
0016 ASSIGN CV0($jit) V5 | |
0017 T7 = IS_IDENTICAL CV0($jit) string("disable") | |
0018 T7 = JMPNZ_EX T7 0021 | |
0019 T8 = IS_IDENTICAL CV0($jit) string("off") | |
0020 T7 = BOOL T8 | |
0021 JMPZ T7 0023 | |
0022 RETURN bool(false) | |
0023 INIT_FCALL 2 112 string("strrpos") | |
0024 SEND_VAR CV0($jit) 1 | |
0025 SEND_VAL string("0") 2 | |
0026 V9 = DO_ICALL | |
0027 T10 = IS_IDENTICAL V9 int(3) | |
0028 JMPZ T10 0030 | |
0029 RETURN bool(false) | |
0030 RETURN bool(true) | |
0031 VERIFY_RETURN_TYPE | |
0032 RETURN null | |
SebastianBergmann\Environment\Runtime::getRawBinary: | |
; (lines=39, args=0, vars=2, tmps=14) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:96-130 | |
; return [] RANGE[0..0] | |
0000 T2 = FETCH_STATIC_PROP_R string("initialized") (self) (exception) | |
0001 JMPZ T2 0005 | |
0002 T3 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0003 VERIFY_RETURN_TYPE T3 | |
0004 RETURN T3 | |
0005 JMPZ bool(true) 0013 | |
0006 ASSIGN_STATIC_PROP string("rawBinary") | |
0007 OP_DATA string("/usr/bin/php") | |
0008 ASSIGN_STATIC_PROP string("initialized") | |
0009 OP_DATA bool(true) | |
0010 T6 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0011 VERIFY_RETURN_TYPE T6 | |
0012 RETURN T6 | |
0013 ASSIGN CV0($possibleBinaryLocations) array(...) | |
0014 V8 = FE_RESET_R CV0($possibleBinaryLocations) 0029 | |
0015 FE_FETCH_R V8 CV1($binary) 0029 | |
0016 INIT_FCALL 1 96 string("is_readable") | |
0017 SEND_VAR CV1($binary) 1 | |
0018 V9 = DO_ICALL | |
0019 JMPZ V9 0028 | |
0020 ASSIGN_STATIC_PROP string("rawBinary") | |
0021 OP_DATA CV1($binary) | |
0022 ASSIGN_STATIC_PROP string("initialized") | |
0023 OP_DATA bool(true) | |
0024 T12 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0025 VERIFY_RETURN_TYPE T12 | |
0026 FE_FREE V8 | |
0027 RETURN T12 | |
0028 JMP 0015 | |
0029 FE_FREE V8 | |
0030 ASSIGN_STATIC_PROP string("rawBinary") | |
0031 OP_DATA string("php") | |
0032 ASSIGN_STATIC_PROP string("initialized") | |
0033 OP_DATA bool(true) | |
0034 T15 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0035 VERIFY_RETURN_TYPE T15 | |
0036 RETURN T15 | |
0037 VERIFY_RETURN_TYPE | |
0038 RETURN null | |
LIVE RANGES: | |
3: 0003 - 0004 (tmp/var) | |
6: 0011 - 0012 (tmp/var) | |
8: 0015 - 0029 (loop) | |
12: 0025 - 0027 (tmp/var) | |
15: 0035 - 0036 (tmp/var) | |
SebastianBergmann\Environment\Runtime::getBinary: | |
; (lines=9, args=0, vars=0, tmps=2) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:135-138 | |
; return [] RANGE[0..0] | |
0000 INIT_FCALL 1 96 string("escapeshellarg") | |
0001 INIT_METHOD_CALL 0 THIS string("getRawBinary") | |
0002 V0 = DO_FCALL | |
0003 SEND_VAR V0 1 | |
0004 V1 = DO_ICALL | |
0005 VERIFY_RETURN_TYPE V1 | |
0006 RETURN V1 | |
0007 VERIFY_RETURN_TYPE | |
0008 RETURN null | |
LIVE RANGES: | |
1: 0005 - 0006 (tmp/var) | |
SebastianBergmann\Environment\Runtime::getNameWithVersion: | |
; (lines=10, args=0, vars=0, tmps=4) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:140-143 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("getName") | |
0001 V0 = DO_FCALL | |
0002 T1 = CONCAT V0 string(" ") | |
0003 INIT_METHOD_CALL 0 THIS string("getVersion") | |
0004 V2 = DO_FCALL | |
0005 T3 = CONCAT T1 V2 | |
0006 VERIFY_RETURN_TYPE T3 | |
0007 RETURN T3 | |
0008 VERIFY_RETURN_TYPE | |
0009 RETURN null | |
LIVE RANGES: | |
1: 0003 - 0005 (tmp/var) | |
3: 0006 - 0007 (tmp/var) | |
SebastianBergmann\Environment\Runtime::getNameWithVersionAndCodeCoverageDriver: | |
; (lines=36, args=0, vars=0, tmps=9) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:145-164 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("hasPCOV") | |
0001 V0 = DO_FCALL | |
0002 JMPZ V0 0015 | |
0003 INIT_FCALL 3 128 string("sprintf") | |
0004 SEND_VAL string("%s with PCOV %s") 1 | |
0005 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0006 V1 = DO_FCALL | |
0007 SEND_VAR V1 2 | |
0008 INIT_FCALL 1 96 string("phpversion") | |
0009 SEND_VAL string("pcov") 1 | |
0010 V2 = DO_ICALL | |
0011 SEND_VAR V2 3 | |
0012 V3 = DO_ICALL | |
0013 VERIFY_RETURN_TYPE V3 | |
0014 RETURN V3 | |
0015 INIT_METHOD_CALL 0 THIS string("hasXdebug") | |
0016 V4 = DO_FCALL | |
0017 JMPZ V4 0030 | |
0018 INIT_FCALL 3 128 string("sprintf") | |
0019 SEND_VAL string("%s with Xdebug %s") 1 | |
0020 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0021 V5 = DO_FCALL | |
0022 SEND_VAR V5 2 | |
0023 INIT_FCALL 1 96 string("phpversion") | |
0024 SEND_VAL string("xdebug") 1 | |
0025 V6 = DO_ICALL | |
0026 SEND_VAR V6 3 | |
0027 V7 = DO_ICALL | |
0028 VERIFY_RETURN_TYPE V7 | |
0029 RETURN V7 | |
0030 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0031 V8 = DO_FCALL | |
0032 VERIFY_RETURN_TYPE V8 | |
0033 RETURN V8 | |
0034 VERIFY_RETURN_TYPE | |
0035 RETURN null | |
LIVE RANGES: | |
3: 0013 - 0014 (tmp/var) | |
7: 0028 - 0029 (tmp/var) | |
8: 0032 - 0033 (tmp/var) | |
SebastianBergmann\Environment\Runtime::getName: | |
; (lines=7, args=0, vars=0, tmps=1) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:166-175 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isPHPDBG") | |
0001 V0 = DO_FCALL | |
0002 JMPZ V0 0004 | |
0003 RETURN string("PHPDBG") | |
0004 RETURN string("PHP") | |
0005 VERIFY_RETURN_TYPE | |
0006 RETURN null | |
SebastianBergmann\Environment\Runtime::getVendorUrl: | |
; (lines=3, args=0, vars=0, tmps=0) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:177-180 | |
; return [] RANGE[0..0] | |
0000 RETURN string("https://www.php.net/") | |
0001 VERIFY_RETURN_TYPE | |
0002 RETURN null | |
SebastianBergmann\Environment\Runtime::getVersion: | |
; (lines=3, args=0, vars=0, tmps=0) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:182-185 | |
; return [] RANGE[0..0] | |
0000 RETURN string("8.3.4") | |
0001 VERIFY_RETURN_TYPE | |
0002 RETURN null | |
SebastianBergmann\Environment\Runtime::hasXdebug: | |
; (lines=11, args=0, vars=0, tmps=3) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:190-193 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isPHP") | |
0001 V0 = DO_FCALL | |
0002 T1 = JMPZ_EX V0 0007 | |
0003 INIT_FCALL 1 96 string("extension_loaded") | |
0004 SEND_VAL string("xdebug") 1 | |
0005 V2 = DO_ICALL | |
0006 T1 = BOOL V2 | |
0007 VERIFY_RETURN_TYPE T1 | |
0008 RETURN T1 | |
0009 VERIFY_RETURN_TYPE | |
0010 RETURN null | |
SebastianBergmann\Environment\Runtime::isPHP: | |
; (lines=7, args=0, vars=0, tmps=2) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:198-201 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isPHPDBG") | |
0001 V0 = DO_FCALL | |
0002 T1 = BOOL_NOT V0 | |
0003 VERIFY_RETURN_TYPE T1 | |
0004 RETURN T1 | |
0005 VERIFY_RETURN_TYPE | |
0006 RETURN null | |
SebastianBergmann\Environment\Runtime::isPHPDBG: | |
; (lines=3, args=0, vars=0, tmps=0) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:206-209 | |
; return [] RANGE[0..0] | |
0000 RETURN bool(false) | |
0001 VERIFY_RETURN_TYPE | |
0002 RETURN null | |
SebastianBergmann\Environment\Runtime::hasPHPDBGCodeCoverage: | |
; (lines=6, args=0, vars=0, tmps=1) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:215-218 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isPHPDBG") | |
0001 V0 = DO_FCALL | |
0002 VERIFY_RETURN_TYPE V0 | |
0003 RETURN V0 | |
0004 VERIFY_RETURN_TYPE | |
0005 RETURN null | |
LIVE RANGES: | |
0: 0002 - 0003 (tmp/var) | |
SebastianBergmann\Environment\Runtime::hasPCOV: | |
; (lines=16, args=0, vars=0, tmps=4) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:223-226 | |
; return [] RANGE[0..0] | |
0000 INIT_METHOD_CALL 0 THIS string("isPHP") | |
0001 V0 = DO_FCALL | |
0002 T1 = JMPZ_EX V0 0007 | |
0003 INIT_FCALL 1 96 string("extension_loaded") | |
0004 SEND_VAL string("pcov") 1 | |
0005 V2 = DO_ICALL | |
0006 T1 = BOOL V2 | |
0007 T1 = JMPZ_EX T1 0012 | |
0008 INIT_FCALL 1 96 string("ini_get") | |
0009 SEND_VAL string("pcov.enabled") 1 | |
0010 V3 = DO_ICALL | |
0011 T1 = BOOL V3 | |
0012 VERIFY_RETURN_TYPE T1 | |
0013 RETURN T1 | |
0014 VERIFY_RETURN_TYPE | |
0015 RETURN null | |
SebastianBergmann\Environment\Runtime::getCurrentSettings: | |
; (lines=64, args=1, vars=9, tmps=24) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:240-276 | |
; return [] RANGE[0..0] | |
0000 CV0($values) = RECV 1 | |
0001 ASSIGN CV1($diff) array(...) | |
0002 ASSIGN CV2($files) array(...) | |
0003 INIT_FCALL 0 80 string("php_ini_loaded_file") | |
0004 V11 = DO_ICALL | |
0005 T12 = ASSIGN CV3($file) V11 | |
0006 JMPZ T12 0009 | |
0007 ASSIGN_DIM CV2($files) NEXT | |
0008 OP_DATA CV3($file) | |
0009 INIT_FCALL 0 80 string("php_ini_scanned_files") | |
0010 V14 = DO_ICALL | |
0011 T15 = ASSIGN CV4($scanned) V14 | |
0012 JMPZ T15 0026 | |
0013 INIT_FCALL 2 112 string("array_merge") | |
0014 SEND_VAR CV2($files) 1 | |
0015 INIT_FCALL 2 112 string("array_map") | |
0016 SEND_VAL string("trim") 1 | |
0017 INIT_FCALL 2 112 string("explode") | |
0018 SEND_VAL string(", | |
") 1 | |
0019 SEND_VAR CV4($scanned) 2 | |
0020 V16 = DO_ICALL | |
0021 SEND_VAR V16 2 | |
0022 V17 = DO_ICALL | |
0023 SEND_VAR V17 2 | |
0024 V18 = DO_ICALL | |
0025 ASSIGN CV2($files) V18 | |
0026 V20 = FE_RESET_R CV2($files) 0059 | |
0027 FE_FETCH_R V20 CV5($ini) 0059 | |
0028 INIT_FCALL 2 112 string("parse_ini_file") | |
0029 SEND_VAR CV5($ini) 1 | |
0030 SEND_VAL bool(true) 2 | |
0031 V21 = DO_ICALL | |
0032 ASSIGN CV6($config) V21 | |
0033 V23 = FE_RESET_R CV0($values) 0057 | |
0034 FE_FETCH_R V23 CV7($value) 0057 | |
0035 INIT_FCALL 1 96 string("ini_get") | |
0036 SEND_VAR CV7($value) 1 | |
0037 V24 = DO_ICALL | |
0038 ASSIGN CV8($set) V24 | |
0039 T26 = ISSET_ISEMPTY_CV (empty) CV8($set) | |
0040 JMPZ T26 0042 | |
0041 JMP 0034 | |
0042 T27 = ISSET_ISEMPTY_DIM_OBJ (isset) CV6($config) CV7($value) | |
0043 T28 = BOOL_NOT T27 | |
0044 T28 = JMPNZ_EX T28 0048 | |
0045 T29 = FETCH_DIM_R CV6($config) CV7($value) | |
0046 T30 = IS_NOT_IDENTICAL CV8($set) T29 | |
0047 T28 = BOOL T30 | |
0048 JMPZ T28 0056 | |
0049 INIT_FCALL 3 128 string("sprintf") | |
0050 SEND_VAL string("%s=%s") 1 | |
0051 SEND_VAR CV7($value) 2 | |
0052 SEND_VAR CV8($set) 3 | |
0053 V32 = DO_ICALL | |
0054 ASSIGN_DIM CV1($diff) CV7($value) | |
0055 OP_DATA V32 | |
0056 JMP 0034 | |
0057 FE_FREE V23 | |
0058 JMP 0027 | |
0059 FE_FREE V20 | |
0060 VERIFY_RETURN_TYPE CV1($diff) | |
0061 RETURN CV1($diff) | |
0062 VERIFY_RETURN_TYPE | |
0063 RETURN null | |
LIVE RANGES: | |
20: 0027 - 0059 (loop) | |
23: 0034 - 0057 (loop) | |
SebastianBergmann\Environment\Runtime::isOpcacheActive: | |
; (lines=18, args=0, vars=0, tmps=5) | |
; (before optimizer) | |
; /usr/local/src/environment/src/Runtime.php:278-293 | |
; return [] RANGE[0..0] | |
0000 INIT_FCALL 1 96 string("extension_loaded") | |
0001 SEND_VAL string("Zend OPcache") 1 | |
0002 V0 = DO_ICALL | |
0003 T1 = BOOL_NOT V0 | |
0004 JMPZ T1 0006 | |
0005 RETURN bool(false) | |
0006 INIT_FCALL 1 96 string("ini_get") | |
0007 SEND_VAL string("opcache.enable_cli") 1 | |
0008 V2 = DO_ICALL | |
0009 T3 = IS_IDENTICAL V2 string("1") | |
0010 T4 = BOOL T3 | |
0011 JMPZ T4 0013 | |
0012 RETURN bool(true) | |
0013 JMPZ bool(false) 0015 | |
0014 RETURN bool(true) | |
0015 RETURN bool(false) | |
0016 VERIFY_RETURN_TYPE | |
0017 RETURN null |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$_main: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:1-295 | |
0000 RETURN int(1) | |
SebastianBergmann\Environment\Runtime::canCollectCodeCoverage: | |
; (lines=10, args=0, vars=0, tmps=2) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:40-43 | |
0000 INIT_METHOD_CALL 0 THIS string("hasXdebug") | |
0001 V1 = DO_FCALL | |
0002 T0 = JMPNZ_EX V1 0009 | |
0003 INIT_METHOD_CALL 0 THIS string("hasPCOV") | |
0004 V1 = DO_FCALL | |
0005 T0 = JMPNZ_EX V1 0009 | |
0006 INIT_METHOD_CALL 0 THIS string("hasPHPDBGCodeCoverage") | |
0007 V1 = DO_FCALL | |
0008 T0 = BOOL V1 | |
0009 RETURN T0 | |
SebastianBergmann\Environment\Runtime::discardsComments: | |
; (lines=5, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:49-60 | |
0000 INIT_METHOD_CALL 0 THIS string("isOpcacheActive") | |
0001 V0 = DO_FCALL | |
0002 JMPNZ V0 0004 | |
0003 RETURN bool(false) | |
0004 RETURN bool(false) | |
SebastianBergmann\Environment\Runtime::performsJustInTimeCompilation: | |
; (lines=5, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:66-91 | |
0000 INIT_METHOD_CALL 0 THIS string("isOpcacheActive") | |
0001 V0 = DO_FCALL | |
0002 JMPNZ V0 0004 | |
0003 RETURN bool(false) | |
0004 RETURN bool(false) | |
SebastianBergmann\Environment\Runtime::getRawBinary: | |
; (lines=10, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:96-130 | |
0000 T0 = FETCH_STATIC_PROP_R string("initialized") (self) (exception) | |
0001 JMPZ T0 0004 | |
0002 T0 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0003 RETURN T0 | |
0004 ASSIGN_STATIC_PROP string("rawBinary") | |
0005 OP_DATA string("/usr/bin/php") | |
0006 ASSIGN_STATIC_PROP string("initialized") | |
0007 OP_DATA bool(true) | |
0008 T0 = FETCH_STATIC_PROP_R string("rawBinary") (self) (exception) | |
0009 RETURN T0 | |
SebastianBergmann\Environment\Runtime::getBinary: | |
; (lines=6, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:135-138 | |
0000 INIT_FCALL 1 96 string("escapeshellarg") | |
0001 INIT_METHOD_CALL 0 THIS string("getRawBinary") | |
0002 V0 = DO_FCALL | |
0003 SEND_VAR V0 1 | |
0004 V0 = DO_ICALL | |
0005 RETURN V0 | |
SebastianBergmann\Environment\Runtime::getNameWithVersion: | |
; (lines=5, args=0, vars=0, tmps=2) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:140-143 | |
0000 INIT_METHOD_CALL 0 THIS string("getName") | |
0001 V0 = DO_FCALL | |
0002 T1 = FAST_CONCAT V0 string(" ") | |
0003 T0 = FAST_CONCAT T1 string("8.3.4") | |
0004 RETURN T0 | |
SebastianBergmann\Environment\Runtime::getNameWithVersionAndCodeCoverageDriver: | |
; (lines=25, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:145-164 | |
0000 INIT_METHOD_CALL 0 THIS string("hasPCOV") | |
0001 V0 = DO_FCALL | |
0002 JMPZ V0 0011 | |
0003 INIT_FCALL 3 128 string("sprintf") | |
0004 SEND_VAL string("%s with PCOV %s") 1 | |
0005 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0006 V0 = DO_FCALL | |
0007 SEND_VAR V0 2 | |
0008 SEND_VAL bool(false) 3 | |
0009 V0 = DO_ICALL | |
0010 RETURN V0 | |
0011 INIT_METHOD_CALL 0 THIS string("hasXdebug") | |
0012 V0 = DO_FCALL | |
0013 JMPZ V0 0022 | |
0014 INIT_FCALL 3 128 string("sprintf") | |
0015 SEND_VAL string("%s with Xdebug %s") 1 | |
0016 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0017 V0 = DO_FCALL | |
0018 SEND_VAR V0 2 | |
0019 SEND_VAL string("3.3.1") 3 | |
0020 V0 = DO_ICALL | |
0021 RETURN V0 | |
0022 INIT_METHOD_CALL 0 THIS string("getNameWithVersion") | |
0023 V0 = DO_FCALL | |
0024 RETURN V0 | |
SebastianBergmann\Environment\Runtime::getName: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:166-175 | |
0000 RETURN string("PHP") | |
SebastianBergmann\Environment\Runtime::getVendorUrl: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:177-180 | |
0000 RETURN string("https://www.php.net/") | |
SebastianBergmann\Environment\Runtime::getVersion: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:182-185 | |
0000 RETURN string("8.3.4") | |
SebastianBergmann\Environment\Runtime::hasXdebug: | |
; (lines=5, args=0, vars=0, tmps=2) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:190-193 | |
0000 INIT_METHOD_CALL 0 THIS string("isPHP") | |
0001 V1 = DO_FCALL | |
0002 T0 = JMPZ_EX V1 0004 | |
0003 T0 = QM_ASSIGN bool(true) | |
0004 RETURN T0 | |
SebastianBergmann\Environment\Runtime::isPHP: | |
; (lines=2, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:198-201 | |
0000 T0 = QM_ASSIGN bool(true) | |
0001 RETURN T0 | |
SebastianBergmann\Environment\Runtime::isPHPDBG: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:206-209 | |
0000 RETURN bool(false) | |
SebastianBergmann\Environment\Runtime::hasPHPDBGCodeCoverage: | |
; (lines=2, args=0, vars=0, tmps=1) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:215-218 | |
0000 V0 = QM_ASSIGN bool(false) | |
0001 RETURN V0 | |
SebastianBergmann\Environment\Runtime::hasPCOV: | |
; (lines=5, args=0, vars=0, tmps=2) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:223-226 | |
0000 INIT_METHOD_CALL 0 THIS string("isPHP") | |
0001 V1 = DO_FCALL | |
0002 T0 = JMPZ_EX V1 0004 | |
0003 T0 = JMPZ_EX bool(false) 0004 | |
0004 RETURN T0 | |
SebastianBergmann\Environment\Runtime::getCurrentSettings: | |
; (lines=58, args=1, vars=9, tmps=4) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:240-276 | |
0000 CV0($values) = RECV 1 | |
0001 CV1($diff) = QM_ASSIGN array(...) | |
0002 CV2($files) = QM_ASSIGN array(...) | |
0003 INIT_FCALL 0 80 string("php_ini_loaded_file") | |
0004 V9 = DO_ICALL | |
0005 CV3($file) = QM_ASSIGN V9 | |
0006 JMPZ CV3($file) 0009 | |
0007 ASSIGN_DIM CV2($files) NEXT | |
0008 OP_DATA CV3($file) | |
0009 INIT_FCALL 0 80 string("php_ini_scanned_files") | |
0010 V9 = DO_ICALL | |
0011 CV4($scanned) = QM_ASSIGN V9 | |
0012 JMPZ CV4($scanned) 0026 | |
0013 INIT_FCALL 2 112 string("array_merge") | |
0014 SEND_VAR CV2($files) 1 | |
0015 INIT_FCALL 2 112 string("array_map") | |
0016 SEND_VAL string("trim") 1 | |
0017 INIT_FCALL 2 112 string("explode") | |
0018 SEND_VAL string(", | |
") 1 | |
0019 SEND_VAR CV4($scanned) 2 | |
0020 V9 = DO_ICALL | |
0021 SEND_VAR V9 2 | |
0022 V9 = DO_ICALL | |
0023 SEND_VAR V9 2 | |
0024 V9 = DO_ICALL | |
0025 ASSIGN CV2($files) V9 | |
0026 V9 = FE_RESET_R CV2($files) 0056 | |
0027 FE_FETCH_R V9 CV5($ini) 0056 | |
0028 INIT_FCALL 2 112 string("parse_ini_file") | |
0029 SEND_VAR CV5($ini) 1 | |
0030 SEND_VAL bool(true) 2 | |
0031 V10 = DO_ICALL | |
0032 ASSIGN CV6($config) V10 | |
0033 V10 = FE_RESET_R CV0($values) 0054 | |
0034 FE_FETCH_R V10 CV7($value) 0054 | |
0035 INIT_FCALL 1 96 string("ini_get") | |
0036 SEND_VAR CV7($value) 1 | |
0037 V11 = DO_ICALL | |
0038 ASSIGN CV8($set) V11 | |
0039 T11 = ISSET_ISEMPTY_CV (empty) CV8($set) | |
0040 JMPNZ T11 0034 | |
0041 T11 = ISSET_ISEMPTY_DIM_OBJ (isset) CV6($config) CV7($value) | |
0042 JMPZ T11 0046 | |
0043 T12 = FETCH_DIM_R CV6($config) CV7($value) | |
0044 T11 = IS_NOT_IDENTICAL CV8($set) T12 | |
0045 JMPZ T11 0034 | |
0046 INIT_FCALL 3 128 string("sprintf") | |
0047 SEND_VAL string("%s=%s") 1 | |
0048 SEND_VAR CV7($value) 2 | |
0049 SEND_VAR CV8($set) 3 | |
0050 V11 = DO_ICALL | |
0051 ASSIGN_DIM CV1($diff) CV7($value) | |
0052 OP_DATA V11 | |
0053 JMP 0034 | |
0054 FE_FREE V10 | |
0055 JMP 0027 | |
0056 FE_FREE V9 | |
0057 RETURN CV1($diff) | |
LIVE RANGES: | |
9: 0027 - 0056 (loop) | |
10: 0034 - 0054 (loop) | |
SebastianBergmann\Environment\Runtime::isOpcacheActive: | |
; (lines=1, args=0, vars=0, tmps=0) | |
; (after optimizer) | |
; /usr/local/src/environment/src/Runtime.php:278-293 | |
0000 RETURN bool(true) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment