LLVM: lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "amdgpu-unify-divergent-exit-nodes" |
| Functions | |
|---|---|
| INITIALIZE_PASS_BEGIN (AMDGPUUnifyDivergentExitNodes, DEBUG_TYPE, "Unify divergent function exit nodes", false, false) INITIALIZE_PASS_END(AMDGPUUnifyDivergentExitNodes | |
| static bool | isUniformlyReached (const UniformityInfo &UA, BasicBlock &BB) |
| static BasicBlock * | createDummyReturnBlock (Function &F, SmallVector< BasicBlock *, 4 > &ReturningBlocks) |
| static void | handleNBranch (Function &F, BasicBlock *BB, Instruction *BI, BasicBlock *DummyReturnBB, std::vector< DominatorTree::UpdateType > &Updates) |
| Handle conditional branch instructions (-> 2 targets) and callbr instructions with N targets. |
◆ DEBUG_TYPE
#define DEBUG_TYPE "amdgpu-unify-divergent-exit-nodes"
◆ createDummyReturnBlock()
◆ handleNBranch()
Handle conditional branch instructions (-> 2 targets) and callbr instructions with N targets.
Definition at line 198 of file AMDGPUUnifyDivergentExitNodes.cpp.
References llvm::BranchInst::Create(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::Instruction::eraseFromParent(), F, llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getTrue(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::BasicBlock::splitBasicBlock(), llvm::Successor, and llvm::successors().
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN | ( | AMDGPUUnifyDivergentExitNodes | , |
|---|---|---|---|
| DEBUG_TYPE | , | ||
| "Unify divergent function exit nodes" | , | ||
| false | , | ||
| false | ) |