1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00

Remove unused simplifyIVUsers

llvm-svn: 153262
This commit is contained in:
Andrew Trick 2012-03-22 17:47:30 +00:00
parent 30b133e1ae
commit 74bcc63b1b
2 changed files with 0 additions and 47 deletions

View File

@ -49,12 +49,6 @@ bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, LPPassManager *LPM,
bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, LPPassManager *LPM,
SmallVectorImpl<WeakVH> &Dead);
/// simplifyIVUsers - Simplify instructions recorded by the IVUsers pass.
/// This is a legacy implementation to reproduce the behavior of the
/// IndVarSimplify pass prior to DisableIVRewrite.
bool simplifyIVUsers(IVUsers *IU, ScalarEvolution *SE, LPPassManager *LPM,
SmallVectorImpl<WeakVH> &Dead);
} // namespace llvm
#endif

View File

@ -46,7 +46,6 @@ namespace {
LoopInfo *LI;
DominatorTree *DT;
ScalarEvolution *SE;
IVUsers *IU; // NULL for DisableIVRewrite
const TargetData *TD; // May be NULL
SmallVectorImpl<WeakVH> &DeadInsts;
@ -59,7 +58,6 @@ namespace {
L(Loop),
LI(LPM->getAnalysisIfAvailable<LoopInfo>()),
SE(SE),
IU(IVU),
TD(LPM->getAnalysisIfAvailable<TargetData>()),
DeadInsts(Dead),
Changed(false) {
@ -229,13 +227,6 @@ void SimplifyIndvar::eliminateIVRemainder(BinaryOperator *Rem,
Rem->replaceAllUsesWith(Sel);
}
// Inform IVUsers about the new users.
if (IU) {
if (Instruction *I = dyn_cast<Instruction>(Rem->getOperand(0))) {
SmallPtrSet<Loop*, 16> SimplifiedLoopNests;
IU->AddUsersIfInteresting(I, SimplifiedLoopNests);
}
}
DEBUG(dbgs() << "INDVARS: Simplified rem: " << *Rem << '\n');
++NumElimRem;
Changed = true;
@ -401,36 +392,4 @@ bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, LPPassManager *LPM,
return Changed;
}
/// simplifyIVUsers - Perform simplification on instructions recorded by the
/// IVUsers pass.
///
/// This is the old approach to IV simplification to be replaced by
/// SimplifyLoopIVs.
bool simplifyIVUsers(IVUsers *IU, ScalarEvolution *SE, LPPassManager *LPM,
SmallVectorImpl<WeakVH> &Dead) {
SimplifyIndvar SIV(IU->getLoop(), SE, LPM, Dead);
// Each round of simplification involves a round of eliminating operations
// followed by a round of widening IVs. A single IVUsers worklist is used
// across all rounds. The inner loop advances the user. If widening exposes
// more uses, then another pass through the outer loop is triggered.
for (IVUsers::iterator I = IU->begin(); I != IU->end(); ++I) {
Instruction *UseInst = I->getUser();
Value *IVOperand = I->getOperandValToReplace();
if (ICmpInst *ICmp = dyn_cast<ICmpInst>(UseInst)) {
SIV.eliminateIVComparison(ICmp, IVOperand);
continue;
}
if (BinaryOperator *Rem = dyn_cast<BinaryOperator>(UseInst)) {
bool IsSigned = Rem->getOpcode() == Instruction::SRem;
if (IsSigned || Rem->getOpcode() == Instruction::URem) {
SIV.eliminateIVRemainder(Rem, IVOperand, IsSigned);
continue;
}
}
}
return SIV.hasChanged();
}
} // namespace llvm