|
LLVM 24.0.0git
|
Helper class that determines the relationship between incoming values of a phi in the control flow graph to determine where an incoming value can simply be taken as a scalar lane mask as-is, and where it needs to be merged with another, previously defined lane mask. More...
Public Member Functions | |
| PhiIncomingAnalysis (MachinePostDominatorTree &PDT, const SIInstrInfo *TII) | |
| bool | isSource (MachineBasicBlock &MBB) const |
Returns whether MBB is a source in the induced subgraph of reachable blocks. | |
| ArrayRef< MachineBasicBlock * > | predecessors () const |
| void | analyze (MachineBasicBlock &DefBlock, ArrayRef< AMDGPU::Incoming > Incomings) |
Helper class that determines the relationship between incoming values of a phi in the control flow graph to determine where an incoming value can simply be taken as a scalar lane mask as-is, and where it needs to be merged with another, previously defined lane mask.
The approach is as follows:
TODO: We could use region analysis to quickly skip over SESE regions during the traversal.
Definition at line 111 of file SILowerI1Copies.cpp.
|
inline |
Definition at line 122 of file SILowerI1Copies.cpp.
|
inline |
Definition at line 133 of file SILowerI1Copies.cpp.
References llvm::append_range(), assert(), llvm::AMDGPU::Incoming::Block, llvm::is_contained(), and MBB.
Referenced by llvm::AMDGPU::PhiLoweringHelper::mergeIncomingLaneMasks().
|
inline |
Returns whether MBB is a source in the induced subgraph of reachable blocks.
Definition at line 127 of file SILowerI1Copies.cpp.
References MBB.
Referenced by llvm::AMDGPU::PhiLoweringHelper::mergeIncomingLaneMasks().
|
inline |
Definition at line 131 of file SILowerI1Copies.cpp.
Referenced by llvm::AMDGPU::PhiLoweringHelper::mergeIncomingLaneMasks().