diff options
author | Dan Gohman <gohman@apple.com> | 2009-05-01 17:07:43 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-05-01 17:07:43 +0000 |
commit | 9f2d671b154e2b48b097d813b64a2bf2a33c547a (patch) | |
tree | 7841b02eab23e5101c177ec882fd7c9f031ca0d1 /lib/Transforms/Scalar/LoopStrengthReduce.cpp | |
parent | 9032b78c987d08b9e1dd25b6ab94b305e717832e (diff) |
Make RequiresTypeConversion canonicalize the types before calling the
target hooks canLosslesslyBitCastTo and isTruncateFree. This allows
targets to avoid worrying about handling all combinations of integer
and pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70555 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Scalar/LoopStrengthReduce.cpp')
-rw-r--r-- | lib/Transforms/Scalar/LoopStrengthReduce.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 7ba7ce8d0e..29acfe8506 100644 --- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -1170,7 +1170,9 @@ bool LoopStrengthReduce::RequiresTypeConversion(const Type *Ty1, const Type *Ty2) { if (Ty1 == Ty2) return false; - if (SE->getEffectiveSCEVType(Ty1) == SE->getEffectiveSCEVType(Ty2)) + Ty1 = SE->getEffectiveSCEVType(Ty1); + Ty2 = SE->getEffectiveSCEVType(Ty2); + if (Ty1 == Ty2) return false; if (Ty1->canLosslesslyBitCastTo(Ty2)) return false; |