Home | History | Annotate | Download | only in R600

Lines Matching refs:Phi

72   bool isElse(PHINode *Phi);
74 void eraseIfUnused(PHINode *Phi);
163 /// \brief Can the condition represented by this PHI node treated like
165 bool SIAnnotateControlFlow::isElse(PHINode *Phi) {
166 BasicBlock *IDom = DT->getNode(Phi->getParent())->getIDom()->getBlock();
167 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) {
168 if (Phi->getIncomingBlock(i) == IDom) {
170 if (Phi->getIncomingValue(i) != BoolTrue)
174 if (Phi->getIncomingValue(i) != BoolFalse)
182 // \brief Erase "Phi" if it is not used any more
183 void SIAnnotateControlFlow::eraseIfUnused(PHINode *Phi) {
184 if (!Phi->hasNUsesOrMore(1))
185 Phi->eraseFromParent();
204 if (PHINode *Phi = dyn_cast<PHINode>(Cond)) {
207 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) {
208 Value *Incoming = Phi->getIncomingValue(i);
212 Phi->setIncomingValue(i, BoolFalse);
216 BasicBlock *Parent = Phi->getParent();
219 for (unsigned i = 0, e = Phi->getNumIncomingValues(); i != e; ++i) {
221 Value *Incoming = Phi->getIncomingValue(i);
225 BasicBlock *From = Phi->getIncomingBlock(i);
244 eraseIfUnused(Phi);
311 PHINode *Phi = dyn_cast<PHINode>(Term->getCondition());
312 if (Phi && Phi->getParent() == *I && isElse(Phi)) {
314 eraseIfUnused(Phi);