We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 5039999 commit 6f888b9Copy full SHA for 6f888b9
ext/opcache/jit/zend_jit_trace.c
@@ -3280,8 +3280,19 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
3280
uint32_t info = ssa->var_info[i].type;
3281
3282
if (!(info & MAY_BE_GUARD) && has_concrete_type(info)) {
3283
- SET_STACK_TYPE(stack, i, concrete_type(info),
3284
- (i >= parent_vars_count || STACK_REG(parent_stack, i) >= ZREG_NUM));
+ uint8_t type, mem_type;
+
3285
+ type = concrete_type(info);
3286
+ if (i < parent_vars_count
3287
+ && STACK_TYPE(parent_stack, i) == type) {
3288
+ mem_type = STACK_MEM_TYPE(parent_stack, i);
3289
+ if (mem_type != IS_UNKNOWN) {
3290
+ SET_STACK_TYPE(stack, i, mem_type, 1);
3291
+ }
3292
+ SET_STACK_TYPE(stack, i, type, 0);
3293
+ } else {
3294
+ SET_STACK_TYPE(stack, i, type, 1);
3295
3296
} else if (zend_jit_var_may_alias(op_array, op_array_ssa, i) != NO_ALIAS) {
3297
SET_STACK_TYPE(stack, i, IS_UNKNOWN, 1);
3298
} else if (i < parent_vars_count
0 commit comments