reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Analysis/ScalarEvolutionExpander.cpp
 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);