summaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/Local.cpp
diff options
context:
space:
mode:
authorStepan Dyatkovskiy <stpworld@narod.ru>2012-06-23 10:58:58 +0000
committerStepan Dyatkovskiy <stpworld@narod.ru>2012-06-23 10:58:58 +0000
commit47cbc4e0ee6098b7be3c60108000a979f1809949 (patch)
tree8727701668364de2fc385a7a154567b55d578e48 /lib/Transforms/Utils/Local.cpp
parentfc76b8691e364f22abb50d5473afe42fbdf6ede2 (diff)
downloadllvm-47cbc4e0ee6098b7be3c60108000a979f1809949.tar.gz
llvm-47cbc4e0ee6098b7be3c60108000a979f1809949.tar.bz2
llvm-47cbc4e0ee6098b7be3c60108000a979f1809949.tar.xz
Optimized usage of new SwitchInst case values (IntegersSubset type) in Local.cpp, Execution.cpp and BitcodeWriter.cpp.
I got about 1% of compile-time improvement on my machines (Ubuntu 11.10 i386 and Ubuntu 12.04 x64). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159076 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/Local.cpp')
-rw-r--r--lib/Transforms/Utils/Local.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Transforms/Utils/Local.cpp b/lib/Transforms/Utils/Local.cpp
index 8e5927470d..ed8bfb5b80 100644
--- a/lib/Transforms/Utils/Local.cpp
+++ b/lib/Transforms/Utils/Local.cpp
@@ -169,11 +169,11 @@ bool llvm::ConstantFoldTerminator(BasicBlock *BB, bool DeleteDeadConditions) {
// Otherwise, we can fold this switch into a conditional branch
// instruction if it has only one non-default destination.
SwitchInst::CaseIt FirstCase = SI->case_begin();
- IntegersSubset CaseRanges = FirstCase.getCaseValueEx();
- if (CaseRanges.getNumItems() == 1 && CaseRanges.isSingleNumber(0)) {
+ IntegersSubset& Case = FirstCase.getCaseValueEx();
+ if (Case.isSingleNumber()) {
// FIXME: Currently work with ConstantInt based numbers.
Value *Cond = Builder.CreateICmpEQ(SI->getCondition(),
- CaseRanges.getItem(0).getLow().toConstantInt(),
+ Case.getSingleNumber(0).toConstantInt(),
"cond");
// Insert the new branch.
@@ -183,7 +183,6 @@ bool llvm::ConstantFoldTerminator(BasicBlock *BB, bool DeleteDeadConditions) {
// Delete the old switch.
SI->eraseFromParent();
return true;
-
}
}
return false;