summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/LowerSwitch.cpp
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-03-23 12:48:54 +0000
committerNikita Popov <nikita.ppv@gmail.com>2019-03-23 12:48:54 +0000
commit0125e4484e263e513af266516f011a9d6dfd157f (patch)
treef0666266da367934c1821e6fa9038e7f4f3e4234 /llvm/lib/Transforms/Utils/LowerSwitch.cpp
parentf4f01f3cffde43af9539212158a5a9fd5a34ded5 (diff)
downloadbcm5719-llvm-0125e4484e263e513af266516f011a9d6dfd157f.tar.gz
bcm5719-llvm-0125e4484e263e513af266516f011a9d6dfd157f.zip
[LowerSwitch] Use ConstantRange::fromKnownBits(); NFC
Using an unsigned range to stay NFC, but a signed range would really be more useful here. llvm-svn: 356831
Diffstat (limited to 'llvm/lib/Transforms/Utils/LowerSwitch.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/LowerSwitch.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/Utils/LowerSwitch.cpp b/llvm/lib/Transforms/Utils/LowerSwitch.cpp
index 08db63ed8d6..3c973e7c142 100644
--- a/llvm/lib/Transforms/Utils/LowerSwitch.cpp
+++ b/llvm/lib/Transforms/Utils/LowerSwitch.cpp
@@ -436,14 +436,6 @@ unsigned LowerSwitch::Clusterify(CaseVector& Cases, SwitchInst *SI) {
return NumSimpleCases;
}
-static ConstantRange getConstantRangeFromKnownBits(const KnownBits &Known) {
- APInt Lower = Known.One;
- APInt Upper = ~Known.Zero + 1;
- if (Upper == Lower)
- return ConstantRange(Known.getBitWidth(), /*isFullSet=*/true);
- return ConstantRange(Lower, Upper);
-}
-
/// Replace the specified switch instruction with a sequence of chained if-then
/// insts in a balanced binary search.
void LowerSwitch::processSwitchInst(SwitchInst *SI,
@@ -501,7 +493,9 @@ void LowerSwitch::processSwitchInst(SwitchInst *SI,
// switch, while LowerSwitch only needs to call LVI once per switch.
const DataLayout &DL = F->getParent()->getDataLayout();
KnownBits Known = computeKnownBits(Val, DL, /*Depth=*/0, AC, SI);
- ConstantRange KnownBitsRange = getConstantRangeFromKnownBits(Known);
+ // TODO Shouldn't this create a signed range?
+ ConstantRange KnownBitsRange =
+ ConstantRange::fromKnownBits(Known, /*ForSigned=*/false);
const ConstantRange LVIRange = LVI->getConstantRange(Val, OrigBlock, SI);
ConstantRange ValRange = KnownBitsRange.intersectWith(LVIRange);
// We delegate removal of unreachable non-default cases to other passes. In
OpenPOWER on IntegriCloud