mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 10:04:33 +00:00
[LAA] Default getInfo to not speculate symbolic strides. NFC
Soon we won't be passing Strides to getInfo and then we'll have fewer call sites to update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9ddfbe4c40
commit
08e6f75e04
@ -699,7 +699,8 @@ public:
|
||||
/// of symbolic strides, \p Strides provides the mapping (see
|
||||
/// replaceSymbolicStrideSCEV). If there is no cached result available run
|
||||
/// the analysis.
|
||||
const LoopAccessInfo &getInfo(Loop *L, const ValueToValueMap &Strides);
|
||||
const LoopAccessInfo &
|
||||
getInfo(Loop *L, const ValueToValueMap &Strides = ValueToValueMap());
|
||||
|
||||
void releaseMemory() override {
|
||||
// Invalidate the cache when the pass is freed.
|
||||
|
@ -1954,12 +1954,10 @@ LoopAccessAnalysis::getInfo(Loop *L, const ValueToValueMap &Strides) {
|
||||
void LoopAccessAnalysis::print(raw_ostream &OS, const Module *M) const {
|
||||
LoopAccessAnalysis &LAA = *const_cast<LoopAccessAnalysis *>(this);
|
||||
|
||||
ValueToValueMap NoSymbolicStrides;
|
||||
|
||||
for (Loop *TopLevelLoop : *LI)
|
||||
for (Loop *L : depth_first(TopLevelLoop)) {
|
||||
OS.indent(2) << L->getHeader()->getName() << ":\n";
|
||||
auto &LAI = LAA.getInfo(L, NoSymbolicStrides);
|
||||
auto &LAI = LAA.getInfo(L);
|
||||
LAI.print(OS, 4);
|
||||
}
|
||||
}
|
||||
|
@ -608,7 +608,7 @@ public:
|
||||
return fail("multiple exit blocks");
|
||||
|
||||
// LAA will check that we only have a single exiting block.
|
||||
LAI = &LAA->getInfo(L, ValueToValueMap());
|
||||
LAI = &LAA->getInfo(L);
|
||||
|
||||
// Currently, we only distribute to isolate the part of the loop with
|
||||
// dependence cycles to enable partial vectorization.
|
||||
|
@ -552,7 +552,7 @@ public:
|
||||
// Now walk the identified inner loops.
|
||||
bool Changed = false;
|
||||
for (Loop *L : Worklist) {
|
||||
const LoopAccessInfo &LAI = LAA->getInfo(L, ValueToValueMap());
|
||||
const LoopAccessInfo &LAI = LAA->getInfo(L);
|
||||
// The actual work is performed by LoadEliminationForLoop.
|
||||
LoadEliminationForLoop LEL(L, LI, LAI, DT);
|
||||
Changed |= LEL.processLoop();
|
||||
|
@ -277,7 +277,7 @@ public:
|
||||
// Now walk the identified inner loops.
|
||||
bool Changed = false;
|
||||
for (Loop *L : Worklist) {
|
||||
const LoopAccessInfo &LAI = LAA->getInfo(L, ValueToValueMap());
|
||||
const LoopAccessInfo &LAI = LAA->getInfo(L);
|
||||
if (LAI.getNumRuntimePointerChecks() ||
|
||||
!LAI.PSE.getUnionPredicate().isAlwaysTrue()) {
|
||||
LoopVersioning LVer(LAI, L, LI, DT, SE);
|
||||
|
Loading…
Reference in New Issue
Block a user