]> granicus.if.org Git - php/commitdiff
Rename "var" to "stack". This is an abstract stack that holds TSSA variable numbers.
authorDmitry Stogov <dmitry@zend.com>
Wed, 25 Mar 2020 07:49:01 +0000 (10:49 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 25 Mar 2020 07:49:01 +0000 (10:49 +0300)
ext/opcache/jit/zend_jit_trace.c

index 46b4f3e22cd078ed5ee86b73ee60396dd62f0938..03b990f5359fb7142b3843b1ff7a4c06c3e5bb17 100644 (file)
@@ -513,7 +513,7 @@ static zend_always_inline int zend_jit_trace_op_len(const zend_op *opline)
        }
 }
 
-static int zend_jit_trace_add_phis(zend_jit_trace_rec *trace_buffer, uint32_t ssa_vars_count, zend_ssa *tssa, int *var)
+static int zend_jit_trace_add_phis(zend_jit_trace_rec *trace_buffer, uint32_t ssa_vars_count, zend_ssa *tssa, zend_jit_trace_stack *stack)
 {
        const zend_op_array *op_array;
        zend_jit_trace_rec *p;
@@ -575,13 +575,13 @@ static int zend_jit_trace_add_phis(zend_jit_trace_rec *trace_buffer, uint32_t ss
                                ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2) +
                                sizeof(void*) * 2);
                        phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi)));
-                       phi->sources[0] = var[k];
+                       phi->sources[0] = stack[k];
                        phi->sources[1] = -1;
                        phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2));
                        phi->pi = -1;
                        phi->var = k;
                        phi->ssa_var = ssa_vars_count;
-                       var[k] = ssa_vars_count;
+                       stack[k] = ssa_vars_count;
                        ssa_vars_count++;
                        phi->block = 1;
                        if (prev) {
@@ -814,7 +814,7 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
        const zend_op **ssa_opcodes;
        zend_jit_trace_rec *p;
        int i, v, idx, len, ssa_ops_count, vars_count, ssa_vars_count;
-       int *var;
+       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;
        int call_level, level, num_op_arrays;
@@ -955,15 +955,15 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
        } else {
                ssa_vars_count = op_array->last_var + op_array->T;
        }
-       var = frame->stack;
+       stack = frame->stack;
        for (i = 0; i < ssa_vars_count; i++) {
-               var[i] = i;
+               stack[i] = i;
        }
 
        if (trace_buffer->stop == ZEND_JIT_TRACE_STOP_LOOP) {
                // TODO: For tracing, it's possible, to create pseudo Phi functions
                //       at the end of loop, without this additional pass (like LuaJIT) ???
-               ssa_vars_count = zend_jit_trace_add_phis(trace_buffer, ssa_vars_count, tssa, var);
+               ssa_vars_count = zend_jit_trace_add_phis(trace_buffer, ssa_vars_count, tssa, stack);
        }
 
        p = trace_buffer + ZEND_JIT_TRACE_START_REC_SIZE;
@@ -973,37 +973,37 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
                if (p->op == ZEND_JIT_TRACE_VM) {
                        opline = p->opline;
                        ssa_opcodes[idx] = opline;
-                       ssa_vars_count = zend_ssa_rename_op(op_array, opline, idx, build_flags, ssa_vars_count, ssa_ops, var);
+                       ssa_vars_count = zend_ssa_rename_op(op_array, opline, idx, build_flags, ssa_vars_count, ssa_ops, stack);
                        idx++;
                        len = zend_jit_trace_op_len(p->opline);
                        while (len > 1) {
                                opline++;
                                ssa_opcodes[idx] = opline;
                                if (opline->opcode != ZEND_OP_DATA) {
-                                       ssa_vars_count = zend_ssa_rename_op(op_array, opline, idx, build_flags, ssa_vars_count, ssa_ops, var);
+                                       ssa_vars_count = zend_ssa_rename_op(op_array, opline, idx, build_flags, ssa_vars_count, ssa_ops, stack);
                                }
                                idx++;
                                len--;
                        }
                } else if (p->op == ZEND_JIT_TRACE_ENTER) {
                        frame = zend_jit_trace_call_frame(frame, op_array);
-                       var = frame->stack;
+                       stack = frame->stack;
                        op_array = p->op_array;
                        level++;
                        ZEND_ASSERT(ssa_vars_count < 0xff);
                        p->first_ssa_var = ssa_vars_count;
                        for (i = 0; i < op_array->last_var; i++) {
-                               var[i] = ssa_vars_count++;
+                               stack[i] = ssa_vars_count++;
                        }
                } else if (p->op == ZEND_JIT_TRACE_BACK) {
                        op_array = p->op_array;
                        frame = zend_jit_trace_ret_frame(frame, op_array);
-                       var = frame->stack;
+                       stack = frame->stack;
                        if (level == 0) {
                                ZEND_ASSERT(ssa_vars_count <= 0xff);
                                p->first_ssa_var = ssa_vars_count;
                                for (i = 0; i < op_array->last_var + op_array->T; i++) {
-                                       var[i] = ssa_vars_count++;
+                                       stack[i] = ssa_vars_count++;
                                }
                        } else {
                                level--;
@@ -1042,7 +1042,7 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
                zend_ssa_phi *phi = tssa->blocks[1].phis;
 
                while (phi) {
-                       phi->sources[1] = var[phi->var];
+                       phi->sources[1] = stack[phi->var];
                        ssa_vars[phi->ssa_var].var = phi->var;
                        ssa_vars[phi->ssa_var].definition_phi = phi;
                        ssa_vars[phi->sources[0]].phi_use_chain = phi;