diff options
author | Dan Gohman <gohman@apple.com> | 2010-05-18 22:39:15 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-05-18 22:39:15 +0000 |
commit | d69d62833a66691e96ad2998450cf8c9f75a2e8c (patch) | |
tree | 5a2ba0f893437ee8f284b3b75b75a4feae18a939 /lib/Transforms/Scalar/LoopStrengthReduce.cpp | |
parent | 6458ff9230a53bb9c442559074fac2611fb70bbf (diff) |
Factor out the code for deleting a formula from an LSRUse into
a helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104079 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Scalar/LoopStrengthReduce.cpp')
-rw-r--r-- | lib/Transforms/Scalar/LoopStrengthReduce.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp index eaf8d945bb..eac1a023bb 100644 --- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -942,6 +942,7 @@ public: AllFixupsOutsideLoop(true) {} bool InsertFormula(const Formula &F); + void DeleteFormula(Formula &F); void check() const; @@ -979,6 +980,12 @@ bool LSRUse::InsertFormula(const Formula &F) { return true; } +/// DeleteFormula - Remove the given formula from this use's list. +void LSRUse::DeleteFormula(Formula &F) { + std::swap(F, Formulae.back()); + Formulae.pop_back(); +} + void LSRUse::print(raw_ostream &OS) const { OS << "LSR Use: Kind="; switch (Kind) { @@ -2631,8 +2638,7 @@ void LSRInstance::FilterOutUndesirableDedicatedRegisters() { #ifndef NDEBUG Changed = true; #endif - std::swap(F, LU.Formulae.back()); - LU.Formulae.pop_back(); + LU.DeleteFormula(F); --FIdx; --NumForms; continue; @@ -2728,8 +2734,7 @@ void LSRInstance::NarrowSearchSpaceUsingHeuristics() { Formula &F = LU.Formulae[i]; if (!F.referencesReg(Best)) { DEBUG(dbgs() << " Deleting "; F.print(dbgs()); dbgs() << '\n'); - std::swap(LU.Formulae.back(), F); - LU.Formulae.pop_back(); + LU.DeleteFormula(F); --e; --i; assert(e != 0 && "Use has no formulae left! Is Regs inconsistent?"); |