mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-04 18:24:38 +00:00
Remove the use of dominators and AA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166167 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -28,7 +28,6 @@
|
|||||||
#include "llvm/Analysis/LoopPass.h"
|
#include "llvm/Analysis/LoopPass.h"
|
||||||
#include "llvm/Value.h"
|
#include "llvm/Value.h"
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/Analysis/Dominators.h"
|
|
||||||
#include "llvm/Analysis/Verifier.h"
|
#include "llvm/Analysis/Verifier.h"
|
||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/Type.h"
|
#include "llvm/Type.h"
|
||||||
@ -143,7 +142,6 @@ private:
|
|||||||
DenseMap<Value*, Value*> WidenMap;
|
DenseMap<Value*, Value*> WidenMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// Perform the vectorization legality check. This class does not look at the
|
/// Perform the vectorization legality check. This class does not look at the
|
||||||
/// profitability of vectorization, only the legality. At the moment the checks
|
/// profitability of vectorization, only the legality. At the moment the checks
|
||||||
/// are very simple and focus on single basic block loops with a constant
|
/// are very simple and focus on single basic block loops with a constant
|
||||||
@ -184,22 +182,18 @@ struct LoopVectorize : public LoopPass {
|
|||||||
initializeLoopVectorizePass(*PassRegistry::getPassRegistry());
|
initializeLoopVectorizePass(*PassRegistry::getPassRegistry());
|
||||||
}
|
}
|
||||||
|
|
||||||
AliasAnalysis *AA;
|
|
||||||
ScalarEvolution *SE;
|
ScalarEvolution *SE;
|
||||||
DataLayout *DL;
|
DataLayout *DL;
|
||||||
LoopInfo *LI;
|
LoopInfo *LI;
|
||||||
DominatorTree *DT;
|
|
||||||
|
|
||||||
virtual bool runOnLoop(Loop *L, LPPassManager &LPM) {
|
virtual bool runOnLoop(Loop *L, LPPassManager &LPM) {
|
||||||
// Only vectorize innermost loops.
|
// Only vectorize innermost loops.
|
||||||
if (!L->empty())
|
if (!L->empty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
AA = &getAnalysis<AliasAnalysis>();
|
|
||||||
SE = &getAnalysis<ScalarEvolution>();
|
SE = &getAnalysis<ScalarEvolution>();
|
||||||
DL = getAnalysisIfAvailable<DataLayout>();
|
DL = getAnalysisIfAvailable<DataLayout>();
|
||||||
LI = &getAnalysis<LoopInfo>();
|
LI = &getAnalysis<LoopInfo>();
|
||||||
DT = &getAnalysis<DominatorTree>();
|
|
||||||
|
|
||||||
DEBUG(dbgs() << "LV: Checking a loop in \"" <<
|
DEBUG(dbgs() << "LV: Checking a loop in \"" <<
|
||||||
L->getHeader()->getParent()->getName() << "\"\n");
|
L->getHeader()->getParent()->getName() << "\"\n");
|
||||||
@ -227,10 +221,8 @@ struct LoopVectorize : public LoopPass {
|
|||||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
|
||||||
LoopPass::getAnalysisUsage(AU);
|
LoopPass::getAnalysisUsage(AU);
|
||||||
AU.addRequiredID(LoopSimplifyID);
|
AU.addRequiredID(LoopSimplifyID);
|
||||||
AU.addRequired<AliasAnalysis>();
|
|
||||||
AU.addRequired<LoopInfo>();
|
AU.addRequired<LoopInfo>();
|
||||||
AU.addRequired<ScalarEvolution>();
|
AU.addRequired<ScalarEvolution>();
|
||||||
AU.addRequired<DominatorTree>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user