Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Phi

61 // Return true if E is a variable that points to an incomplete Phi node.
63 if (const auto *Ph = dyn_cast<til::Phi>(E))
64 return Ph->status() == til::Phi::PH_Incomplete;
302 if (auto *Ph = dyn_cast<til::Phi>(E))
666 // Make a Phi node in the current block for the i^th variable in CurrentVarMap.
667 // If E != null, sets Phi[CurrentBlockInfo->ArgIndex] = E.
675 // We already have a Phi node in the current block,
676 // so just add the new variable to the Phi node.
677 til::Phi *Ph = dyn_cast<til::Phi>(CurrE);
678 assert(Ph && "Expecting Phi node.");
684 // Make a new phi node: phi(..., E)
685 // All phi args up to the current index are set to the current value.
686 til::Phi *Ph = new (Arena) til::Phi(Arena, NPreds);
696 Ph->setStatus(til::Phi::PH_Incomplete);
699 // Add Phi node to current block, and update CurrentLVarMap[i]
701 if (Ph->status() == til::Phi::PH_Incomplete)
709 // This will construct Phi nodes in the current basic block as necessary.
743 // This will create phi nodes for all variables in the variable map.
747 // we conservatively create Phi nodes for all variables. Unnecessary Phi
750 // An Phi node is unnecessary if it only refers to itself and one other
751 // variable, e.g. x = Phi(y, y, x) can be reduced to x = y.
768 // Update the phi nodes that were initially created for a back edge
770 // I.e., merge the current variable map into the phi nodes for Blk.
777 til::Phi *Ph = dyn_cast_or_null<til::Phi>(PE);
778 assert(Ph && "Expecting Phi Node.");
782 assert(E && "Couldn't find local variable for Phi node.");
921 if (Ph->status() == til::Phi::PH_Incomplete)