Lines Matching defs:phi
223 // creating phi's to merge values. If bind is true and
233 // If this is last predecessor, then don't force phi creation
240 // reaching the label, or a phi that merges multiples values reaching
242 // a phi whose control input is the region node for the label.
247 // If the var went unused no need for a phi
251 // Only one unique value "m" is known to reach this label so a phi
258 // Record the phi/value used for this var in the label's cvstate
262 // a create a phi if one does not already exist.
267 // Record in the phi, the var's value from the current state
277 assert(!was_promoted_to_phi(n, reg), "n already promoted to phi on this region");
278 // Get a conservative type for the phi
448 PhiNode* phi;
450 // Is the phi for this slice one that we created for this join region or simply
453 phi = join_slice->as_Phi();
455 // create the phi with join_slice filling supplying memory for all of the
457 phi = PhiNode::make(join_region, join_slice, Type::MEMORY, mms.adr_type(C));
458 phi = (PhiNode*) delay_transform(phi);
459 // gvn().set_type(phi, Type::MEMORY);
462 // Now update the phi with the slice for the merging slice
463 phi->set_req(slot, merging_slice/* slow_path, slow_slice */);
464 // this updates join_m with the phi
465 mms.set_memory(phi);
472 PhiNode* phi;
474 phi = join_io->as_Phi();
476 phi = PhiNode::make(join_region, join_io, Type::ABIO);
477 phi = (PhiNode*) delay_transform(phi);
478 join->set_req(TypeFunc::I_O, phi);
480 phi->set_req(slot, merging_io);