ΒΆllvm::Loop* cloneLoopWithPreheader(
llvm::BasicBlock* Before,
llvm::BasicBlock* LoopDomBB,
llvm::Loop* OrigLoop,
llvm::ValueToValueMapTy& VMap,
const llvm::Twine& NameSuffix,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
SmallVectorImpl<llvm::BasicBlock*>& Blocks)
llvm::Loop* cloneLoopWithPreheader(
llvm::BasicBlock* Before,
llvm::BasicBlock* LoopDomBB,
llvm::Loop* OrigLoop,
llvm::ValueToValueMapTy& VMap,
const llvm::Twine& NameSuffix,
llvm::LoopInfo* LI,
llvm::DominatorTree* DT,
SmallVectorImpl<llvm::BasicBlock*>& Blocks)
Description
Clones a loop \p OrigLoop. Returns the loop and the blocks in \p Blocks. Updates LoopInfo and DominatorTree assuming the loop is dominated by block\p LoopDomBB. Insert the new blocks before block specified in \p Before. Note: Only innermost loops are supported.
Declared at: llvm/include/llvm/Transforms/Utils/Cloning.h:246
Parameters
- llvm::BasicBlock* Before
- llvm::BasicBlock* LoopDomBB
- llvm::Loop* OrigLoop
- llvm::ValueToValueMapTy& VMap
- const llvm::Twine& NameSuffix
- llvm::LoopInfo* LI
- llvm::DominatorTree* DT
- SmallVectorImpl<llvm::BasicBlock*>& Blocks