Use TargetData::getTypeSizeInBits instead of getPrimitiveSizeInBits()
authorDan Gohman <gohman@apple.com>
Thu, 16 Apr 2009 22:35:57 +0000 (22:35 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 16 Apr 2009 22:35:57 +0000 (22:35 +0000)
to get the correct answer for pointer types.

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

lib/Transforms/Scalar/LoopStrengthReduce.cpp

index 733f37c20743c96876cbe461a10729bda71e6f8e..3df0ab35942bc8dc035c4e1c52d3eb2c06e5ec46 100644 (file)
@@ -1868,14 +1868,14 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(const SCEVHandle &Stride,
         // it here.
         if (!ReuseIV.Base->isZero()) {
           SCEVHandle typedBase = ReuseIV.Base;
-          if (RewriteExpr->getType()->getPrimitiveSizeInBits() !=
-              ReuseIV.Base->getType()->getPrimitiveSizeInBits()) {
+          if (TD->getTypeSizeInBits(RewriteExpr->getType()) !=
+              TD->getTypeSizeInBits(ReuseIV.Base->getType())) {
             // It's possible the original IV is a larger type than the new IV,
             // in which case we have to truncate the Base.  We checked in
             // RequiresTypeConversion that this is valid.
-            assert (RewriteExpr->getType()->getPrimitiveSizeInBits() <
-                    ReuseIV.Base->getType()->getPrimitiveSizeInBits() &&
-                    "Unexpected lengthening conversion!");
+            assert(TD->getTypeSizeInBits(RewriteExpr->getType()) <
+                   TD->getTypeSizeInBits(ReuseIV.Base->getType()) &&
+                   "Unexpected lengthening conversion!");
             typedBase = SE->getTruncateExpr(ReuseIV.Base, 
                                             RewriteExpr->getType());
           }