reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1984 if (Value *V = SimplifyPHINode(Phi)) { 1985 if (V->getType() != Phi->getType()) 1987 Phi->replaceAllUsesWith(V); 1988 DeadInsts.emplace_back(Phi); 1991 << "INDVARS: Eliminated constant iv: " << *Phi << '\n'); 1995 if (!SE.isSCEVable(Phi->getType())) 1998 PHINode *&OrigPhiRef = ExprToIVMap[SE.getSCEV(Phi)]; 2000 OrigPhiRef = Phi; 2001 if (Phi->getType()->isIntegerTy() && TTI && 2002 TTI->isTruncateFree(Phi->getType(), Phis.back()->getType())) { 2006 SE.getTruncateExpr(SE.getSCEV(Phi), Phis.back()->getType()); 2007 ExprToIVMap[TruncExpr] = Phi; 2014 if (OrigPhiRef->getType()->isPointerTy() != Phi->getType()->isPointerTy()) 2021 dyn_cast<Instruction>(Phi->getIncomingValueForBlock(LatchBlock)); 2027 if (OrigPhiRef->getType() == Phi->getType() && 2028 !(ChainedPhis.count(Phi) || 2030 (ChainedPhis.count(Phi) || 2031 isExpandedAddRecExprPHI(Phi, IsomorphicInc, L))) { 2032 std::swap(OrigPhiRef, Phi); 2070 << *Phi << '\n'); 2073 if (OrigPhiRef->getType() != Phi->getType()) { 2075 Builder.SetCurrentDebugLocation(Phi->getDebugLoc()); 2076 NewIV = Builder.CreateTruncOrBitCast(OrigPhiRef, Phi->getType(), IVName); 2078 Phi->replaceAllUsesWith(NewIV); 2079 DeadInsts.emplace_back(Phi);