Home
last modified time | relevance | path

Searched refs:ssa_op (Results 1 – 18 of 18) sorted by relevance

/php-src/Zend/Optimizer/
H A Dzend_ssa.h181 ssa_op->op1_def = -1; in zend_ssa_remove_op1_def()
188 ssa_op->op2_def = -1; in zend_ssa_remove_op2_def()
195 ssa_op += use; in END_EXTERN_C()
226 return ssa_op->op1_use == var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
229 return ssa_op->op2_use == var && ssa_op->op1_use != var; in zend_ssa_is_no_val_use()
234 return ssa_op->op1_use != var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
243 zend_ssa_rename_var_uses(ssa, ssa_op->op1_def, ssa_op->op1_use, 1); in zend_ssa_rename_defs_of_instr()
246 ssa_op->op1_def = -1; in zend_ssa_rename_defs_of_instr()
250 zend_ssa_rename_var_uses(ssa, ssa_op->op2_def, ssa_op->op2_use, 1); in zend_ssa_rename_defs_of_instr()
253 ssa_op->op2_def = -1; in zend_ssa_rename_defs_of_instr()
[all …]
H A Dzend_inference.h48 ssa_op->opN##_use >= 0 && \
49 ssa->var_info[ssa_op->opN##_use].has_range); \
64 ssa_op->opN##_use >= 0 && \
65 ssa->var_info[ssa_op->opN##_use].has_range) { \
81 ssa_op->opN##_use >= 0 && \
98 ssa_op->opN##_use >= 0 && \
115 ssa_op->opN##_use >= 0 && \
200 #define OP1_DATA_INFO() (_ssa_op1_info(op_array, ssa, (opline+1), ssa_op ? (ssa_op+1) : NULL)) in DEFINE_SSA_OP_INFO()
201 #define OP2_DATA_INFO() (_ssa_op2_info(op_array, ssa, (opline+1), ssa_op ? (ssa_op+1) : NULL)) in DEFINE_SSA_OP_INFO()
205 #define OP1_DATA_DEF_INFO() (_ssa_op1_def_info(op_array, ssa, (opline+1), ssa_op ? (ssa_op+1) : NU… in DEFINE_SSA_OP_INFO()
[all …]
H A Dssa_integrity.c47 || (ssa_op->op2_use == check) in is_used_by_op()
54 || (ssa_op->op2_def == check) in is_defined_by_op()
211 if (ssa_op->op1_use < 0 && ssa_op->op1_def < 0) { in ssa_verify_integrity()
215 if (ssa_op->op1_use >= 0 || ssa_op->op1_def >= 0) { in ssa_verify_integrity()
220 if (ssa_op->op2_use < 0 && ssa_op->op2_def < 0) { in ssa_verify_integrity()
224 if (ssa_op->op2_use >= 0 || ssa_op->op2_def >= 0) { in ssa_verify_integrity()
229 if (ssa_op->result_use < 0 && ssa_op->result_def < 0) { in ssa_verify_integrity()
233 if (ssa_op->result_use >= 0 || ssa_op->result_def >= 0) { in ssa_verify_integrity()
238 if (ssa_op->op1_use >= 0) { in ssa_verify_integrity()
255 if (ssa_op->op2_use >= 0) { in ssa_verify_integrity()
[all …]
H A Ddce.c186 if (is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def)) { in may_have_side_effects()
217 return is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def); in may_have_side_effects()
219 return is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def) in may_have_side_effects()
223 if (is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def) in may_have_side_effects()
229 ssa_op++; in may_have_side_effects()
241 if (is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def) in may_have_side_effects()
298 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op1_use) in add_operands_to_worklists()
307 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op2_use) in add_operands_to_worklists()
428 if (!try_remove_var_def(ctx, ssa_op->op1_use, ssa_op->op1_use_chain, opline)) { in dce_instr()
507 if (ssa_op->op1_def >= 0 in may_break_varargs()
[all …]
H A Dzend_inference.c1450 if (ssa_op->op1_def == var || ssa_op->op2_def == var || ssa_op->result_def == var) { in zend_inference_propagate_range()
1468 ssa_op++; in zend_inference_propagate_range()
2539 ssa_op--; in _zend_update_type_info()
2650 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2696 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
2981 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3010 ssa_op++; in _zend_update_type_info()
3031 COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); in _zend_update_type_info()
3044 ssa_op++; in _zend_update_type_info()
3059 ssa_op++; in _zend_update_type_info()
[all …]
H A Dsccp.c294 if (ssa_op->op1_use == var && can_replace_op1(ctx->scdf.op_array, opline, ssa_op)) { in try_replace_op1()
1228 ssa_op++; in sccp_visit_instr()
1662 if (ssa_op->result_def < 0 || IS_BOT(&ctx->values[ssa_op->result_def])) { in sccp_visit_instr()
1721 if (ssa_op->result_def < 0 || IS_BOT(&ctx->values[ssa_op->result_def])) { in sccp_visit_instr()
2142 if (ssa_op->op1_def >= 0 || ssa_op->op2_def >= 0) { in try_remove_definition()
2276 if ((ssa_op->op2_use >= 0 && !value_known(&ctx->values[ssa_op->op2_use])) in try_remove_definition()
2320 if (ssa_op->op2_use != ssa_op->op1_use) { in try_remove_definition()
2354 zend_ssa_rename_var_uses(ssa, ssa_op->op1_def, ssa_op->op1_use, 1); in try_remove_definition()
2412 if (ssa_op->op1_use != ssa_op->op2_use) { in replace_constant_operands()
2415 ssa_op->op2_use_chain = ssa_op->op1_use_chain; in replace_constant_operands()
[all …]
H A Dzend_ssa.c1284 zend_ssa_unlink_use_chain(ssa, ssa_op - ssa->ops, ssa_op->result_use); in zend_ssa_remove_instr()
1289 if (ssa_op->op1_use != ssa_op->op2_use) { in zend_ssa_remove_instr()
1290 zend_ssa_unlink_use_chain(ssa, ssa_op - ssa->ops, ssa_op->op1_use); in zend_ssa_remove_instr()
1292 ssa_op->op2_use_chain = ssa_op->op1_use_chain; in zend_ssa_remove_instr()
1294 ssa_op->op1_use = -1; in zend_ssa_remove_instr()
1298 zend_ssa_unlink_use_chain(ssa, ssa_op - ssa->ops, ssa_op->op2_use); in zend_ssa_remove_instr()
1299 ssa_op->op2_use = -1; in zend_ssa_remove_instr()
1439 ssa_op->op1_use = -1; in zend_ssa_remove_uses_of_var()
1619 ssa_op->res_use_chain = ssa_op->op1_use_chain; in zend_ssa_rename_var_uses()
1625 ssa_op->res_use_chain = ssa_op->op2_use_chain; in zend_ssa_rename_var_uses()
[all …]
H A Dscdf.c124 zend_ssa_op *ssa_op = &ssa->ops[i]; in scdf_solve() local
127 ssa_op--; in scdf_solve()
129 scdf->handlers.visit_instr(scdf, opline, ssa_op); in scdf_solve()
134 scdf->handlers.mark_feasible_successors(scdf, block_num, block, opline, ssa_op); in scdf_solve()
188 scdf_ctx *scdf, const zend_op *opline, const zend_ssa_op *ssa_op) { in is_live_loop_var_free() argument
193 int var = ssa_op->op1_use; in is_live_loop_var_free()
238 zend_ssa_op *ssa_op = &scdf->ssa->ops[i]; in cleanup_loop_var_free_block() local
240 || is_live_loop_var_free(scdf, opline, ssa_op)) { in cleanup_loop_var_free_block()
246 zend_ssa_remove_defs_of_instr(ssa, ssa_op); in cleanup_loop_var_free_block()
247 zend_ssa_remove_instr(ssa, opline, ssa_op); in cleanup_loop_var_free_block()
H A Descape_analysis.c152 zend_ssa_op *ssa_op = ssa->ops + def; in is_allocation_def() local
155 if (ssa_op->result_def == var) { in is_allocation_def()
197 } else if (ssa_op->op1_def == var) { in is_allocation_def()
273 zend_ssa_op *ssa_op = ssa->ops + use; in is_escape_use() local
276 if (ssa_op->op1_use == var) { in is_escape_use()
331 ssa_op--; in is_escape_use()
334 || (ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias)) { in is_escape_use()
345 if (ssa_op->op2_use == var) { in is_escape_use()
350 || (ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias)) { in is_escape_use()
366 if (ssa_op->result_use == var) { in is_escape_use()
H A Ddfa_pass.c374 if ((ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].var == var) || in variable_defined_or_used_in_range()
375 (ssa_op->op2_def >= 0 && ssa->vars[ssa_op->op2_def].var == var) || in variable_defined_or_used_in_range()
376 (ssa_op->result_def >= 0 && ssa->vars[ssa_op->result_def].var == var) || in variable_defined_or_used_in_range()
377 (ssa_op->op1_use >= 0 && ssa->vars[ssa_op->op1_use].var == var) || in variable_defined_or_used_in_range()
378 (ssa_op->op2_use >= 0 && ssa->vars[ssa_op->op2_use].var == var) || in variable_defined_or_used_in_range()
379 (ssa_op->result_use >= 0 && ssa->vars[ssa_op->result_use].var == var) in variable_defined_or_used_in_range()
471 ssa_op->op1_use = -1; in zend_dfa_optimize_calls()
756 zend_ssa_op *ssa_op; in zend_dfa_optimize_jmps() local
770 ssa_op = ssa->ops + op_num; in zend_dfa_optimize_jmps()
1091 zend_ssa_op *ssa_op; in zend_dfa_optimize_op_array() local
[all …]
H A Dzend_dump.c448 if (!ssa_op || ssa_op->result_use < 0) { in zend_dump_op()
450 if (ssa_op && ssa_op->result_def >= 0) { in zend_dump_op()
625 if (ssa_op) { in zend_dump_op()
630 } else if (ssa_op->op1_def < 0) { in zend_dump_op()
638 if (ssa_op) { in zend_dump_op()
686 if (ssa_op) { in zend_dump_op()
699 if (ssa_op) { in zend_dump_op()
736 } else if (ssa_op && ssa_op->result_use >= 0) { in zend_dump_op()
738 if (ssa_op) { in zend_dump_op()
748 if (ssa_op) { in zend_dump_op()
[all …]
H A Dscdf.h40 struct _scdf_ctx *scdf, zend_op *opline, zend_ssa_op *ssa_op);
45 zend_op *opline, zend_ssa_op *ssa_op);
H A Dzend_dump.h37 …ck *b, const zend_op *opline, uint32_t dump_flags, const zend_ssa *ssa, const zend_ssa_op *ssa_op);
H A Dzend_optimizer.c1313 zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes]; in zend_redo_pass_two_ex() local
1400 if (ssa_op->op1_use >= 0) { in zend_redo_pass_two_ex()
1401 opline->op1_use_type = ssa->var_info[ssa_op->op1_use].type; in zend_redo_pass_two_ex()
1403 if (ssa_op->op2_use >= 0) { in zend_redo_pass_two_ex()
1404 opline->op2_use_type = ssa->var_info[ssa_op->op2_use].type; in zend_redo_pass_two_ex()
1406 if (ssa_op->result_use >= 0) { in zend_redo_pass_two_ex()
1409 if (ssa_op->op1_def >= 0) { in zend_redo_pass_two_ex()
1410 opline->op1_def_type = ssa->var_info[ssa_op->op1_def].type; in zend_redo_pass_two_ex()
1412 if (ssa_op->op2_def >= 0) { in zend_redo_pass_two_ex()
1415 if (ssa_op->result_def >= 0) { in zend_redo_pass_two_ex()
[all …]
/php-src/ext/opcache/jit/
H A Dzend_jit_trace.c2885 zend_jit_trace_use_var(idx, ssa_op->op1_use, ssa_op->op1_def, ssa_op->op1_use_chain, in zend_jit_trace_allocate_registers()
2911 && ssa_op->op2_use != ssa_op->op1_use in zend_jit_trace_allocate_registers()
2917 zend_jit_trace_use_var(idx, ssa_op->op2_use, ssa_op->op2_def, ssa_op->op2_use_chain, in zend_jit_trace_allocate_registers()
2926 && ssa_op->result_use != ssa_op->op1_use in zend_jit_trace_allocate_registers()
2927 && ssa_op->result_use != ssa_op->op2_use in zend_jit_trace_allocate_registers()
2933 zend_jit_trace_use_var(idx, ssa_op->result_use, ssa_op->result_def, ssa_op->res_use_chain, in zend_jit_trace_allocate_registers()
3021 zend_jit_trace_use_var(idx, ssa_op->op1_use, ssa_op->op1_def, ssa_op->op1_use_chain, in zend_jit_trace_allocate_registers()
3737 if ((ssa_op-1)->op1_def == ssa_op->op2_use) { in zend_jit_may_skip_comparison()
3738 ssa_op--; in zend_jit_may_skip_comparison()
3748 ssa_op--; in zend_jit_may_skip_comparison()
[all …]
H A Dzend_jit.c249 if (ssa_op) ssa_op += offset; \
259 ADVANCE_SSA_OP(ssa_op, 1); in zend_jit_needs_call_chain()
328 ADVANCE_SSA_OP(ssa_op, 1); in zend_jit_needs_call_chain()
390 ADVANCE_SSA_OP(ssa_op, 1); in zend_jit_needs_call_chain()
404 ADVANCE_SSA_OP(ssa_op, 1); in zend_jit_needs_call_chain()
762 res = ssa_op->op1_def; in zend_may_overflow()
777 res = ssa_op->op1_def; in zend_may_overflow()
791 res = ssa_op->result_def; in zend_may_overflow()
852 res = ssa_op->op1_def; in zend_may_overflow()
879 res = ssa_op->op1_def; in zend_may_overflow()
[all …]
H A Dzend_jit_internal.h80 #define OP_REG_ADDR(opline, ssa_op, type, op, _ssa_op) \ argument
81 ((ctx.ra && (ssa_op)->_ssa_op >= 0 && ctx.ra[(ssa_op)->_ssa_op].ref) ? \
82 ZEND_ADDR_REG((ssa_op)->_ssa_op) : \
95 OP_REG_ADDR(opline, ssa_op, op1_type, op1, op1_use)
97 OP_REG_ADDR(opline, ssa_op, op2_type, op2, op2_use)
99 OP_REG_ADDR(opline, ssa_op, result_type, result, result_def)
101 OP_REG_ADDR(opline + 1, ssa_op + 1, op1_type, op1, op1_use)
104 OP_REG_ADDR(opline, ssa_op, op1_type, op1, op1_def)
106 OP_REG_ADDR(opline, ssa_op, op2_type, op2, op2_def)
108 OP_REG_ADDR(opline, ssa_op, result_type, result, result_use)
[all …]
H A Dzend_jit_ir.c8925 if (ssa->var_info && ssa_op->op2_use >= 0) {
12042 && (ssa_op+1)->op1_use == ssa_op->result_def
13775 if (ssa->var_info && ssa_op->op1_use >= 0) {
13777 ssa->var_info[ssa_op->op1_use].ce = ce;
14075 && (ssa_op+1)->op1_use == ssa_op->result_def
14257 ssa->var_info[ssa_op->op1_use].ce = ce;
14262 ssa->var_info[ssa_op->op1_def].ce = ce;
14601 ssa->var_info[ssa_op->op1_use].ce = ce;
14606 ssa->var_info[ssa_op->op1_def].ce = ce;
15024 ssa->var_info[ssa_op->op1_use].ce = ce;
[all …]

Completed in 207 milliseconds