[llvm-branch-commits] [llvm-branch] r102193 - in /llvm/branches/Apple/Morbo: lib/Analysis/README.txt lib/Transforms/Scalar/LoopStrengthReduce.cpp test/CodeGen/X86/lsr-delayed-fold.ll

Dan Gohman gohman at apple.com
Fri Apr 23 11:23:19 PDT 2010


Author: djg
Date: Fri Apr 23 13:23:19 2010
New Revision: 102193

URL: http://llvm.org/viewvc/llvm-project?rev=102193&view=rev
Log:
$ svn merge -c 102157 https://djg@llvm.org/svn/llvm-project/llvm/trunk
--- Merging r102157 into '.':
A    test/CodeGen/X86/lsr-delayed-fold.ll
U    lib/Analysis/README.txt
U    lib/Transforms/Scalar/LoopStrengthReduce.cpp

Added:
    llvm/branches/Apple/Morbo/test/CodeGen/X86/lsr-delayed-fold.ll
      - copied unchanged from r102157, llvm/trunk/test/CodeGen/X86/lsr-delayed-fold.ll
Modified:
    llvm/branches/Apple/Morbo/lib/Analysis/README.txt
    llvm/branches/Apple/Morbo/lib/Transforms/Scalar/LoopStrengthReduce.cpp

Modified: llvm/branches/Apple/Morbo/lib/Analysis/README.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Morbo/lib/Analysis/README.txt?rev=102193&r1=102192&r2=102193&view=diff
==============================================================================
--- llvm/branches/Apple/Morbo/lib/Analysis/README.txt (original)
+++ llvm/branches/Apple/Morbo/lib/Analysis/README.txt Fri Apr 23 13:23:19 2010
@@ -16,3 +16,15 @@
 which is very inefficient when expanded into code.
 
 //===---------------------------------------------------------------------===//
+
+In test/CodeGen/X86/lsr-delayed-fold.ll,
+
+ScalarEvolution is forming this expression:
+
+((trunc i64 (-1 * %arg5) to i32) + (trunc i64 %arg5 to i32) + (-1 * (trunc i64 undef to i32)))
+
+This could be folded to
+
+(-1 * (trunc i64 undef to i32))
+
+//===---------------------------------------------------------------------===//

Modified: llvm/branches/Apple/Morbo/lib/Transforms/Scalar/LoopStrengthReduce.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Morbo/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=102193&r1=102192&r2=102193&view=diff
==============================================================================
--- llvm/branches/Apple/Morbo/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original)
+++ llvm/branches/Apple/Morbo/lib/Transforms/Scalar/LoopStrengthReduce.cpp Fri Apr 23 13:23:19 2010
@@ -2061,8 +2061,11 @@
                            LU.Kind, LU.AccessTy, TLI, SE))
         continue;
 
+      const SCEV *InnerSum = SE.getAddExpr(InnerAddOps);
+      if (InnerSum->isZero())
+        continue;
       Formula F = Base;
-      F.BaseRegs[i] = SE.getAddExpr(InnerAddOps);
+      F.BaseRegs[i] = InnerSum;
       F.BaseRegs.push_back(*J);
       if (InsertFormula(LU, LUIdx, F))
         // If that formula hadn't been seen before, recurse to find more like





More information about the llvm-branch-commits mailing list