/php-src/Zend/Optimizer/ |
H A D | block_pass.c | 62 #define VAR_SOURCE(op) Tsource[VAR_NUM(op.var)] argument 875 zend_op *op = src + 1; in zend_optimize_block() local 878 while (op < opline) { in zend_optimize_block() 886 op++; in zend_optimize_block() 970 zend_op *end = op + b->len; in assemble_code_blocks() 971 for (; op < end; op++) { in assemble_code_blocks() 972 if (op->op1_type == IS_CONST) { in assemble_code_blocks() 1635 zend_op *end = op + bb->len; in zend_merge_blocks() 1636 while (op < end) { in zend_merge_blocks() 1643 MAKE_NOP(op); in zend_merge_blocks() [all …]
|
H A D | escape_analysis.c | 106 if (op->op1_def >= 0) { in zend_build_equi_escape_sets() 107 if (op->op1_use >= 0) { in zend_build_equi_escape_sets() 109 union_find_unite(parent, size, op->op1_def, op->op1_use); in zend_build_equi_escape_sets() 113 union_find_unite(parent, size, op->op1_def, op->op2_use); in zend_build_equi_escape_sets() 116 if (op->op2_def >= 0) { in zend_build_equi_escape_sets() 117 if (op->op2_use >= 0) { in zend_build_equi_escape_sets() 118 union_find_unite(parent, size, op->op2_def, op->op2_use); in zend_build_equi_escape_sets() 124 union_find_unite(parent, size, op->result_def, op->result_use); in zend_build_equi_escape_sets() 128 union_find_unite(parent, size, op->result_def, op->op1_use); in zend_build_equi_escape_sets() 131 union_find_unite(parent, size, op->result_def, op->op2_use); in zend_build_equi_escape_sets() [all …]
|
H A D | sccp.c | 328 if (IS_PARTIAL_ARRAY(op)) { in ct_eval_bool_cast() 339 ZVAL_BOOL(result, zend_is_true(op)); in ct_eval_bool_cast() 344 switch (Z_TYPE_P(op)) { in zval_to_string_offset() 346 *result = Z_LVAL_P(op); in zval_to_string_offset() 350 Z_STRVAL_P(op), Z_STRLEN_P(op), result, NULL, 0)) { in zval_to_string_offset() 863 #define SET_RESULT(op, zv) do { \ argument 864 if (ssa_op->op##_def >= 0) { \ 865 set_value(scdf, ctx, ssa_op->op##_def, zv); \ 868 #define SET_RESULT_BOT(op) SET_RESULT(op, &ctx->bot) argument 869 #define SET_RESULT_TOP(op) SET_RESULT(op, &ctx->top) argument [all …]
|
H A D | ssa_integrity.c | 44 static inline bool is_used_by_op(zend_ssa *ssa, int op, int check) { in is_used_by_op() argument 45 zend_ssa_op *ssa_op = &ssa->ops[op]; in is_used_by_op() 51 static inline bool is_defined_by_op(zend_ssa *ssa, int op, int check) { in is_defined_by_op() argument 52 zend_ssa_op *ssa_op = &ssa->ops[op]; in is_defined_by_op()
|
H A D | zend_dump.c | 118 static void zend_dump_unused_op(const zend_op *opline, znode_op op, uint32_t flags) { in zend_dump_unused_op() argument 120 fprintf(stderr, " %u", op.num); in zend_dump_unused_op() 122 if (op.num != (uint32_t)-1) { in zend_dump_unused_op() 123 fprintf(stderr, " try-catch(%u)", op.num); in zend_dump_unused_op() 130 zend_dump_class_fetch_type(op.num); in zend_dump_unused_op() 134 if (op.num & IS_CONSTANT_UNQUALIFIED_IN_NAMESPACE) { in zend_dump_unused_op() 659 zval *op = CRT_CONSTANT(opline->op2); in zend_dump_op() local 665 HashTable *jumptable = Z_ARRVAL_P(op); in zend_dump_op() 683 zend_dump_const(op); in zend_dump_op()
|
H A D | zend_inference.c | 2044 zend_ssa_op *op; in add_usages() local 2047 op = ssa->ops + use; in add_usages() 2051 if (op->op1_def >= 0) { in add_usages() 2054 if (op->op2_def >= 0) { in add_usages() 2058 op--; in add_usages() 2062 if (op->op1_def >= 0) { in add_usages() 2065 if (op->op2_def >= 0) { in add_usages() 2070 op++; in add_usages() 4856 if (op->op1_use == var && op->op1_def >= 0) { in zend_mark_cv_references() 4866 if (op->op2_use == var && op->op2_def >= 0) { in zend_mark_cv_references() [all …]
|
H A D | zend_optimizer_internal.h | 38 #define INV_COND(op) ((op) == ZEND_JMPZ ? ZEND_JMPNZ : ZEND_JMPZ) argument 39 #define INV_EX_COND(op) ((op) == ZEND_JMPZ_EX ? ZEND_JMPNZ : ZEND_JMPZ) argument 40 #define INV_COND_EX(op) ((op) == ZEND_JMPZ ? ZEND_JMPNZ_EX : ZEND_JMPZ_EX) argument 41 #define INV_EX_COND_EX(op) ((op) == ZEND_JMPZ_EX ? ZEND_JMPNZ_EX : ZEND_JMPZ_EX) argument 43 #define RESULT_UNUSED(op) (op->result_type == IS_UNUSED) argument 54 #define LITERAL_LONG(op, val) do { \ argument 57 op.constant = zend_optimizer_add_literal(op_array, &_c); \ 60 #define LITERAL_BOOL(op, val) do { \ argument 63 op.constant = zend_optimizer_add_literal(op_array, &_c); \
|
H A D | zend_ssa.c | 191 op--; in find_adjusted_tmp_var() 207 if (op->op1_type == IS_CV && op->op2_type == IS_CONST) { in find_adjusted_tmp_var() 208 zv = CRT_CONSTANT_EX(op_array, op, op->op2); in find_adjusted_tmp_var() 215 zv = CRT_CONSTANT_EX(op_array, op, op->op1); in find_adjusted_tmp_var() 223 if (op->op1_type == IS_CV && op->op2_type == IS_CONST) { in find_adjusted_tmp_var() 224 zv = CRT_CONSTANT_EX(op_array, op, op->op2); in find_adjusted_tmp_var() 1111 op->op1_use_chain = ssa_vars[op->op1_use].use_chain; in zend_ssa_compute_use_def_chains() 1114 if (op->op2_use >= 0 && op->op2_use != op->op1_use) { in zend_ssa_compute_use_def_chains() 1115 op->op2_use_chain = ssa_vars[op->op2_use].use_chain; in zend_ssa_compute_use_def_chains() 1118 if (op->result_use >= 0 && op->result_use != op->op1_use && op->result_use != op->op2_use) { in zend_ssa_compute_use_def_chains() [all …]
|
H A D | zend_ssa.h | 150 void zend_ssa_unlink_use_chain(zend_ssa *ssa, int op, int var); 151 void zend_ssa_replace_use_chain(zend_ssa *ssa, int op, int new_op, int var);
|
/php-src/Zend/ |
H A D | README.md | 88 opline->op<X>.op_type 90 get_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 92 get_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 94 get_obj_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>) 96 get_obj_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
H A D | Zend.m4 | 216 AX_CHECK_COMPILE_FLAG([-Wlogical-op], CFLAGS="-Wlogical-op $CFLAGS", , [-Werror])
|
/php-src/Zend/tests/ |
H A D | bug38461.phpt | 19 $op = new ExtOperation; 20 $op->x = 'test';
|
H A D | bug53432.phpt | 64 Error: Cannot use assign-op operators with string offsets
|
H A D | bug69955.phpt | 2 Bug #69955 (Segfault when trying to combine [] and assign-op on ArrayAccess object).
|
H A D | bug76667.phpt | 2 Bug #76667 (Segfault with divide-assign op and __get + __set)
|
H A D | bug79791.phpt | 2 Bug #79791: Assertion failure when unsetting variable during binary op
|
H A D | gh10251.phpt | 15 $op = $pp & ""; 18 $a->$op = 0;
|
H A D | list_keyed_ArrayAccess.phpt | 41 $op = new IndexPrinter; 42 list(123 => $x) = $op; 44 list("123" => $x) = $op;
|
H A D | operator_unsupported_types.phpt | 46 eval("return $value1 $op $value2;"); 47 echo "No error for $value1 $op $value2\n"; 56 eval("\$x $op= $value2;"); 57 echo "No error for $value1 $op= $value2\n"; 67 foreach ($binops as $op) { 70 evalBinOp($op, $illegalValue1, $illegalValue2); 75 evalBinOp($op, $illegalValue, $legalValue); 76 evalBinOp($op, $legalValue, $illegalValue); 82 foreach ($binops as $op) { 83 if ($op === 'xor') continue; [all …]
|
H A D | oss_fuzz_61712.phpt | 2 OSS-Fuzz #61712 (assertion failure with error handler during binary op)
|
/php-src/Zend/tests/nullsafe_operator/ |
H A D | 005.phpt | 2 Test nullsafe property assignment op
|
H A D | 014.phpt | 2 Test nullsafe in binary op
|
H A D | 015.phpt | 2 Test nullsafe in binary op
|
/php-src/Zend/tests/offsets/ |
H A D | internal_handlers.phpt | 10 echo 'read op', PHP_EOL; 15 echo 'write op', PHP_EOL; 25 echo 'isset op', PHP_EOL; 223 read op 225 write op 227 read-write op 229 isset op 231 empty op 233 null coalescing op 235 appending op [all …]
|
H A D | string_container_offset_behaviour.phpt | 17 Cannot use assign-op operators with string offsets 62 Cannot use assign-op operators with string offsets 113 Cannot use assign-op operators with string offsets 174 Cannot use assign-op operators with string offsets 237 Cannot use assign-op operators with string offsets 304 Cannot use assign-op operators with string offsets 371 Cannot use assign-op operators with string offsets 512 Cannot use assign-op operators with string offsets 581 Cannot use assign-op operators with string offsets
|