return SUCCESS;
}
-static int zend_jit_op_array_analyze2(const zend_op_array *op_array, zend_script *script, zend_ssa *ssa)
+static int zend_jit_op_array_analyze2(const zend_op_array *op_array, zend_script *script, zend_ssa *ssa, uint32_t optimization_level)
{
if ((JIT_G(opt_level) >= ZEND_JIT_LEVEL_OPT_FUNC)
&& ssa->cfg.blocks
&& op_array->last_try_catch == 0
&& !(op_array->fn_flags & ZEND_ACC_GENERATOR)
&& !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) {
-
- uint32_t optimization_level = ZCG(accel_directives).optimization_level;
if (zend_ssa_inference(&CG(arena), op_array, script, ssa, optimization_level) != SUCCESS) {
return FAILURE;
}
}
}
- if (zend_jit_op_array_analyze2(op_array, script, &ssa) != SUCCESS) {
+ if (zend_jit_op_array_analyze2(op_array, script, &ssa, ZCG(accel_directives).optimization_level) != SUCCESS) {
goto jit_failure;
}
}
info = ZEND_FUNC_INFO(call_graph.op_arrays[i]);
if (info) {
- if (zend_jit_op_array_analyze2(call_graph.op_arrays[i], script, &info->ssa) != SUCCESS) {
+ if (zend_jit_op_array_analyze2(call_graph.op_arrays[i], script, &info->ssa, ZCG(accel_directives).optimization_level) != SUCCESS) {
goto jit_failure;
}
info->flags = info->ssa.cfg.flags;
}
}
- if (zend_jit_op_array_analyze2(op_array, script, ssa) != SUCCESS) {
+ if (zend_jit_op_array_analyze2(op_array, script, ssa, 0) != SUCCESS) {
break;
}
int i, v, idx, len, ssa_ops_count, vars_count, ssa_vars_count;
zend_jit_trace_stack *stack;
uint32_t build_flags = ZEND_SSA_RC_INFERENCE | ZEND_SSA_USE_CV_RESULTS;
- uint32_t optimization_level = ZCG(accel_directives).optimization_level;
+ uint32_t optimization_level = 0;
int call_level, level, num_op_arrays;
size_t frame_size, stack_top, stack_size, stack_bottom;
zend_jit_op_array_trace_extension *jit_extension;