[llvm-commits] CVS: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Chris Lattner
lattner at cs.uiuc.edu
Sun Mar 6 13:58:38 PST 2005
Changes in directory llvm/lib/Transforms/Scalar:
LoopStrengthReduce.cpp updated: 1.8 -> 1.9
---
Log message:
minor simplifications of the code.
---
Diffs of the changes: (+8 -9)
LoopStrengthReduce.cpp | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
Index: llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
diff -u llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.8 llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.9
--- llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:1.8 Sat Mar 5 16:45:40 2005
+++ llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp Sun Mar 6 15:58:22 2005
@@ -35,16 +35,15 @@
namespace {
Statistic<> NumReduced ("loop-reduce", "Number of GEPs strength reduced");
- class GEPCache
- {
+ class GEPCache {
public:
GEPCache() : CachedPHINode(0), Map() {}
- GEPCache* operator[](Value *v) {
+ GEPCache *get(Value *v) {
std::map<Value *, GEPCache>::iterator I = Map.find(v);
if (I == Map.end())
I = Map.insert(std::pair<Value *, GEPCache>(v, GEPCache())).first;
- return &(I->second);
+ return &I->second;
}
PHINode *CachedPHINode;
@@ -135,7 +134,7 @@
BasicBlock *Header = L->getHeader();
BasicBlock *Preheader = L->getLoopPreheader();
bool AllConstantOperands = true;
- Cache = (*Cache)[GEPI->getOperand(0)];
+ Cache = Cache->get(GEPI->getOperand(0));
for (unsigned op = 1, e = GEPI->getNumOperands(); op != e; ++op) {
Value *operand = GEPI->getOperand(op);
@@ -164,7 +163,7 @@
AllConstantOperands = false;
} else
return;
- Cache = (*Cache)[operand];
+ Cache = Cache->get(operand);
}
assert(indvar > 0 && "Indvar used by GEP not found in operand list");
@@ -179,8 +178,8 @@
// Don't reduce multiplies that the target can handle via addressing modes.
uint64_t sz = getAnalysis<TargetData>().getTypeSize(ty);
- for (unsigned i = 1; i <= MaxTargetAMSize; i *= 2)
- if (i == sz)
+ if (sz && (sz & (sz-1)) == 0) // Power of two?
+ if (sz <= (1ULL << (MaxTargetAMSize-1)))
return;
// If all operands of the GEP we are going to insert into the preheader
@@ -248,7 +247,7 @@
GEPI->getName() + ".lsr",
GEPI);
GEPI->replaceAllUsesWith(newGEP);
-}
+ }
// The old GEP is now dead.
DeadInsts.insert(GEPI);
More information about the llvm-commits
mailing list