ΒΆ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.