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
[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, 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)
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

◆ 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,
MCRegister  DestReg,
MCRegister  SrcReg,
bool  KillSrc 
) const
override

◆ getCalleeOperand()

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

Definition at line 204 of file WebAssemblyInstrInfo.cpp.

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

◆ getRegisterInfo()

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

Definition at line 44 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

◆ reverseBranchCondition()

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

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: