[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