diff options
author | Stepan Dyatkovskiy <stpworld@narod.ru> | 2012-06-22 14:53:30 +0000 |
---|---|---|
committer | Stepan Dyatkovskiy <stpworld@narod.ru> | 2012-06-22 14:53:30 +0000 |
commit | a6c8cc307b0fdc7a975e03f1272afccb1f2440ae (patch) | |
tree | 1e99bcc7a9a6ccb312b8f6714c39fd5e1acfff8a /llvm/lib/Transforms/Utils/CodeExtractor.cpp | |
parent | c3b81119a7ac9e3c44ae4666b977d8e2c65c1c5a (diff) | |
download | bcm5719-llvm-a6c8cc307b0fdc7a975e03f1272afccb1f2440ae.tar.gz bcm5719-llvm-a6c8cc307b0fdc7a975e03f1272afccb1f2440ae.zip |
Fixed r158979.
Original message:
Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.
llvm-svn: 158997
Diffstat (limited to 'llvm/lib/Transforms/Utils/CodeExtractor.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/CodeExtractor.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/CodeExtractor.cpp b/llvm/lib/Transforms/Utils/CodeExtractor.cpp index f10dbbeef2d..c545cd68c98 100644 --- a/llvm/lib/Transforms/Utils/CodeExtractor.cpp +++ b/llvm/lib/Transforms/Utils/CodeExtractor.cpp @@ -664,7 +664,8 @@ emitCallAndSwitchStatement(Function *newFunction, BasicBlock *codeReplacer, TheSwitch->setCondition(call); TheSwitch->setDefaultDest(TheSwitch->getSuccessor(NumExitBlocks)); // Remove redundant case - TheSwitch->removeCase(SwitchInst::CaseIt(TheSwitch, NumExitBlocks-1)); + SwitchInst::CaseIt ToBeRemoved(TheSwitch, NumExitBlocks-1); + TheSwitch->removeCase(ToBeRemoved); break; } } |