LLVM: llvm::WebAssemblyFunctionInfo Class Reference (original) (raw)

This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction. More...

#include "[Target/WebAssembly/WebAssemblyMachineFunctionInfo.h](WebAssemblyMachineFunctionInfo%5F8h%5Fsource.html)"

Public Member Functions
WebAssemblyFunctionInfo (const Function &F, const TargetSubtargetInfo *STI)
~WebAssemblyFunctionInfo () override
MachineFunctionInfo * clone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
void initializeBaseYamlFields (MachineFunction &MF, const yaml::WebAssemblyFunctionInfo &YamlMFI)
void addParam (MVT VT)
const std::vector< MVT > & getParams () const
void addResult (MVT VT)
const std::vector< MVT > & getResults () const
void clearParamsAndResults ()
void setNumLocals (size_t NumLocals)
void setLocal (size_t i, MVT VT)
void addLocal (MVT VT)
const std::vector< MVT > & getLocals () const
unsigned getVarargBufferVreg () const
void setVarargBufferVreg (unsigned Reg)
unsigned getBasePointerVreg () const
void setFrameBaseVreg (unsigned Reg)
unsigned getFrameBaseVreg () const
void clearFrameBaseVreg ()
bool isFrameBaseVirtual () const
void setFrameBaseLocal (unsigned Local)
unsigned getFrameBaseLocal () const
void setBasePointerVreg (unsigned Reg)
void stackifyVReg (MachineRegisterInfo &MRI, unsigned VReg)
void unstackifyVReg (unsigned VReg)
bool isVRegStackified (unsigned VReg) const
void initWARegs (MachineRegisterInfo &MRI)
void setWAReg (unsigned VReg, unsigned WAReg)
unsigned getWAReg (unsigned VReg) const
bool isCFGStackified () const
void setCFGStackified (bool Value=true)
- Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()
virtual MachineFunctionInfo * clone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Additional Inherited Members
- Static Public Member Functions inherited from llvm::MachineFunctionInfo
template<typename FuncInfoTy , typename SubtargetTy = TargetSubtargetInfo>
static FuncInfoTy * create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI)
Factory function: default behavior is to call new using the supplied allocator.
template
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)

This class is derived from MachineFunctionInfo and contains private WebAssembly-specific information for each MachineFunction.

Definition at line 34 of file WebAssemblyMachineFunctionInfo.h.

~WebAssemblyFunctionInfo()

WebAssemblyFunctionInfo::~WebAssemblyFunctionInfo ( ) overridedefault

addLocal()

void llvm::WebAssemblyFunctionInfo::addLocal ( MVT VT) inline

addParam()

void llvm::WebAssemblyFunctionInfo::addParam ( MVT VT) inline

addResult()

void llvm::WebAssemblyFunctionInfo::addResult ( MVT VT) inline

clearFrameBaseVreg()

void llvm::WebAssemblyFunctionInfo::clearFrameBaseVreg ( ) inline

clearParamsAndResults()

void llvm::WebAssemblyFunctionInfo::clearParamsAndResults ( ) inline

clone()

getBasePointerVreg()

unsigned llvm::WebAssemblyFunctionInfo::getBasePointerVreg ( ) const inline

getFrameBaseLocal()

unsigned llvm::WebAssemblyFunctionInfo::getFrameBaseLocal ( ) const inline

getFrameBaseVreg()

unsigned llvm::WebAssemblyFunctionInfo::getFrameBaseVreg ( ) const inline

getLocals()

const std::vector< MVT > & llvm::WebAssemblyFunctionInfo::getLocals ( ) const inline

getParams()

const std::vector< MVT > & llvm::WebAssemblyFunctionInfo::getParams ( ) const inline

getResults()

const std::vector< MVT > & llvm::WebAssemblyFunctionInfo::getResults ( ) const inline

getVarargBufferVreg()

unsigned llvm::WebAssemblyFunctionInfo::getVarargBufferVreg ( ) const inline

getWAReg()

initializeBaseYamlFields()

initWARegs()

isCFGStackified()

bool llvm::WebAssemblyFunctionInfo::isCFGStackified ( ) const inline

isFrameBaseVirtual()

bool llvm::WebAssemblyFunctionInfo::isFrameBaseVirtual ( ) const inline

isVRegStackified()

bool llvm::WebAssemblyFunctionInfo::isVRegStackified ( unsigned VReg) const inline

setBasePointerVreg()

void llvm::WebAssemblyFunctionInfo::setBasePointerVreg ( unsigned Reg) inline

setCFGStackified()

void llvm::WebAssemblyFunctionInfo::setCFGStackified ( bool Value = true) inline

setFrameBaseLocal()

void llvm::WebAssemblyFunctionInfo::setFrameBaseLocal ( unsigned Local) inline

setFrameBaseVreg()

void llvm::WebAssemblyFunctionInfo::setFrameBaseVreg ( unsigned Reg) inline

setLocal()

void llvm::WebAssemblyFunctionInfo::setLocal ( size_t i, MVT VT ) inline

setNumLocals()

void llvm::WebAssemblyFunctionInfo::setNumLocals ( size_t NumLocals) inline

setVarargBufferVreg()

void llvm::WebAssemblyFunctionInfo::setVarargBufferVreg ( unsigned Reg) inline

setWAReg()

void llvm::WebAssemblyFunctionInfo::setWAReg ( unsigned VReg, unsigned WAReg ) inline

stackifyVReg()

Definition at line 122 of file WebAssemblyMachineFunctionInfo.h.

References assert(), I, MRI, llvm::BitVector::resize(), llvm::BitVector::set(), llvm::BitVector::size(), and llvm::Register::virtReg2Index().

Referenced by maybeRewriteToDrop(), maybeRewriteToFallthrough(), moveAndTeeForMultiUse(), moveForSingleUse(), and rematerializeCheapDef().

unstackifyVReg()

void llvm::WebAssemblyFunctionInfo::unstackifyVReg ( unsigned VReg) inline

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