summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-06-15 20:07:26 +0000
committerAndrew Trick <atrick@apple.com>2012-06-15 20:07:26 +0000
commitaca8fb3c459d2b79798b5a68b170bc0cfc88bde7 (patch)
tree6b4b3ee1869a8daa35114b0f7bb6cc3f63caf51d /llvm/lib/Transforms
parent4fd966347ae3c2cd7976834308bdd5f98f54fe8b (diff)
downloadbcm5719-llvm-aca8fb3c459d2b79798b5a68b170bc0cfc88bde7.tar.gz
bcm5719-llvm-aca8fb3c459d2b79798b5a68b170bc0cfc88bde7.zip
LSR fix: "Special" users are just like "Basic" users but allow -1 scale.
llvm-svn: 158536
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index 94c229a8e24..963811ee279 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -1308,8 +1308,8 @@ static bool isLegalUse(const TargetLowering::AddrMode &AM,
return !AM.BaseGV && AM.Scale == 0 && AM.BaseOffs == 0;
case LSRUse::Special:
- // Only handle -1 scales, or no scale.
- return AM.Scale == 0 || AM.Scale == -1;
+ // Special case Basic to handle -1 scales.
+ return !AM.BaseGV && (AM.Scale == 0 || AM.Scale == -1) && AM.BaseOffs == 0;
}
llvm_unreachable("Invalid LSRUse Kind!");
OpenPOWER on IntegriCloud