mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
LSR: Minor cleanup after Daniel's patch.
Combine the Inserted an Done sets into a Visited set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220623 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
abb11dd303
commit
916ba45c62
@ -3116,14 +3116,13 @@ bool LSRInstance::InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F) {
|
||||
void
|
||||
LSRInstance::CollectLoopInvariantFixupsAndFormulae() {
|
||||
SmallVector<const SCEV *, 8> Worklist(RegUses.begin(), RegUses.end());
|
||||
SmallPtrSet<const SCEV *, 8> Inserted;
|
||||
SmallPtrSet<const SCEV *, 32> Done;
|
||||
SmallPtrSet<const SCEV *, 32> Visited;
|
||||
|
||||
while (!Worklist.empty()) {
|
||||
const SCEV *S = Worklist.pop_back_val();
|
||||
|
||||
// Don't process the same SCEV twice
|
||||
if (!Done.insert(S))
|
||||
if (!Visited.insert(S))
|
||||
continue;
|
||||
|
||||
if (const SCEVNAryExpr *N = dyn_cast<SCEVNAryExpr>(S))
|
||||
@ -3134,7 +3133,6 @@ LSRInstance::CollectLoopInvariantFixupsAndFormulae() {
|
||||
Worklist.push_back(D->getLHS());
|
||||
Worklist.push_back(D->getRHS());
|
||||
} else if (const SCEVUnknown *US = dyn_cast<SCEVUnknown>(S)) {
|
||||
if (!Inserted.insert(US)) continue;
|
||||
const Value *V = US->getValue();
|
||||
if (const Instruction *Inst = dyn_cast<Instruction>(V)) {
|
||||
// Look for instructions defined outside the loop.
|
||||
|
Loading…
x
Reference in New Issue
Block a user