LLVM: lib/Target/AMDGPU/SIPeepholeSDWA.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "si-peephole-sdwa" |
| Functions | |
|---|---|
| STATISTIC (NumSDWAPatternsFound, "Number of SDWA patterns found.") | |
| STATISTIC (NumSDWAInstructionsPeepholed, "Number of instruction converted to SDWA.") | |
| static raw_ostream & | operator<< (raw_ostream &OS, SdwaSel Sel) |
| static raw_ostream & | operator<< (raw_ostream &OS, const DstUnused &Un) |
| static void | copyRegOperand (MachineOperand &To, const MachineOperand &From) |
| static bool | isSameReg (const MachineOperand &LHS, const MachineOperand &RHS) |
| static MachineOperand * | findSingleRegUse (const MachineOperand *Reg, const MachineRegisterInfo *MRI) |
| static MachineOperand * | findSingleRegDef (const MachineOperand *Reg, const MachineRegisterInfo *MRI) |
| static std::optional< SdwaSel > | combineSdwaSel (SdwaSel Sel, SdwaSel OperandSel) |
| Combine an SDWA instruction's existing SDWA selection Sel with the SDWA selection OperandSel of its operand. | |
| static bool | canCombineOpSel (const MachineInstr &MI, const SIInstrInfo *TII, AMDGPU::OpName SrcSelOpName, SdwaSel OpSel) |
| Verify that the SDWA selection operand SrcSelOpName of the SDWA instruction MI can be combined with the selection OpSel. | |
| static bool | canCombineOpSel (const MachineInstr &MI, const SIInstrInfo *TII, AMDGPU::OpName SrcOpName, AMDGPU::OpName SrcSelOpName, MachineOperand *Op, SdwaSel OpSel) |
| Verify that Op is the same register as the operand of the SDWA instruction MI named by SrcOpName and that the SDWA selection SrcSelOpName can be combined with the OpSel. | |
| static raw_ostream & | operator<< (raw_ostream &OS, const SDWAOperand &Operand) |
◆ DEBUG_TYPE
#define DEBUG_TYPE "si-peephole-sdwa"
◆ canCombineOpSel() [1/2]
◆ canCombineOpSel() [2/2]
◆ combineSdwaSel()
Combine an SDWA instruction's existing SDWA selection Sel with the SDWA selection OperandSel of its operand.
If the selections are compatible, return the combined selection, otherwise return a nullopt. For example, if we have Sel = BYTE_0 Sel and OperandSel = WORD_1: BYTE_0 Sel (WORD_1 Sel (X)) -> BYTE_2 Sel (X)
Definition at line 311 of file SIPeepholeSDWA.cpp.
Referenced by canCombineOpSel().
◆ copyRegOperand()
Definition at line 270 of file SIPeepholeSDWA.cpp.
References assert(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isKill(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), llvm::MachineOperand::setIsDead(), llvm::MachineOperand::setIsKill(), llvm::MachineOperand::setIsUndef(), llvm::MachineOperand::setReg(), and llvm::MachineOperand::setSubReg().
◆ findSingleRegDef()
◆ findSingleRegUse()
◆ isSameReg()
◆ operator<<() [1/3]
◆ operator<<() [2/3]
◆ operator<<() [3/3]
◆ STATISTIC() [1/2]
| STATISTIC | ( | NumSDWAInstructionsPeepholed | , |
|---|---|---|---|
| "Number of instruction converted to SDWA." | ) |
◆ STATISTIC() [2/2]
| STATISTIC | ( | NumSDWAPatternsFound | , |
|---|---|---|---|
| "Number of SDWA patterns found." | ) |