LLVM 22.0.0git
AMDGPURegBankLegalizeCombiner Class Reference

Public Member Functions

 AMDGPURegBankLegalizeCombiner (MachineIRBuilder &B, const SIRegisterInfo &TRI, const RegisterBankInfo &RBI)
bool isLaneMask (Register Reg)
std::pair< MachineInstr *, RegistertryMatch (Register Src, unsigned Opcode)
Register tryMatchUnmergeDefs (SmallVectorImpl< Register > &DefRegs)
SmallVector< RegistertryMatchMergeReadAnyLane (GMergeLikeInstr *Merge)
SmallVector< RegistergetReadAnyLaneSrcs (Register Src)
void replaceRegWithOrBuildCopy (Register Dst, Register Src)
bool tryEliminateReadAnyLane (MachineInstr &Copy)
void tryCombineCopy (MachineInstr &MI)
void tryCombineS1AnyExt (MachineInstr &MI)

Detailed Description

Definition at line 108 of file AMDGPURegBankLegalize.cpp.

Constructor & Destructor Documentation

◆ AMDGPURegBankLegalizeCombiner()

AMDGPURegBankLegalizeCombiner::AMDGPURegBankLegalizeCombiner ( MachineIRBuilder & B,
const SIRegisterInfo & TRI,
const RegisterBankInfo & RBI )
inline

Definition at line 122 of file AMDGPURegBankLegalize.cpp.

Member Function Documentation

◆ getReadAnyLaneSrcs()

◆ isLaneMask()

bool AMDGPURegBankLegalizeCombiner::isLaneMask ( Register Reg)

Definition at line 141 of file AMDGPURegBankLegalize.cpp.

References llvm::RegisterBank::getID(), and llvm::LLT::scalar().

Referenced by tryCombineCopy().

◆ replaceRegWithOrBuildCopy()

void AMDGPURegBankLegalizeCombiner::replaceRegWithOrBuildCopy ( Register Dst,
Register Src )

Definition at line 251 of file AMDGPURegBankLegalize.cpp.

Referenced by tryEliminateReadAnyLane().

◆ tryCombineCopy()

void AMDGPURegBankLegalizeCombiner::tryCombineCopy ( MachineInstr & MI)

◆ tryCombineS1AnyExt()

void AMDGPURegBankLegalizeCombiner::tryCombineS1AnyExt ( MachineInstr & MI)

Definition at line 345 of file AMDGPURegBankLegalize.cpp.

References llvm::eraseInstr(), MI, and tryMatch().

◆ tryEliminateReadAnyLane()

◆ tryMatch()

std::pair< MachineInstr *, Register > AMDGPURegBankLegalizeCombiner::tryMatch ( Register Src,
unsigned Opcode )

◆ tryMatchMergeReadAnyLane()

SmallVector< Register > AMDGPURegBankLegalizeCombiner::tryMatchMergeReadAnyLane ( GMergeLikeInstr * Merge)

◆ tryMatchUnmergeDefs()

Register AMDGPURegBankLegalizeCombiner::tryMatchUnmergeDefs ( SmallVectorImpl< Register > & DefRegs)

The documentation for this class was generated from the following file: