LLVM 19.0.0git
Public Member Functions | List of all members
llvm::WebAssemblyInstrInfo Class Referencefinal

#include "Target/WebAssembly/WebAssemblyInstrInfo.h"

Inheritance diagram for llvm::WebAssemblyInstrInfo:
Inheritance graph

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, MCRegister DestReg, MCRegister SrcReg, bool KillSrc) 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 38 of file WebAssemblyInstrInfo.h.

Constructor & Destructor Documentation

◆ WebAssemblyInstrInfo()

WebAssemblyInstrInfo::WebAssemblyInstrInfo ( const WebAssemblySubtarget STI)

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

◆ commuteInstructionImpl()

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

◆ copyPhysReg()

void WebAssemblyInstrInfo::copyPhysReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI,
const DebugLoc DL,
MCRegister  DestReg,
MCRegister  SrcReg,
bool  KillSrc 
) const

◆ getCalleeOperand()

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

Definition at line 204 of file WebAssemblyInstrInfo.cpp.

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

◆ getRegisterInfo()

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

Definition at line 44 of file WebAssemblyInstrInfo.h.

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

◆ getSerializableTargetIndices()

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

◆ insertBranch()

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

◆ isExplicitTargetIndexDef()

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

◆ isReallyTriviallyReMaterializable()

bool WebAssemblyInstrInfo::isReallyTriviallyReMaterializable ( const MachineInstr MI) const

◆ removeBranch()

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

◆ reverseBranchCondition()

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

Definition at line 185 of file WebAssemblyInstrInfo.cpp.

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

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