Skip to content

Instantly share code, notes, and snippets.

@sebastianbergmann
Last active March 23, 2024 09:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebastianbergmann/bb9c8ab2285555f8d7a33022b4257c37 to your computer and use it in GitHub Desktop.
Save sebastianbergmann/bb9c8ab2285555f8d7a33022b4257c37 to your computer and use it in GitHub Desktop.
Finding optimized-away bytecode
```
$ 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
```
$_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
$_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