diff options
author | Stepan Dyatkovskiy <stpworld@narod.ru> | 2012-06-23 10:58:58 +0000 |
---|---|---|
committer | Stepan Dyatkovskiy <stpworld@narod.ru> | 2012-06-23 10:58:58 +0000 |
commit | 8e00efeacec6aabafb703922b76dbf391b0a900d (patch) | |
tree | d9d1c5f8e29d87c4cb982aaa294ae4fe7648f31c /llvm/lib/Transforms/Utils | |
parent | 8c03ea79c470d815334c7ce3ac15617e7b5ffc8a (diff) | |
download | bcm5719-llvm-8e00efeacec6aabafb703922b76dbf391b0a900d.tar.gz bcm5719-llvm-8e00efeacec6aabafb703922b76dbf391b0a900d.zip |
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).
llvm-svn: 159076
Diffstat (limited to 'llvm/lib/Transforms/Utils')
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 8e5927470d5..ed8bfb5b80f 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/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; |