LLVM 22.0.0git
llvm::WebAssemblyInstrInfo Class Referencefinal

#include "Target/WebAssembly/WebAssemblyInstrInfo.h"

Inheritance diagram for llvm::WebAssemblyInstrInfo:
[legend]

Public Member Functions

 WebAssemblyInstrInfo (const WebAssemblySubtarget &STI)
const WebAssemblyRegisterInfogetRegisterInfo () const
bool isReallyTriviallyReMaterializable (const MachineInstr &MI) const override
void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL, Register DestReg, Register SrcReg, bool KillSrc, bool RenamableDest=false, bool RenamableSrc=false) const override
MachineInstrcommuteInstructionImpl (MachineInstr &MI, bool NewMI, unsigned OpIdx1, unsigned OpIdx2) const override
bool analyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const override
unsigned removeBranch (MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override
unsigned insertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, ArrayRef< MachineOperand > Cond, const DebugLoc &DL, int *BytesAdded=nullptr) const override
bool reverseBranchCondition (SmallVectorImpl< MachineOperand > &Cond) const override
ArrayRef< std::pair< int, const char * > > getSerializableTargetIndices () const override
const MachineOperandgetCalleeOperand (const MachineInstr &MI) const override
bool isExplicitTargetIndexDef (const MachineInstr &MI, int &Index, int64_t &Offset) const override

Detailed Description

Definition at line 32 of file WebAssemblyInstrInfo.h.

Constructor & Destructor Documentation

◆ WebAssemblyInstrInfo()

WebAssemblyInstrInfo::WebAssemblyInstrInfo ( const WebAssemblySubtarget & STI)
explicit

Definition at line 36 of file WebAssemblyInstrInfo.cpp.

Member Function Documentation

◆ analyzeBranch()

bool WebAssemblyInstrInfo::analyzeBranch ( MachineBasicBlock & MBB,
MachineBasicBlock *& TBB,
MachineBasicBlock *& FBB,
SmallVectorImpl< MachineOperand > & Cond,
bool AllowModify = false ) const
override

Definition at line 91 of file WebAssemblyInstrInfo.cpp.

References Cond, llvm::MachineOperand::CreateImm(), MBB, MI, and TBB.

◆ commuteInstructionImpl()

MachineInstr * WebAssemblyInstrInfo::commuteInstructionImpl ( MachineInstr & MI,
bool NewMI,
unsigned OpIdx1,
unsigned OpIdx2 ) const
override

◆ copyPhysReg()

void WebAssemblyInstrInfo::copyPhysReg ( MachineBasicBlock & MBB,
MachineBasicBlock::iterator MI,
const DebugLoc & DL,
Register DestReg,
Register SrcReg,
bool KillSrc,
bool RenamableDest = false,
bool RenamableSrc = false ) const
override

◆ getCalleeOperand()

const MachineOperand & WebAssemblyInstrInfo::getCalleeOperand ( const MachineInstr & MI) const
override

Definition at line 206 of file WebAssemblyInstrInfo.cpp.

References llvm::WebAssembly::getCalleeOp(), and MI.

◆ getRegisterInfo()

const WebAssemblyRegisterInfo & llvm::WebAssemblyInstrInfo::getRegisterInfo ( ) const
inline

Definition at line 38 of file WebAssemblyInstrInfo.h.

Referenced by llvm::WebAssemblySubtarget::getRegisterInfo().

◆ getSerializableTargetIndices()

ArrayRef< std::pair< int, const char * > > WebAssemblyInstrInfo::getSerializableTargetIndices ( ) const
override

◆ insertBranch()

unsigned WebAssemblyInstrInfo::insertBranch ( MachineBasicBlock & MBB,
MachineBasicBlock * TBB,
MachineBasicBlock * FBB,
ArrayRef< MachineOperand > Cond,
const DebugLoc & DL,
int * BytesAdded = nullptr ) const
override

◆ isExplicitTargetIndexDef()

bool WebAssemblyInstrInfo::isExplicitTargetIndexDef ( const MachineInstr & MI,
int & Index,
int64_t & Offset ) const
override

◆ isReallyTriviallyReMaterializable()

bool WebAssemblyInstrInfo::isReallyTriviallyReMaterializable ( const MachineInstr & MI) const
override

◆ removeBranch()

unsigned WebAssemblyInstrInfo::removeBranch ( MachineBasicBlock & MBB,
int * BytesRemoved = nullptr ) const
override

Definition at line 139 of file WebAssemblyInstrInfo.cpp.

References assert(), llvm::Count, I, and MBB.

◆ reverseBranchCondition()

bool WebAssemblyInstrInfo::reverseBranchCondition ( SmallVectorImpl< MachineOperand > & Cond) const
override

Definition at line 187 of file WebAssemblyInstrInfo.cpp.

References assert(), Cond, and llvm::MachineOperand::CreateImm().


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