Lines Matching refs:phi

701 			zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1,  in zend_jit_trace_add_phis()  local
705 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_phis()
706 phi->sources[0] = STACK_VAR(stack, k); in zend_jit_trace_add_phis()
707 phi->sources[1] = -1; in zend_jit_trace_add_phis()
708phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_phis()
709 phi->pi = -1; in zend_jit_trace_add_phis()
710 phi->var = k; in zend_jit_trace_add_phis()
711 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_phis()
714 phi->block = 1; in zend_jit_trace_add_phis()
716 prev->next = phi; in zend_jit_trace_add_phis()
718 tssa->blocks[1].phis = phi; in zend_jit_trace_add_phis()
720 prev = phi; in zend_jit_trace_add_phis()
738 zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1, in zend_jit_trace_add_call_phis() local
742 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_call_phis()
743 phi->sources[0] = STACK_VAR(stack, i); in zend_jit_trace_add_call_phis()
744 phi->sources[1] = -1; in zend_jit_trace_add_call_phis()
745 phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_call_phis()
746 phi->pi = -1; in zend_jit_trace_add_call_phis()
747 phi->var = i; in zend_jit_trace_add_call_phis()
748 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_call_phis()
751 phi->block = 1; in zend_jit_trace_add_call_phis()
753 prev->next = phi; in zend_jit_trace_add_call_phis()
755 tssa->blocks[1].phis = phi; in zend_jit_trace_add_call_phis()
757 prev = phi; in zend_jit_trace_add_call_phis()
768 zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1, in zend_jit_trace_add_ret_phis() local
774 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_ret_phis()
775 phi->sources[0] = STACK_VAR(stack, i); in zend_jit_trace_add_ret_phis()
776 phi->sources[1] = -1; in zend_jit_trace_add_ret_phis()
777 phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_ret_phis()
778 phi->pi = -1; in zend_jit_trace_add_ret_phis()
779 phi->var = i; in zend_jit_trace_add_ret_phis()
780 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_ret_phis()
783 phi->block = 1; in zend_jit_trace_add_ret_phis()
784 tssa->blocks[1].phis = phi; in zend_jit_trace_add_ret_phis()
824 zend_ssa_phi *phi = ssa->blocks[b].phis; in zend_jit_trace_copy_ssa_var_info() local
828 while (phi) { in zend_jit_trace_copy_ssa_var_info()
829 if (ssa->vars[phi->ssa_var].var == var) { in zend_jit_trace_copy_ssa_var_info()
830 if (phi->pi >= 0) { in zend_jit_trace_copy_ssa_var_info()
831 pi = phi; in zend_jit_trace_copy_ssa_var_info()
833 src = phi->ssa_var; in zend_jit_trace_copy_ssa_var_info()
837 phi = phi->next; in zend_jit_trace_copy_ssa_var_info()
864 phi = ssa->blocks[b].phis; in zend_jit_trace_copy_ssa_var_info()
866 while (phi) { in zend_jit_trace_copy_ssa_var_info()
867 if (ssa->vars[phi->ssa_var].var == var) { in zend_jit_trace_copy_ssa_var_info()
868 if (phi->pi >= 0) { in zend_jit_trace_copy_ssa_var_info()
869 pi = phi; in zend_jit_trace_copy_ssa_var_info()
871 src = phi->ssa_var; in zend_jit_trace_copy_ssa_var_info()
875 phi = phi->next; in zend_jit_trace_copy_ssa_var_info()
927 zend_ssa_phi *pi, *phi; in zend_jit_trace_copy_ssa_var_info() local
944 phi = ssa->blocks[b].phis; in zend_jit_trace_copy_ssa_var_info()
946 while (phi) { in zend_jit_trace_copy_ssa_var_info()
947 if (ssa->vars[phi->ssa_var].var == var) { in zend_jit_trace_copy_ssa_var_info()
948 if (phi->pi >= 0) { in zend_jit_trace_copy_ssa_var_info()
949 pi = phi; in zend_jit_trace_copy_ssa_var_info()
951 src = phi->ssa_var; in zend_jit_trace_copy_ssa_var_info()
955 phi = phi->next; in zend_jit_trace_copy_ssa_var_info()
1634 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
1636 while (phi) { in zend_jit_trace_build_tssa()
1637 phi->sources[1] = STACK_VAR(stack, phi->var); in zend_jit_trace_build_tssa()
1638 ssa_vars[phi->ssa_var].var = phi->var; in zend_jit_trace_build_tssa()
1639 ssa_vars[phi->ssa_var].definition_phi = phi; in zend_jit_trace_build_tssa()
1640 ssa_vars[phi->sources[0]].phi_use_chain = phi; in zend_jit_trace_build_tssa()
1641 ssa_vars[phi->sources[1]].phi_use_chain = phi; in zend_jit_trace_build_tssa()
1642 phi = phi->next; in zend_jit_trace_build_tssa()
1782 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
1784 while (phi) { in zend_jit_trace_build_tssa()
1786 || !zend_jit_trace_copy_ssa_var_info(op_array, ssa, ssa_opcodes, tssa, phi->ssa_var, NULL)) { in zend_jit_trace_build_tssa()
1787 ssa_vars[phi->ssa_var].alias = ssa_vars[phi->sources[0]].alias; in zend_jit_trace_build_tssa()
1788 ssa_var_info[phi->ssa_var].type = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
1790 phi = phi->next; in zend_jit_trace_build_tssa()
2685 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
2692 while (phi) { in zend_jit_trace_build_tssa()
2693 uint32_t t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2695 if ((t & MAY_BE_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2696 uint32_t t0 = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
2697 uint32_t t1 = ssa_var_info[phi->sources[1]].type; in zend_jit_trace_build_tssa()
2701 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2705 || is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2706 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2716 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2717 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2730 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2734 && is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2744 ssa_var_info[phi->sources[1]].type = t1; in zend_jit_trace_build_tssa()
2745 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2749 t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2752 if ((t & MAY_BE_PACKED_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2753 uint32_t t0 = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
2754 uint32_t t1 = ssa_var_info[phi->sources[1]].type; in zend_jit_trace_build_tssa()
2758 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2762 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2763 ssa_var_info[phi->sources[0]].type = in zend_jit_trace_build_tssa()
2768 phi = phi->next; in zend_jit_trace_build_tssa()
2928 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
2930 while (phi) { in zend_jit_trace_allocate_registers()
2931 SET_STACK_VAR(stack, phi->var, phi->ssa_var); in zend_jit_trace_allocate_registers()
2932 vars_op_array[phi->ssa_var] = op_array; in zend_jit_trace_allocate_registers()
2933 if (ssa->vars[phi->ssa_var].use_chain >= 0 in zend_jit_trace_allocate_registers()
2934 && ssa->vars[phi->ssa_var].alias == NO_ALIAS in zend_jit_trace_allocate_registers()
2935 && zend_jit_var_supports_reg(ssa, phi->ssa_var)) { in zend_jit_trace_allocate_registers()
2936 RA_IVAL_START(phi->ssa_var, 0); in zend_jit_trace_allocate_registers()
2939 phi = phi->next; in zend_jit_trace_allocate_registers()
3253 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
3255 while (phi) { in zend_jit_trace_allocate_registers()
3256 i = phi->sources[1]; in zend_jit_trace_allocate_registers()
3257 if (RA_HAS_IVAL(i) && !ssa->vars[phi->ssa_var].no_val) { in zend_jit_trace_allocate_registers()
3261 phi = phi->next; in zend_jit_trace_allocate_registers()
3296 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
3298 while (phi) { in zend_jit_trace_allocate_registers()
3299 int def = phi->ssa_var; in zend_jit_trace_allocate_registers()
3300 int use = phi->sources[1]; in zend_jit_trace_allocate_registers()
3318 use = phi->sources[0]; in zend_jit_trace_allocate_registers()
3336 phi = phi->next; in zend_jit_trace_allocate_registers()
3944 const zend_ssa_phi *phi; in zend_jit_find_ssa_var() local
3968 phi = ssa->blocks[b].phis; in zend_jit_find_ssa_var()
3970 while (phi) { in zend_jit_find_ssa_var()
3971 if (phi->var == var_num) { in zend_jit_find_ssa_var()
3972 ssa_var = phi->ssa_var; in zend_jit_find_ssa_var()
3974 phi = phi->next; in zend_jit_find_ssa_var()
4016 phi = ssa->blocks[b].phis; in zend_jit_find_ssa_var()
4018 while (phi) { in zend_jit_find_ssa_var()
4019 if (phi->var == var_num) { in zend_jit_find_ssa_var()
4020 ssa_var = phi->ssa_var; in zend_jit_find_ssa_var()
4022 phi = phi->next; in zend_jit_find_ssa_var()
4323 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace() local
4326 while (phi) { in zend_jit_trace()
4327 if (RA_HAS_REG(phi->ssa_var) in zend_jit_trace()
4328 && !(RA_REG_FLAGS(phi->ssa_var) & ZREG_LOAD)) { in zend_jit_trace()
4329 zend_jit_trace_gen_phi(&ctx, phi); in zend_jit_trace()
4330 SET_STACK_REF(stack, phi->var, ra[phi->ssa_var].ref); in zend_jit_trace()
4332 phi = phi->next; in zend_jit_trace()
4335 phi = ssa->blocks[1].phis; in zend_jit_trace()
4336 while (phi) { in zend_jit_trace()
4337 if (RA_HAS_REG(phi->ssa_var)) { in zend_jit_trace()
4338 if (RA_REG_FLAGS(phi->ssa_var) & ZREG_LOAD) { in zend_jit_trace()
4339 uint32_t info = ssa->var_info[phi->ssa_var].type; in zend_jit_trace()
4342 if (!zend_jit_type_guard(&ctx, opline, EX_NUM_TO_VAR(phi->var), concrete_type(info))) { in zend_jit_trace()
4346 ssa->var_info[phi->ssa_var].type = info; in zend_jit_trace()
4347 SET_STACK_TYPE(stack, phi->var, concrete_type(info), 1); in zend_jit_trace()
4349 …if (!zend_jit_load_var(&ctx, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var, phi->s… in zend_jit_trace()
4352 SET_STACK_REF_EX(stack, phi->var, ra[phi->ssa_var].ref, ZREG_LOAD); in zend_jit_trace()
4353 } else if (RA_REG_FLAGS(phi->ssa_var) & ZREG_STORE) { in zend_jit_trace()
4355 …if (!zend_jit_store_var(&ctx, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var, phi->… in zend_jit_trace()
4356 STACK_MEM_TYPE(stack, phi->var) != ssa->var_info[phi->ssa_var].type)) { in zend_jit_trace()
4359 SET_STACK_REF_EX(stack, phi->var, ra[phi->ssa_var].ref, ZREG_STORE); in zend_jit_trace()
4362 SET_STACK_REF(stack, phi->var, ra[phi->ssa_var].ref); in zend_jit_trace()
4365 phi = phi->next; in zend_jit_trace()
7183 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace() local
7185 while (phi) { in zend_jit_trace()
7186 if (RA_HAS_REG(phi->sources[1]) in zend_jit_trace()
7187 && STACK_MEM_TYPE(stack, phi->var) != STACK_TYPE(stack, phi->var) in zend_jit_trace()
7188 && (RA_REG_FLAGS(phi->sources[1]) & (ZREG_LOAD|ZREG_STORE)) == 0) { in zend_jit_trace()
7190 if (!RA_HAS_REG(phi->ssa_var) in zend_jit_trace()
7191 || (RA_REG_FLAGS(phi->ssa_var) & (ZREG_LOAD|ZREG_STORE)) == 0) { in zend_jit_trace()
7193 zend_jit_store_var_type(&ctx, phi->var, STACK_TYPE(stack, phi->var)); in zend_jit_trace()
7196 phi = phi->next; in zend_jit_trace()