Skip to content

Commit c60d0dc

Browse files
committed
Make tracing JIT to support operator overloading independently from opcache.optimization_level ini directive.
1 parent 31258e4 commit c60d0dc

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

ext/opcache/jit/zend_jit.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -684,15 +684,13 @@ static int zend_jit_op_array_analyze1(const zend_op_array *op_array, zend_script
684684
return SUCCESS;
685685
}
686686

687-
static int zend_jit_op_array_analyze2(const zend_op_array *op_array, zend_script *script, zend_ssa *ssa)
687+
static int zend_jit_op_array_analyze2(const zend_op_array *op_array, zend_script *script, zend_ssa *ssa, uint32_t optimization_level)
688688
{
689689
if ((JIT_G(opt_level) >= ZEND_JIT_LEVEL_OPT_FUNC)
690690
&& ssa->cfg.blocks
691691
&& op_array->last_try_catch == 0
692692
&& !(op_array->fn_flags & ZEND_ACC_GENERATOR)
693693
&& !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) {
694-
695-
uint32_t optimization_level = ZCG(accel_directives).optimization_level;
696694
if (zend_ssa_inference(&CG(arena), op_array, script, ssa, optimization_level) != SUCCESS) {
697695
return FAILURE;
698696
}
@@ -3133,7 +3131,7 @@ static int zend_real_jit_func(zend_op_array *op_array, zend_script *script, cons
31333131
}
31343132
}
31353133

3136-
if (zend_jit_op_array_analyze2(op_array, script, &ssa) != SUCCESS) {
3134+
if (zend_jit_op_array_analyze2(op_array, script, &ssa, ZCG(accel_directives).optimization_level) != SUCCESS) {
31373135
goto jit_failure;
31383136
}
31393137

@@ -3458,7 +3456,7 @@ ZEND_EXT_API int zend_jit_script(zend_script *script)
34583456
}
34593457
info = ZEND_FUNC_INFO(call_graph.op_arrays[i]);
34603458
if (info) {
3461-
if (zend_jit_op_array_analyze2(call_graph.op_arrays[i], script, &info->ssa) != SUCCESS) {
3459+
if (zend_jit_op_array_analyze2(call_graph.op_arrays[i], script, &info->ssa, ZCG(accel_directives).optimization_level) != SUCCESS) {
34623460
goto jit_failure;
34633461
}
34643462
info->flags = info->ssa.cfg.flags;

ext/opcache/jit/zend_jit_trace.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ static zend_ssa *zend_jit_trace_build_ssa(const zend_op_array *op_array, zend_sc
492492
}
493493
}
494494

495-
if (zend_jit_op_array_analyze2(op_array, script, ssa) != SUCCESS) {
495+
if (zend_jit_op_array_analyze2(op_array, script, ssa, 0) != SUCCESS) {
496496
break;
497497
}
498498

@@ -919,7 +919,7 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
919919
int i, v, idx, len, ssa_ops_count, vars_count, ssa_vars_count;
920920
zend_jit_trace_stack *stack;
921921
uint32_t build_flags = ZEND_SSA_RC_INFERENCE | ZEND_SSA_USE_CV_RESULTS;
922-
uint32_t optimization_level = ZCG(accel_directives).optimization_level;
922+
uint32_t optimization_level = 0;
923923
int call_level, level, num_op_arrays;
924924
size_t frame_size, stack_top, stack_size, stack_bottom;
925925
zend_jit_op_array_trace_extension *jit_extension;

0 commit comments

Comments
 (0)