ΒΆvoid createSwitchStatement(
llvm::Module& M,
OutlinableGroup& OG,
DenseMap<llvm::Value*, llvm::BasicBlock*>&
EndBBs,
std::vector<DenseMap<Value*, BasicBlock*>>&
OutputStoreBBs)
void createSwitchStatement(
llvm::Module& M,
OutlinableGroup& OG,
DenseMap<llvm::Value*, llvm::BasicBlock*>&
EndBBs,
std::vector<DenseMap<Value*, BasicBlock*>>&
OutputStoreBBs)
Description
Create the switch statement for outlined function to differentiate between all the output blocks. For the outlined section, determine if an outlined block already exists that matches the needed stores for the extracted section.
Declared at: llvm/lib/Transforms/IPO/IROutliner.cpp:2145
Parameters
- llvm::Module& M
- - The module we are outlining from.
- OutlinableGroup& OG
- - The group of regions to be outlined.
- DenseMap<llvm::Value*, llvm::BasicBlock*>& EndBBs
- - The final blocks of the extracted function.
- std::vector<DenseMap<Value*, BasicBlock*>>& OutputStoreBBs
- - The existing output blocks.