Lines Matching refs:phi

734 			zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1,  in zend_jit_trace_add_phis()  local
738 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_phis()
739 phi->sources[0] = STACK_VAR(stack, k); in zend_jit_trace_add_phis()
740 phi->sources[1] = -1; in zend_jit_trace_add_phis()
741phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_phis()
742 phi->pi = -1; in zend_jit_trace_add_phis()
743 phi->var = k; in zend_jit_trace_add_phis()
744 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_phis()
747 phi->block = 1; in zend_jit_trace_add_phis()
749 prev->next = phi; in zend_jit_trace_add_phis()
751 tssa->blocks[1].phis = phi; in zend_jit_trace_add_phis()
753 prev = phi; in zend_jit_trace_add_phis()
771 zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1, in zend_jit_trace_add_call_phis() local
775 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_call_phis()
776 phi->sources[0] = STACK_VAR(stack, i); in zend_jit_trace_add_call_phis()
777 phi->sources[1] = -1; in zend_jit_trace_add_call_phis()
778 phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_call_phis()
779 phi->pi = -1; in zend_jit_trace_add_call_phis()
780 phi->var = i; in zend_jit_trace_add_call_phis()
781 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_call_phis()
784 phi->block = 1; in zend_jit_trace_add_call_phis()
786 prev->next = phi; in zend_jit_trace_add_call_phis()
788 tssa->blocks[1].phis = phi; in zend_jit_trace_add_call_phis()
790 prev = phi; in zend_jit_trace_add_call_phis()
801 zend_ssa_phi *phi = zend_arena_calloc(&CG(arena), 1, in zend_jit_trace_add_ret_phis() local
807 phi->sources = (int*)(((char*)phi) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_ssa_phi))); in zend_jit_trace_add_ret_phis()
808 phi->sources[0] = STACK_VAR(stack, i); in zend_jit_trace_add_ret_phis()
809 phi->sources[1] = -1; in zend_jit_trace_add_ret_phis()
810 phi->use_chains = (zend_ssa_phi**)(((char*)phi->sources) + ZEND_MM_ALIGNED_SIZE(sizeof(int) * 2)); in zend_jit_trace_add_ret_phis()
811 phi->pi = -1; in zend_jit_trace_add_ret_phis()
812 phi->var = i; in zend_jit_trace_add_ret_phis()
813 phi->ssa_var = ssa_vars_count; in zend_jit_trace_add_ret_phis()
816 phi->block = 1; in zend_jit_trace_add_ret_phis()
817 tssa->blocks[1].phis = phi; in zend_jit_trace_add_ret_phis()
1476 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
1478 while (phi) { in zend_jit_trace_build_tssa()
1479 phi->sources[1] = STACK_VAR(stack, phi->var); in zend_jit_trace_build_tssa()
1480 ssa_vars[phi->ssa_var].var = phi->var; in zend_jit_trace_build_tssa()
1481 ssa_vars[phi->ssa_var].definition_phi = phi; in zend_jit_trace_build_tssa()
1482 ssa_vars[phi->sources[0]].phi_use_chain = phi; in zend_jit_trace_build_tssa()
1483 ssa_vars[phi->sources[1]].phi_use_chain = phi; in zend_jit_trace_build_tssa()
1484 phi = phi->next; in zend_jit_trace_build_tssa()
1623 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
1625 while (phi) { in zend_jit_trace_build_tssa()
1627 || !zend_jit_trace_copy_ssa_var_info(op_array, ssa, ssa_opcodes, tssa, phi->ssa_var)) { in zend_jit_trace_build_tssa()
1628 ssa_vars[phi->ssa_var].alias = ssa_vars[phi->sources[0]].alias; in zend_jit_trace_build_tssa()
1629 ssa_var_info[phi->ssa_var].type = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
1631 phi = phi->next; in zend_jit_trace_build_tssa()
2538 zend_ssa_phi *phi = tssa->blocks[1].phis; in zend_jit_trace_build_tssa() local
2545 while (phi) { in zend_jit_trace_build_tssa()
2546 uint32_t t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2548 if ((t & MAY_BE_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2549 uint32_t t0 = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
2550 uint32_t t1 = ssa_var_info[phi->sources[1]].type; in zend_jit_trace_build_tssa()
2554 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2558 || is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2559 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2569 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2570 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2583 ssa_var_info[phi->sources[0]].type = t0; in zend_jit_trace_build_tssa()
2587 && is_checked_guard(tssa, ssa_opcodes, phi->sources[1], phi->ssa_var)) { in zend_jit_trace_build_tssa()
2597 ssa_var_info[phi->sources[1]].type = t1; in zend_jit_trace_build_tssa()
2598 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_GUARD; in zend_jit_trace_build_tssa()
2602 t = ssa_var_info[phi->ssa_var].type; in zend_jit_trace_build_tssa()
2605 if ((t & MAY_BE_PACKED_GUARD) && tssa->vars[phi->ssa_var].alias == NO_ALIAS) { in zend_jit_trace_build_tssa()
2606 uint32_t t0 = ssa_var_info[phi->sources[0]].type; in zend_jit_trace_build_tssa()
2607 uint32_t t1 = ssa_var_info[phi->sources[1]].type; in zend_jit_trace_build_tssa()
2611 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2615 ssa_var_info[phi->ssa_var].type = t & ~MAY_BE_PACKED_GUARD; in zend_jit_trace_build_tssa()
2616 ssa_var_info[phi->sources[0]].type = in zend_jit_trace_build_tssa()
2621 phi = phi->next; in zend_jit_trace_build_tssa()
2796 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
2798 while (phi) { in zend_jit_trace_allocate_registers()
2799 SET_STACK_VAR(stack, phi->var, phi->ssa_var); in zend_jit_trace_allocate_registers()
2800 vars_op_array[phi->ssa_var] = op_array; in zend_jit_trace_allocate_registers()
2801 if (ssa->vars[phi->ssa_var].use_chain >= 0 in zend_jit_trace_allocate_registers()
2802 && ssa->vars[phi->ssa_var].alias == NO_ALIAS in zend_jit_trace_allocate_registers()
2803 && zend_jit_var_supports_reg(ssa, phi->ssa_var)) { in zend_jit_trace_allocate_registers()
2804 start[phi->ssa_var] = 0; in zend_jit_trace_allocate_registers()
2807 phi = phi->next; in zend_jit_trace_allocate_registers()
3097 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
3099 while (phi) { in zend_jit_trace_allocate_registers()
3100 i = phi->sources[1]; in zend_jit_trace_allocate_registers()
3101 if (start[i] >= 0 && !ssa->vars[phi->ssa_var].no_val) { in zend_jit_trace_allocate_registers()
3105 phi = phi->next; in zend_jit_trace_allocate_registers()
3206 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
3208 while (phi) { in zend_jit_trace_allocate_registers()
3209 if (intervals[phi->ssa_var]) { in zend_jit_trace_allocate_registers()
3210 if (intervals[phi->sources[1]] in zend_jit_trace_allocate_registers()
3211 && (ssa->var_info[phi->sources[1]].type & MAY_BE_ANY) == in zend_jit_trace_allocate_registers()
3212 (ssa->var_info[phi->ssa_var].type & MAY_BE_ANY)) { in zend_jit_trace_allocate_registers()
3213 intervals[phi->sources[1]]->hint = intervals[phi->ssa_var]; in zend_jit_trace_allocate_registers()
3216 phi = phi->next; in zend_jit_trace_allocate_registers()
3282 zend_ssa_phi *phi = ssa->vars[ssa->ops[line].op1_use].definition_phi; in zend_jit_trace_allocate_registers() local
3283 if (phi && in zend_jit_trace_allocate_registers()
3284 intervals[phi->sources[1]] && in zend_jit_trace_allocate_registers()
3285 intervals[phi->sources[1]]->hint == intervals[ssa->ops[line].op1_use]) { in zend_jit_trace_allocate_registers()
3297 zend_ssa_phi *phi = ssa->vars[ssa->ops[line].op2_use].definition_phi; in zend_jit_trace_allocate_registers() local
3298 if (phi && in zend_jit_trace_allocate_registers()
3299 intervals[phi->sources[1]] && in zend_jit_trace_allocate_registers()
3300 intervals[phi->sources[1]]->hint == intervals[ssa->ops[line].op2_use]) { in zend_jit_trace_allocate_registers()
3379 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace_allocate_registers() local
3381 while (phi) { in zend_jit_trace_allocate_registers()
3382 int def = phi->ssa_var; in zend_jit_trace_allocate_registers()
3383 int use = phi->sources[1]; in zend_jit_trace_allocate_registers()
3404 use = phi->sources[0]; in zend_jit_trace_allocate_registers()
3407 intervals[use]->ssa_var = phi->sources[0]; in zend_jit_trace_allocate_registers()
3427 phi = phi->next; in zend_jit_trace_allocate_registers()
4225 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace() local
4227 while (phi) { in zend_jit_trace()
4228 zend_lifetime_interval *ival = ra[phi->ssa_var]; in zend_jit_trace()
4232 uint32_t info = ssa->var_info[phi->ssa_var].type; in zend_jit_trace()
4236 … if (!zend_jit_type_guard(&dasm_state, opline, EX_NUM_TO_VAR(phi->var), concrete_type(info))) { in zend_jit_trace()
4240 ssa->var_info[phi->ssa_var].type = info; in zend_jit_trace()
4241 SET_STACK_TYPE(stack, phi->var, concrete_type(info), 1); in zend_jit_trace()
4243 SET_STACK_REG_EX(stack, phi->var, ival->reg, ZREG_LOAD); in zend_jit_trace()
4244 …if (!zend_jit_load_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var,… in zend_jit_trace()
4250 SET_STACK_REG_EX(stack, phi->var, ival->reg, ZREG_STORE); in zend_jit_trace()
4251 …if (!zend_jit_store_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var… in zend_jit_trace()
4252 STACK_MEM_TYPE(stack, phi->var) != ssa->var_info[phi->ssa_var].type)) { in zend_jit_trace()
4257 SET_STACK_REG(stack, phi->var, ival->reg); in zend_jit_trace()
4260 phi = phi->next; in zend_jit_trace()
6873 zend_ssa_phi *phi = ssa->blocks[1].phis; in zend_jit_trace() local
6875 while (phi) { in zend_jit_trace()
6876 if (ra[phi->ssa_var] in zend_jit_trace()
6877 && ra[phi->sources[1]] in zend_jit_trace()
6878 && STACK_MEM_TYPE(stack, phi->var) != STACK_TYPE(stack, phi->var) in zend_jit_trace()
6879 && (ra[phi->ssa_var]->flags & (ZREG_LOAD|ZREG_STORE)) == 0 in zend_jit_trace()
6880 && (ra[phi->sources[1]]->flags & (ZREG_LOAD|ZREG_STORE)) == 0) { in zend_jit_trace()
6883 zend_jit_store_var_type(&dasm_state, phi->var, STACK_TYPE(stack, phi->var)); in zend_jit_trace()
6885 phi = phi->next; in zend_jit_trace()