Adjust loop size estimate for full unrolling;
authorDale Johannesen <dalej@apple.com>
Mon, 20 Apr 2009 22:19:33 +0000 (22:19 +0000)
committerDale Johannesen <dalej@apple.com>
Mon, 20 Apr 2009 22:19:33 +0000 (22:19 +0000)
GEP's don't usually become instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69631 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopUnroll.cpp

index 2025fb6828852b8e1bce77b938fb702652ab1bab..23757cdb2d29c3326bbe02fa3ebbdb7c6a34bbb3 100644 (file)
@@ -89,6 +89,8 @@ static unsigned ApproximateLoopSize(const Loop *L) {
         // Ignore instructions only used by the loop terminator.
       } else if (isa<DbgInfoIntrinsic>(I)) {
         // Ignore debug instructions
+      } else if (isa<GetElementPtrInst>(I) && I->hasOneUse()) {
+        // Ignore GEP as they generally are subsumed into a load or store.
       } else if (isa<CallInst>(I)) {
         // Estimate size overhead introduced by call instructions which
         // is higher than other instructions. Here 3 and 10 are magic