Lines Matching defs:phi

51   Node *phi;
56 phi = new (C) PhiNode(region, type, NULL, iid, index, offset);
58 phi = PhiNode::make_blank(region, n);
69 // Alter data node to use pre-phi inputs
92 // therefore, the only top we can split thru a phi is on a backedge of
130 phi->set_req( i, x );
134 _igvn.remove_dead_node(phi);
139 register_new_node( phi, region );
141 for (uint i2 = 1; i2 < phi->req(); i2++) {
142 Node *x = phi->in(i2);
191 return phi;
261 // block-local inputs (all non-local-phi inputs come from earlier blocks)
268 Node *phi = n->in(i);
269 if( phi->is_Phi() && phi->in(0) == n_ctrl )
500 PhiNode* phi = out->as_Phi();
501 BasicType bt = phi->type()->basic_type();
518 const TypeOopPtr *tp = phi->type()->make_ptr()->isa_oopptr();
539 Node *inp = phi->in(j);
551 for (DUIterator_Fast kmax, k = phi->fast_outs(kmax); k < kmax; k++) {
552 Node* use = phi->fast_out(k);
595 PhiNode* phi = NULL;
599 phi = out->as_Phi();
603 if (phi == NULL) break;
610 Node *inp = phi->in(j);
621 Node *cmov = CMoveNode::make( C, cmov_ctrl, iff->in(1), phi->in(1+flip), phi->in(2-flip), _igvn.type(phi) );
623 _igvn.replace_node( phi, cmov );
655 // Attempt to use a conditional move instead of a phi/branch
700 // delay splitting through it's phi until a later loop optimization
712 Node *phi = split_thru_phi( n, n_blk, policy );
713 if (!phi) return n;
716 // Replace 'n' with the new phi
717 _igvn.replace_node( n, phi );
720 !phi->in(LoopNode::LoopBackControl)->is_Load())
723 return phi;
860 Node *phi = split_thru_phi( n, n_ctrl, policy );
861 if( !phi ) return;
864 // Replace 'n' with the new phi
865 _igvn.replace_node( n, phi );
867 // Now split the bool up thru the phi
1080 BoolNode *PhaseIdealLoop::clone_iff( PhiNode *phi, IdealLoopTree *loop ) {
1084 for( i = 1; i < phi->req(); i++ ) {
1085 Node *b = phi->in(i);
1087 _igvn.replace_input_of(phi, i, clone_iff( b->as_Phi(), loop ));
1093 Node *sample_bool = phi->in(1);
1097 PhiNode *phi1 = new (C) PhiNode( phi->in(0), Type::TOP );
1098 PhiNode *phi2 = new (C) PhiNode( phi->in(0), Type::TOP );
1099 for( i = 1; i < phi->req(); i++ ) {
1100 Node *n1 = phi->in(i)->in(1)->in(1);
1101 Node *n2 = phi->in(i)->in(1)->in(2);
1111 _igvn.remove_dead_node(phi1); // Remove new phi
1113 phi1 = (PhiNode*)hit1; // Use existing phi
1119 _igvn.remove_dead_node(phi2); // Remove new phi
1121 phi2 = (PhiNode*)hit2; // Use existing phi
1126 set_ctrl(phi1, phi->in(0));
1127 set_ctrl(phi2, phi->in(0));
1133 set_ctrl(cmp, phi->in(0));
1139 set_ctrl(b, phi->in(0));
1150 CmpNode *PhaseIdealLoop::clone_bool( PhiNode *phi, IdealLoopTree *loop ) {
1153 for( i = 1; i < phi->req(); i++ ) {
1154 Node *b = phi->in(i);
1156 _igvn.replace_input_of(phi, i, clone_bool( b->as_Phi(), loop ));
1162 Node *sample_cmp = phi->in(1);
1165 PhiNode *phi1 = new (C) PhiNode( phi->in(0), Type::TOP );
1166 PhiNode *phi2 = new (C) PhiNode( phi->in(0), Type::TOP );
1167 for( uint j = 1; j < phi->req(); j++ ) {
1168 Node *cmp_top = phi->in(j); // Inputs are all Cmp or TOP
1186 _igvn.remove_dead_node(phi1); // Remove new phi
1188 phi1 = (PhiNode*)hit1; // Use existing phi
1194 _igvn.remove_dead_node(phi2); // Remove new phi
1196 phi2 = (PhiNode*)hit2; // Use existing phi
1201 set_ctrl(phi1, phi->in(0));
1202 set_ctrl(phi2, phi->in(0));
1208 set_ctrl(cmp, phi->in(0));
1440 Node *phi;
1443 phi = prev; // Just use existing control
1445 phi = PhiNode::make( prev, old );
1448 worklist.push(phi); // Onto worklist once for each 'old' input
1456 phi = prev; // Just use existing control
1459 phi = PhiNode::make( prev, old );
1460 phi->set_req( 1, nnn );
1465 Node *hit = _igvn.hash_find_insert(phi);
1467 _igvn.register_new_node_with_optimizer(phi); // Register new phi
1469 // Remove the new phi from the graph and use the hit
1470 _igvn.remove_dead_node(phi);
1471 phi = hit; // Use existing phi
1473 set_ctrl(phi, prev);
1476 _igvn.replace_input_of(use, idx, phi);
1511 Node *phi = b->in(1);
1512 assert( phi->is_Phi(), "" );
1513 CmpNode *cmp = clone_bool( (PhiNode*)phi, loop );
1532 // being a cycle involving an add and a phi,
1554 // (If (Bool (CmpX phi:(Phi ...(Optional-trunc(AddI phi add2))) )))
1555 Node* phi = cmp1;
1556 for (uint i = 1; i < phi->req(); i++) {
1557 Node* in = phi->in(i);
1560 if (add && add->in(1) == phi) {
1571 Node* phi = add->in(1);
1572 for (uint i = 1; i < phi->req(); i++) {
1573 if (phi->in(i) == addtrunc) {
1914 // Has use internal to the vector set (ie. not in a phi at the loop head)
1955 // Use in a phi is considered a use in the associated predecessor block
2019 // Insert phi(lp_entry_val, back_edge_val) at use->in(idx) for loop lp if phi does not already exist
2021 Node *phi = PhiNode::make(lp, back_edge_val);
2022 phi->set_req(LoopNode::EntryControl, lp_entry_val);
2023 // Use existing phi if it already exists
2024 Node *hit = _igvn.hash_find_insert(phi);
2026 _igvn.register_new_node_with_optimizer(phi);
2027 set_ctrl(phi, lp);
2029 // Remove the new phi from the graph and use the hit
2030 _igvn.remove_dead_node(phi);
2031 phi = hit;
2033 _igvn.replace_input_of(use, idx, phi);
2152 // exit control and associated phi nodes for values
2584 // Add phi if "def" node is in peel set and "use" is not
2604 // or "use" is in the entry boundary (a phi) of the peel set
2726 Node *phi = cl->phi();
2736 for (DUIterator_Fast imax, i = phi->fast_outs(imax); i < imax; i++) {
2737 Node* use = phi->fast_out(i); // User of trip-counter
2743 if (use->in(j) == phi)
2763 if (use->in(j) == phi)