|
LLVM 24.0.0git
|
#include "Target/AMDGPU/SILowerI1Copies.h"
Protected Attributes | |
| bool | IsWave32 = false |
| MachineFunction & | MF |
| MachineDominatorTree & | DT |
| MachinePostDominatorTree & | PDT |
| MachineRegisterInfo * | MRI = nullptr |
| const GCNSubtarget * | ST = nullptr |
| const SIInstrInfo * | TII = nullptr |
| MachineRegisterInfo::VRegAttrs | LaneMaskRegAttrs |
| const AMDGPU::LaneMaskConstants * | LMC = nullptr |
| DenseSet< Register > | PhiRegisters |
Definition at line 42 of file SILowerI1Copies.h.
| AMDGPU::PhiLoweringHelper::PhiLoweringHelper | ( | MachineFunction & | MF, |
| MachineDominatorTree & | DT, | ||
| MachinePostDominatorTree & | PDT ) |
Definition at line 448 of file SILowerI1Copies.cpp.
|
virtualdefault |
|
pure virtual |
References DL, llvm::AMDGPU::I, and MBB.
Referenced by mergeIncomingLaneMasks().
|
pure virtual |
References MI.
Referenced by lowerPhis().
|
pure virtual |
Referenced by mergeIncomingLaneMasks().
|
pure virtual |
Referenced by lowerPhis().
| MachineBasicBlock::iterator AMDGPU::PhiLoweringHelper::getSaluInsertionAtEnd | ( | MachineBasicBlock & | MBB | ) | const |
Return a point at the end of the given MBB to insert SALU instructions for lane mask calculation.
Take terminators and SCC into account.
Definition at line 714 of file SILowerI1Copies.cpp.
References llvm::AMDGPU::E, llvm::AMDGPU::I, instrDefsUsesSCC(), llvm_unreachable, and MBB.
Referenced by mergeIncomingLaneMasks().
|
inline |
Definition at line 83 of file SILowerI1Copies.h.
References LaneMaskRegAttrs.
|
inline |
Definition at line 78 of file SILowerI1Copies.h.
References LaneMaskRegAttrs, and MRI.
Referenced by lowerPhis().
Definition at line 660 of file SILowerI1Copies.cpp.
References llvm::AMDGPU::Imm, isLaneMaskReg(), LMC, MI, and MRI.
Definition at line 87 of file SILowerI1Copies.h.
References MRI, Reg, ST, and TII.
Referenced by isConstantLaneMask().
| bool AMDGPU::PhiLoweringHelper::lowerPhis | ( | ) |
Definition at line 542 of file SILowerI1Copies.cpp.
References llvm::SmallVectorImpl< T >::clear(), collectIncomingValuesFromPhi(), llvm::dbgs(), DT, llvm::SmallVectorTemplateCommon< T, typename >::empty(), getCandidatesForLowering(), initializeLaneMaskRegisterAttributes(), LLVM_DEBUG, markAsLaneMask(), MBB, mergeIncomingLaneMasks(), MF, MI, PDT, PhiRegisters, replaceDstReg(), and TII.
|
pure virtual |
Referenced by lowerPhis().
| void AMDGPU::PhiLoweringHelper::mergeIncomingLaneMasks | ( | Register | DstReg, |
| MachineBasicBlock & | MBB, | ||
| SmallVectorImpl< Incoming > & | Incomings, | ||
| MachineIDFSSAUpdater & | SSAUpdater, | ||
| LoopFinder & | LF, | ||
| PhiIncomingAnalysis & | PIA ) |
Merge the Incomings lane masks into DstReg, the value owned by MBB.
Builds the per-predecessor merges and leaves SSAUpdater calculated so the caller can query the merged value with getValueInMiddleOfBlock. Incomings is sorted and its UpdatedReg fields are filled in.
Definition at line 458 of file SILowerI1Copies.cpp.
References llvm::AMDGPU::LoopFinder::addLoopEntries(), llvm::AMDGPU::PhiIncomingAnalysis::analyze(), llvm::AMDGPU::Incoming::Block, buildMergeLaneMasks(), constrainAsLaneMask(), llvm::AMDGPU::createLaneMaskReg(), DT, llvm::AMDGPU::LoopFinder::findLoop(), getSaluInsertionAtEnd(), llvm::AMDGPU::LoopFinder::initialize(), insertUndefLaneMask(), llvm::AMDGPU::PhiIncomingAnalysis::isSource(), llvm::Register::isValid(), LaneMaskRegAttrs, MBB, MRI, PDT, llvm::AMDGPU::PhiIncomingAnalysis::predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AMDGPU::Incoming::Reg, llvm::sort(), and llvm::AMDGPU::Incoming::UpdatedReg.
Referenced by lowerPhis().
|
pure virtual |
References MBB.
Referenced by lowerPhis().
|
protected |
Definition at line 51 of file SILowerI1Copies.h.
Referenced by lowerPhis(), mergeIncomingLaneMasks(), and PhiLoweringHelper().
|
protected |
Definition at line 49 of file SILowerI1Copies.h.
|
protected |
Definition at line 56 of file SILowerI1Copies.h.
Referenced by initializeLaneMaskRegisterAttributes(), initializeLaneMaskRegisterAttributes(), and mergeIncomingLaneMasks().
|
protected |
Definition at line 57 of file SILowerI1Copies.h.
Referenced by isConstantLaneMask(), and PhiLoweringHelper().
|
protected |
Definition at line 50 of file SILowerI1Copies.h.
Referenced by lowerPhis(), and PhiLoweringHelper().
|
protected |
Definition at line 53 of file SILowerI1Copies.h.
Referenced by initializeLaneMaskRegisterAttributes(), isConstantLaneMask(), isLaneMaskReg(), mergeIncomingLaneMasks(), and PhiLoweringHelper().
|
protected |
Definition at line 52 of file SILowerI1Copies.h.
Referenced by lowerPhis(), mergeIncomingLaneMasks(), and PhiLoweringHelper().
Definition at line 60 of file SILowerI1Copies.h.
Referenced by lowerPhis().
|
protected |
Definition at line 54 of file SILowerI1Copies.h.
Referenced by isLaneMaskReg(), and PhiLoweringHelper().
|
protected |
Definition at line 55 of file SILowerI1Copies.h.
Referenced by isLaneMaskReg(), lowerPhis(), and PhiLoweringHelper().