}
if (!b) {
- len = fprintf(stderr, "L%u:", (uint32_t)(opline - op_array->opcodes));
+ len = fprintf(stderr, "L%u (%u):", (uint32_t)(opline - op_array->opcodes), opline->lineno);
}
- fprintf(stderr, "%*c", 8-len, ' ');
+ fprintf(stderr, "%*c", 12-len, ' ');
if (!ssa || !ssa->ops || ssa->ops[opline - op_array->opcodes].result_use < 0) {
if (opline->result_type & (IS_CV|IS_VAR|IS_TMP_VAR)) {
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_001.php:1-8
-L0: RETURN int(1)
+L0 (8): RETURN int(1)
foo: ; (lines=5, args=4, vars=4, tmps=0)
; (after optimizer)
; %sdce_001.php:2-6
-L0: CV0($s1) = RECV 1
-L1: CV1($s2) = RECV 2
-L2: CV2($s3) = RECV 3
-L3: CV3($s4) = RECV 4
-L4: RETURN int(0)
+L0 (2): CV0($s1) = RECV 1
+L1 (2): CV1($s2) = RECV 2
+L2 (2): CV2($s3) = RECV 3
+L3 (2): CV3($s4) = RECV 4
+L4 (5): RETURN int(0)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_002.php:1-11
-L0: RETURN int(1)
+L0 (11): RETURN int(1)
foo: ; (lines=5, args=1, vars=2, tmps=0)
; (after optimizer)
; %sdce_002.php:2-9
-L0: CV0($a) = RECV 1
-L1: CV0($a) = QM_ASSIGN int(10)
-L2: CV1($x) = FUNC_GET_ARGS
-L3: CV0($a) = QM_ASSIGN int(30)
-L4: RETURN CV1($x)
+L0 (2): CV0($a) = RECV 1
+L1 (3): CV0($a) = QM_ASSIGN int(10)
+L2 (5): CV1($x) = FUNC_GET_ARGS
+L3 (6): CV0($a) = QM_ASSIGN int(30)
+L4 (8): RETURN CV1($x)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_003.php:1-7
-L0: RETURN int(1)
+L0 (7): RETURN int(1)
foo: ; (lines=3, args=1, vars=1, tmps=0)
; (after optimizer)
; %sdce_003.php:2-5
-L0: CV0($a) = RECV 1
-L1: ASSIGN_ADD CV0($a) int(3)
-L2: RETURN CV0($a)
+L0 (2): CV0($a) = RECV 1
+L1 (3): ASSIGN_ADD CV0($a) int(3)
+L2 (4): RETURN CV0($a)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_004.php:1-8
-L0: RETURN int(1)
+L0 (8): RETURN int(1)
foo: ; (lines=4, args=2, vars=3, tmps=0)
; (after optimizer)
; %sdce_004.php:2-7
-L0: CV0($x) = RECV 1
-L1: CV1($y) = RECV 2
-L2: CV2($a) = QM_ASSIGN CV1($y)
-L3: RETURN CV2($a)
+L0 (2): CV0($x) = RECV 1
+L1 (2): CV1($y) = RECV 2
+L2 (5): CV2($a) = QM_ASSIGN CV1($y)
+L3 (6): RETURN CV2($a)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_005.php:1-8
-L0: RETURN int(1)
+L0 (8): RETURN int(1)
foo: ; (lines=2, args=1, vars=1, tmps=0)
; (after optimizer)
; %sdce_005.php:4-7
-L0: CV0($x) = RECV 1
-L1: RETURN null
+L0 (4): CV0($x) = RECV 1
+L1 (7): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_006.php:1-9
-L0: RETURN int(1)
+L0 (9): RETURN int(1)
foo: ; (lines=7, args=1, vars=2, tmps=1)
; (after optimizer)
; %sdce_006.php:5-8
-L0: CV0($x) = RECV 1
-L1: V2 = NEW 0 string("A")
-L2: DO_FCALL
-L3: CV1($a) = QM_ASSIGN V2
-L4: ASSIGN_OBJ CV1($a) string("foo")
-L5: OP_DATA CV0($x)
-L6: RETURN null
+L0 (5): CV0($x) = RECV 1
+L1 (6): V2 = NEW 0 string("A")
+L2 (6): DO_FCALL
+L3 (6): CV1($a) = QM_ASSIGN V2
+L4 (7): ASSIGN_OBJ CV1($a) string("foo")
+L5 (7): OP_DATA CV0($x)
+L6 (8): RETURN null
A::__destruct: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_006.php:3-3
-L0: RETURN null
+L0 (3): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_007.php:1-7
-L0: RETURN int(1)
+L0 (7): RETURN int(1)
esc: ; (lines=3, args=1, vars=2, tmps=0)
; (after optimizer)
; %sdce_007.php:2-6
-L0: CV0($x) = RECV 1
-L1: CV1($a) = INIT_ARRAY 1 (packed) CV0($x) NEXT
-L2: RETURN CV1($a)
+L0 (2): CV0($x) = RECV 1
+L1 (3): CV1($a) = INIT_ARRAY 1 (packed) CV0($x) NEXT
+L2 (5): RETURN CV1($a)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %sdce_008.php:1-7
-L0: RETURN int(1)
+L0 (7): RETURN int(1)
esc: ; (lines=4, args=1, vars=2, tmps=0)
; (after optimizer)
; %sdce_008.php:2-6
-L0: CV0($x) = RECV 1
-L1: ASSIGN_DIM CV1($a) int(0)
-L2: OP_DATA CV0($x)
-L3: RETURN CV1($a)
+L0 (2): CV0($x) = RECV 1
+L1 (3): ASSIGN_DIM CV1($a) int(0)
+L2 (3): OP_DATA CV0($x)
+L3 (5): RETURN CV1($a)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_001.php:1-9
-L0: RETURN int(1)
+L0 (9): RETURN int(1)
foo: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_001.php:2-7
-L0: RETURN int(4)
+L0 (6): RETURN int(4)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_002.php:1-14
-L0: RETURN int(1)
+L0 (14): RETURN int(1)
foo: ; (lines=4, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_002.php:2-12
-L0: CV0($x) = RECV 1
-L1: ECHO int(1)
-L2: ECHO int(1)
-L3: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (9): ECHO int(1)
+L2 (11): ECHO int(1)
+L3 (12): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_003.php:1-14
-L0: RETURN int(1)
+L0 (14): RETURN int(1)
foo: ; (lines=3, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_003.php:2-12
-L0: ECHO int(1)
-L1: ECHO int(1)
-L2: RETURN null
+L0 (9): ECHO int(1)
+L1 (11): ECHO int(1)
+L2 (12): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_004.php:1-17
-L0: RETURN int(1)
+L0 (17): RETURN int(1)
foo: ; (lines=4, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_004.php:2-15
-L0: CV0($x) = RECV 1
-L1: ECHO bool(true)
-L2: ECHO int(1)
-L3: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (11): ECHO bool(true)
+L2 (14): ECHO int(1)
+L3 (15): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_005.php:1-7
-L0: RETURN int(1)
+L0 (7): RETURN int(1)
foo: ; (lines=3, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_005.php:2-5
-L0: CV0($x) = RECV 1
-L1: ECHO int(2)
-L2: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (4): ECHO int(2)
+L2 (5): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_006.php:1-7
-L0: RETURN int(1)
+L0 (7): RETURN int(1)
foo: ; (lines=8, args=1, vars=2, tmps=1)
; (after optimizer)
; %ssccp_006.php:2-5
-L0: CV0($x) = RECV 1
-L1: T2 = INIT_ARRAY 3 int(1) string("a")
-L2: T2 = ADD_ARRAY_ELEMENT int(2) string("a")
-L3: T2 = ADD_ARRAY_ELEMENT CV0($x) string("a")
-L4: CV1($a) = QM_ASSIGN T2
-L5: V2 = FETCH_DIM_R CV1($a) string("a")
-L6: ECHO V2
-L7: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (3): T2 = INIT_ARRAY 3 int(1) string("a")
+L2 (3): T2 = ADD_ARRAY_ELEMENT int(2) string("a")
+L3 (3): T2 = ADD_ARRAY_ELEMENT CV0($x) string("a")
+L4 (3): CV1($a) = QM_ASSIGN T2
+L5 (4): V2 = FETCH_DIM_R CV1($a) string("a")
+L6 (4): ECHO V2
+L7 (5): RETURN null
LIVE RANGES:
2: L2 - L4 (tmp/var)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_007.php:1-11
-L0: RETURN int(1)
+L0 (11): RETURN int(1)
foo: ; (lines=3, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_007.php:2-9
-L0: CV0($x) = RECV 1
-L1: ECHO int(0)
-L2: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (8): ECHO int(0)
+L2 (9): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_008.php:1-11
-L0: RETURN int(1)
+L0 (11): RETURN int(1)
foo: ; (lines=8, args=1, vars=2, tmps=1)
; (after optimizer)
; %ssccp_008.php:2-9
-L0: CV0($x) = RECV 1
-L1: JMPZ CV0($x) L4
-L2: CV1($a) = QM_ASSIGN array(...)
-L3: JMP L5
-L4: CV1($a) = QM_ASSIGN array(...)
-L5: V2 = FETCH_DIM_R CV1($a) int(1)
-L6: ECHO V2
-L7: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (3): JMPZ CV0($x) L4
+L2 (4): CV1($a) = QM_ASSIGN array(...)
+L3 (4): JMP L5
+L4 (6): CV1($a) = QM_ASSIGN array(...)
+L5 (8): V2 = FETCH_DIM_R CV1($a) int(1)
+L6 (8): ECHO V2
+L7 (9): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_009.php:1-8
-L0: RETURN int(1)
+L0 (8): RETURN int(1)
foo: ; (lines=3, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_009.php:2-6
-L0: CV0($x) = RECV 1
-L1: ECHO int(2)
-L2: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (5): ECHO int(2)
+L2 (6): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_010.php:1-15
-L0: RETURN int(1)
+L0 (15): RETURN int(1)
foo: ; (lines=3, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_010.php:2-13
-L0: ECHO int(1)
-L1: ECHO int(1)
-L2: RETURN null
+L0 (10): ECHO int(1)
+L1 (12): ECHO int(1)
+L2 (13): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_011.php:1-14
-L0: RETURN int(1)
+L0 (14): RETURN int(1)
foo: ; (lines=3, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_011.php:2-12
-L0: CV0($x) = RECV 1
-L1: ECHO int(0)
-L2: RETURN null
+L0 (2): CV0($x) = RECV 1
+L1 (11): ECHO int(0)
+L2 (12): RETURN null
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_012.php:1-17
-L0: RETURN int(1)
+L0 (17): RETURN int(1)
foo: ; (lines=3, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_012.php:2-15
-L0: ECHO int(1)
-L1: ECHO int(4)
-L2: RETURN null
+L0 (10): ECHO int(1)
+L1 (14): ECHO int(4)
+L2 (15): RETURN null
$_main: ; (lines=4, args=0, vars=1, tmps=1)
; (after optimizer)
; %ssccp_016.php:1-4
-L0: T1 = ISSET_ISEMPTY_CV (isset) CV0($undef)
-L1: T1 = JMPNZ_EX T1 L3
-L2: T1 = QM_ASSIGN bool(true)
-L3: RETURN T1
+L0 (2): T1 = ISSET_ISEMPTY_CV (isset) CV0($undef)
+L1 (2): T1 = JMPNZ_EX T1 L3
+L2 (2): T1 = QM_ASSIGN bool(true)
+L3 (2): RETURN T1
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_017.php:1-10
-L0: RETURN int(1)
+L0 (10): RETURN int(1)
foo: ; (lines=2, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_017.php:2-8
-L0: CV0($x) = RECV 1
-L1: RETURN int(5)
+L0 (2): CV0($x) = RECV 1
+L1 (7): RETURN int(5)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_019.php:1-9
-L0: RETURN int(1)
+L0 (9): RETURN int(1)
foo: ; (lines=2, args=1, vars=1, tmps=0)
; (after optimizer)
; %ssccp_019.php:2-7
-L0: CV0($x) = RECV 1
-L1: RETURN int(5)
+L0 (2): CV0($x) = RECV 1
+L1 (6): RETURN int(5)
$_main: ; (lines=1, args=0, vars=0, tmps=0)
; (after optimizer)
; %ssccp_022.php:1-10
-L0: RETURN int(1)
+L0 (10): RETURN int(1)
foo: ; (lines=11, args=1, vars=2, tmps=1)
; (after optimizer)
; %ssccp_022.php:2-8
-L0: CV0($x) = RECV 1
-L1: ASSIGN_DIM CV1($a) int(0)
-L2: OP_DATA CV0($x)
-L3: ASSIGN_DIM CV1($a) int(1)
-L4: OP_DATA int(5)
-L5: ECHO int(5)
-L6: ASSIGN_OBJ CV1($a) string("foo")
-L7: OP_DATA int(5)
-L8: V2 = FETCH_DIM_R CV1($a) int(1)
-L9: ECHO V2
-L10: RETURN null
\ No newline at end of file
+L0 (2): CV0($x) = RECV 1
+L1 (3): ASSIGN_DIM CV1($a) int(0)
+L2 (3): OP_DATA CV0($x)
+L3 (4): ASSIGN_DIM CV1($a) int(1)
+L4 (4): OP_DATA int(5)
+L5 (5): ECHO int(5)
+L6 (6): ASSIGN_OBJ CV1($a) string("foo")
+L7 (6): OP_DATA int(5)
+L8 (7): V2 = FETCH_DIM_R CV1($a) int(1)
+L9 (7): ECHO V2
+L10 (8): RETURN null