forked from OSchip/llvm-project
Preserve ScalarEvolution in the loop unroller.
llvm-svn: 109412
This commit is contained in:
parent
e8ecb4acf6
commit
a7908ae369
|
@ -24,6 +24,7 @@
|
|||
#include "llvm/ADT/Statistic.h"
|
||||
#include "llvm/Analysis/ConstantFolding.h"
|
||||
#include "llvm/Analysis/LoopPass.h"
|
||||
#include "llvm/Analysis/ScalarEvolution.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||
|
@ -127,6 +128,11 @@ bool llvm::UnrollLoop(Loop *L, unsigned Count, LoopInfo* LI, LPPassManager* LPM)
|
|||
return false;
|
||||
}
|
||||
|
||||
// Notify ScalarEvolution that the loop will be substantially changed,
|
||||
// if not outright eliminated.
|
||||
if (ScalarEvolution *SE = LPM->getAnalysisIfAvailable<ScalarEvolution>())
|
||||
SE->forgetLoop(L);
|
||||
|
||||
// Find trip count
|
||||
unsigned TripCount = L->getSmallConstantTripCount();
|
||||
// Find trip multiple if count is not available
|
||||
|
|
Loading…
Reference in New Issue