LLVM 22.0.0git
llvm::WebAssemblyFunctionInfo Class Referencefinal

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

#include "Target/WebAssembly/WebAssemblyMachineFunctionInfo.h"

Inheritance diagram for llvm::WebAssemblyFunctionInfo:
[legend]

Public Member Functions

 WebAssemblyFunctionInfo (const Function &F, const TargetSubtargetInfo *STI)
 ~WebAssemblyFunctionInfo () override
MachineFunctionInfoclone (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, Register VReg)
void unstackifyVReg (Register VReg)
bool isVRegStackified (Register VReg) const
void initWARegs (MachineRegisterInfo &MRI)
void setWAReg (Register VReg, unsigned WAReg)
unsigned getWAReg (Register VReg) const
bool isCFGStackified () const
void setCFGStackified (bool Value=true)
Public Member Functions inherited from llvm::MachineFunctionInfo
virtual ~MachineFunctionInfo ()

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<typename Ty>
static Ty * create (BumpPtrAllocator &Allocator, const Ty &MFI)

Detailed Description

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

Definition at line 34 of file WebAssemblyMachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ WebAssemblyFunctionInfo()

llvm::WebAssemblyFunctionInfo::WebAssemblyFunctionInfo ( const Function & F,
const TargetSubtargetInfo * STI )
inlineexplicit

Definition at line 69 of file WebAssemblyMachineFunctionInfo.h.

References F.

Referenced by clone().

◆ ~WebAssemblyFunctionInfo()

WebAssemblyFunctionInfo::~WebAssemblyFunctionInfo ( )
overridedefault

References Allocator.

Member Function Documentation

◆ addLocal()

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

◆ addParam()

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

Definition at line 81 of file WebAssemblyMachineFunctionInfo.h.

Referenced by initializeBaseYamlFields().

◆ addResult()

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

Definition at line 84 of file WebAssemblyMachineFunctionInfo.h.

Referenced by initializeBaseYamlFields().

◆ clearFrameBaseVreg()

void llvm::WebAssemblyFunctionInfo::clearFrameBaseVreg ( )
inline

Definition at line 112 of file WebAssemblyMachineFunctionInfo.h.

◆ clearParamsAndResults()

void llvm::WebAssemblyFunctionInfo::clearParamsAndResults ( )
inline

Definition at line 87 of file WebAssemblyMachineFunctionInfo.h.

◆ clone()

MachineFunctionInfo * WebAssemblyFunctionInfo::clone ( BumpPtrAllocator & Allocator,
MachineFunction & DestMF,
const DenseMap< MachineBasicBlock *, MachineBasicBlock * > & Src2DstMBB ) const
overridevirtual

Make a functionally equivalent copy of this MachineFunctionInfo in MF.

This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.

Reimplemented from llvm::MachineFunctionInfo.

Definition at line 27 of file WebAssemblyMachineFunctionInfo.cpp.

References llvm::MachineFunction::cloneInfo(), and WebAssemblyFunctionInfo().

◆ getBasePointerVreg()

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

Definition at line 103 of file WebAssemblyMachineFunctionInfo.h.

References assert().

◆ 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

Definition at line 97 of file WebAssemblyMachineFunctionInfo.h.

References assert().

◆ getWAReg()

unsigned llvm::WebAssemblyFunctionInfo::getWAReg ( Register VReg) const
inline

◆ initializeBaseYamlFields()

◆ initWARegs()

void WebAssemblyFunctionInfo::initWARegs ( MachineRegisterInfo & MRI)

Definition at line 36 of file WebAssemblyMachineFunctionInfo.cpp.

References assert(), MRI, and llvm::WebAssembly::UnusedReg.

◆ isCFGStackified()

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

Definition at line 154 of file WebAssemblyMachineFunctionInfo.h.

◆ isFrameBaseVirtual()

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

◆ isVRegStackified()

◆ setBasePointerVreg()

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

Definition at line 120 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

◆ setCFGStackified()

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

Definition at line 155 of file WebAssemblyMachineFunctionInfo.h.

◆ setFrameBaseLocal()

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

Definition at line 115 of file WebAssemblyMachineFunctionInfo.h.

References Local.

Referenced by checkFrameBase().

◆ setFrameBaseVreg()

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

Definition at line 107 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

◆ setLocal()

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

Definition at line 93 of file WebAssemblyMachineFunctionInfo.h.

◆ setNumLocals()

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

Definition at line 92 of file WebAssemblyMachineFunctionInfo.h.

◆ setVarargBufferVreg()

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

Definition at line 101 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

◆ setWAReg()

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

◆ stackifyVReg()

void llvm::WebAssemblyFunctionInfo::stackifyVReg ( MachineRegisterInfo & MRI,
Register VReg )
inline

◆ unstackifyVReg()

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

Definition at line 129 of file WebAssemblyMachineFunctionInfo.h.

References I, and llvm::Register::virtRegIndex().


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