Lines Matching refs:ssa_var

410                                                            int                   ssa_var,  in zend_jit_trace_add_op_guard()  argument
413 zend_ssa_var_info *info = &tssa->var_info[ssa_var]; in zend_jit_trace_add_op_guard()
416 if (UNEXPECTED(tssa->vars[ssa_var].alias != NO_ALIAS)) { in zend_jit_trace_add_op_guard()
744 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_phis()
781 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_call_phis()
813 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_ret_phis()
822 …op_array *op_array, const zend_ssa *ssa, const zend_op **tssa_opcodes, zend_ssa *tssa, int ssa_var) in zend_jit_trace_copy_ssa_var_info() argument
830 if (tssa->vars[ssa_var].phi_use_chain) { in zend_jit_trace_copy_ssa_var_info()
832 var = tssa->vars[ssa_var].phi_use_chain->ssa_var; in zend_jit_trace_copy_ssa_var_info()
834 var = ssa_var; in zend_jit_trace_copy_ssa_var_info()
856 tssa->vars[ssa_var].no_val = no_val; in zend_jit_trace_copy_ssa_var_info()
857 tssa->vars[ssa_var].alias = alias; in zend_jit_trace_copy_ssa_var_info()
858 memcpy(&tssa->var_info[ssa_var], info, sizeof(zend_ssa_var_info)); in zend_jit_trace_copy_ssa_var_info()
864 …ate_range(const zend_op_array *op_array, const zend_op **tssa_opcodes, zend_ssa *tssa, int ssa_var) in zend_jit_trace_propagate_range() argument
867 int def = tssa->vars[ssa_var].definition; in zend_jit_trace_propagate_range()
869 if (tssa->vars[ssa_var].alias == NO_ALIAS in zend_jit_trace_propagate_range()
870 …range(op_array, tssa, (zend_op*)tssa_opcodes[def], (zend_ssa_op*)&tssa->ops[def], ssa_var, &tmp)) { in zend_jit_trace_propagate_range()
871 tssa->var_info[ssa_var].range.min = tmp.min; in zend_jit_trace_propagate_range()
872 tssa->var_info[ssa_var].range.max = tmp.max; in zend_jit_trace_propagate_range()
873 tssa->var_info[ssa_var].range.underflow = tmp.underflow; in zend_jit_trace_propagate_range()
874 tssa->var_info[ssa_var].range.overflow = tmp.overflow; in zend_jit_trace_propagate_range()
875 tssa->var_info[ssa_var].has_range = 1; in zend_jit_trace_propagate_range()
879 …op_array *op_array, const zend_ssa *ssa, const zend_op **tssa_opcodes, zend_ssa *tssa, int ssa_var) in zend_jit_trace_copy_ssa_var_range() argument
887 def = tssa->vars[ssa_var].definition; in zend_jit_trace_copy_ssa_var_range()
891 if (tssa->ops[def].op1_def == ssa_var) { in zend_jit_trace_copy_ssa_var_range()
895 } else if (tssa->ops[def].op2_def == ssa_var) { in zend_jit_trace_copy_ssa_var_range()
899 } else if (tssa->ops[def].result_def == ssa_var) { in zend_jit_trace_copy_ssa_var_range()
908 tssa->vars[ssa_var].no_val = no_val; in zend_jit_trace_copy_ssa_var_range()
909 tssa->vars[ssa_var].alias = alias; in zend_jit_trace_copy_ssa_var_range()
912 zend_jit_trace_propagate_range(op_array, tssa_opcodes, tssa, ssa_var); in zend_jit_trace_copy_ssa_var_range()
916 if (tssa->var_info[ssa_var].has_range) { in zend_jit_trace_copy_ssa_var_range()
917 tssa->var_info[ssa_var].range.min = MAX(tssa->var_info[ssa_var].range.min, info->range.min); in zend_jit_trace_copy_ssa_var_range()
918 tssa->var_info[ssa_var].range.max = MIN(tssa->var_info[ssa_var].range.max, info->range.max); in zend_jit_trace_copy_ssa_var_range()
919 …tssa->var_info[ssa_var].range.underflow = tssa->var_info[ssa_var].range.underflow && info->range.u… in zend_jit_trace_copy_ssa_var_range()
920 …tssa->var_info[ssa_var].range.overflow = tssa->var_info[ssa_var].range.overflow && info->range.ove… in zend_jit_trace_copy_ssa_var_range()
922 tssa->var_info[ssa_var].has_range = 1; in zend_jit_trace_copy_ssa_var_range()
923 tssa->var_info[ssa_var].range = info->range; in zend_jit_trace_copy_ssa_var_range()
929 …op_array *op_array, const zend_ssa *ssa, const zend_op **tssa_opcodes, zend_ssa *tssa, int ssa_var) in zend_jit_trace_restrict_ssa_var_info() argument
935 def = tssa->vars[ssa_var].definition; in zend_jit_trace_restrict_ssa_var_info()
939 if (tssa->ops[def].op1_def == ssa_var) { in zend_jit_trace_restrict_ssa_var_info()
941 } else if (tssa->ops[def].op2_def == ssa_var) { in zend_jit_trace_restrict_ssa_var_info()
943 } else if (tssa->ops[def].result_def == ssa_var) { in zend_jit_trace_restrict_ssa_var_info()
949 tssa->var_info[ssa_var].type &= info->type; in zend_jit_trace_restrict_ssa_var_info()
951 if (tssa->var_info[ssa_var].ce) { in zend_jit_trace_restrict_ssa_var_info()
952 if (tssa->var_info[ssa_var].ce != info->ce) { in zend_jit_trace_restrict_ssa_var_info()
953 if (instanceof_function(tssa->var_info[ssa_var].ce, info->ce)) { in zend_jit_trace_restrict_ssa_var_info()
955 } else if (instanceof_function(info->ce, tssa->var_info[ssa_var].ce)) { in zend_jit_trace_restrict_ssa_var_info()
962 tssa->var_info[ssa_var].is_instanceof = in zend_jit_trace_restrict_ssa_var_info()
963 tssa->var_info[ssa_var].is_instanceof && info->is_instanceof; in zend_jit_trace_restrict_ssa_var_info()
965 tssa->var_info[ssa_var].ce = info->ce; in zend_jit_trace_restrict_ssa_var_info()
966 tssa->var_info[ssa_var].is_instanceof = info->is_instanceof; in zend_jit_trace_restrict_ssa_var_info()
970 if (tssa->var_info[ssa_var].has_range) { in zend_jit_trace_restrict_ssa_var_info()
971 tssa->var_info[ssa_var].range.min = MAX(tssa->var_info[ssa_var].range.min, info->range.min); in zend_jit_trace_restrict_ssa_var_info()
972 tssa->var_info[ssa_var].range.max = MIN(tssa->var_info[ssa_var].range.max, info->range.max); in zend_jit_trace_restrict_ssa_var_info()
973 …tssa->var_info[ssa_var].range.underflow = tssa->var_info[ssa_var].range.underflow && info->range.u… in zend_jit_trace_restrict_ssa_var_info()
974 …tssa->var_info[ssa_var].range.overflow = tssa->var_info[ssa_var].range.overflow && info->range.ove… in zend_jit_trace_restrict_ssa_var_info()
976 tssa->var_info[ssa_var].has_range = 1; in zend_jit_trace_restrict_ssa_var_info()
977 tssa->var_info[ssa_var].range = info->range; in zend_jit_trace_restrict_ssa_var_info()
1478 ssa_vars[phi->ssa_var].var = phi->var; in zend_jit_trace_build_tssa()
1479 ssa_vars[phi->ssa_var].definition_phi = phi; in zend_jit_trace_build_tssa()
1625 || !zend_jit_trace_copy_ssa_var_info(op_array, ssa, ssa_opcodes, tssa, phi->ssa_var)) { in zend_jit_trace_build_tssa()
1626 ssa_vars[phi->ssa_var].alias = ssa_vars[phi->sources[0]].alias; in zend_jit_trace_build_tssa()
1627 ssa_var_info[phi->ssa_var].type = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
2530 uint32_t t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2532 if ((t & MAY_BE_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2538 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2542 || is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2543 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2571 && is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2582 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2586 t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2589 if ((t & MAY_BE_PACKED_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2595 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2599 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2783 SET_STACK_VAR(stack, phi->var, phi->ssa_var); in zend_jit_trace_allocate_registers()
2784 vars_op_array[phi->ssa_var] = op_array; in zend_jit_trace_allocate_registers()
2785 if (ssa->vars[phi->ssa_var].use_chain >= 0 in zend_jit_trace_allocate_registers()
2786 && ssa->vars[phi->ssa_var].alias == NO_ALIAS in zend_jit_trace_allocate_registers()
2787 && zend_jit_var_supports_reg(ssa, phi->ssa_var)) { in zend_jit_trace_allocate_registers()
2788 start[phi->ssa_var] = 0; in zend_jit_trace_allocate_registers()
3085 if (start[i] >= 0 && !ssa->vars[phi->ssa_var].no_val) { in zend_jit_trace_allocate_registers()
3137 list[j].ssa_var = i; in zend_jit_trace_allocate_registers()
3172 list[j].ssa_var = - 1; in zend_jit_trace_allocate_registers()
3193 if (intervals[phi->ssa_var]) { in zend_jit_trace_allocate_registers()
3196 (ssa->var_info[phi->ssa_var].type & MAY_BE_ANY)) { in zend_jit_trace_allocate_registers()
3197 intervals[phi->sources[1]]->hint = intervals[phi->ssa_var]; in zend_jit_trace_allocate_registers()
3313 zend_jit_dump_lifetime_interval(vars_op_array[ival->ssa_var], ssa, ival); in zend_jit_trace_allocate_registers()
3332 ival->list_next = intervals[ival->ssa_var]; in zend_jit_trace_allocate_registers()
3333 intervals[ival->ssa_var] = ival; in zend_jit_trace_allocate_registers()
3366 int def = phi->ssa_var; in zend_jit_trace_allocate_registers()
3391 intervals[use]->ssa_var = phi->sources[0]; in zend_jit_trace_allocate_registers()
3433 zend_jit_dump_lifetime_interval(vars_op_array[ival->ssa_var], ssa, ival); in zend_jit_trace_allocate_registers()
4132 && !(ssa->var_info[ssa->vars[i].phi_use_chain->ssa_var].type & MAY_BE_GUARD)))) { in zend_jit_trace()
4154 && !(ssa->var_info[ssa->vars[i].phi_use_chain->ssa_var].type & MAY_BE_PACKED_GUARD)))) { in zend_jit_trace()
4212 zend_lifetime_interval *ival = ra[phi->ssa_var]; in zend_jit_trace()
4216 uint32_t info = ssa->var_info[phi->ssa_var].type; in zend_jit_trace()
4224 ssa->var_info[phi->ssa_var].type = info; in zend_jit_trace()
4228 …if (!zend_jit_load_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var,… in zend_jit_trace()
4235 …if (!zend_jit_store_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var… in zend_jit_trace()
4236 STACK_MEM_TYPE(stack, phi->var) != ssa->var_info[phi->ssa_var].type)) { in zend_jit_trace()
6873 if (ra[phi->ssa_var] in zend_jit_trace()
6876 && (ra[phi->ssa_var]->flags & (ZREG_LOAD|ZREG_STORE)) == 0 in zend_jit_trace()
7362 zend_dump_ssa_var(op_array, tssa, p->ssa_var, 0, p->var, ZEND_DUMP_RC_INFERENCE); in zend_jit_dump_trace()