diff options
Diffstat (limited to 'lib/Transforms/Utils/CodeExtractor.cpp')
-rw-r--r-- | lib/Transforms/Utils/CodeExtractor.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Transforms/Utils/CodeExtractor.cpp b/lib/Transforms/Utils/CodeExtractor.cpp index 38f3c8a4c6..530d2f66b7 100644 --- a/lib/Transforms/Utils/CodeExtractor.cpp +++ b/lib/Transforms/Utils/CodeExtractor.cpp @@ -566,8 +566,18 @@ Function *CodeExtractor::ExtractCodeRegion(const std::vector<BasicBlock*> &code) return newFunction; } +/// ExtractBasicBlock - slurp a natural loop into a brand new function +/// Function* llvm::ExtractLoop(Loop *L) { CodeExtractor CE; return CE.ExtractCodeRegion(L->getBlocks()); } +/// ExtractBasicBlock - slurp a basic block into a brand new function +/// +Function* llvm::ExtractBasicBlock(BasicBlock *BB) { + CodeExtractor CE; + std::vector<BasicBlock*> Blocks; + Blocks.push_back(BB); + return CE.ExtractCodeRegion(Blocks); +} |