LLVM 23.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 32 of file WebAssemblyMachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ WebAssemblyFunctionInfo()

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

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

◆ addResult()

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

◆ clearFrameBaseVreg()

void llvm::WebAssemblyFunctionInfo::clearFrameBaseVreg ( )
inline

Definition at line 110 of file WebAssemblyMachineFunctionInfo.h.

◆ clearParamsAndResults()

void llvm::WebAssemblyFunctionInfo::clearParamsAndResults ( )
inline

Definition at line 85 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 26 of file WebAssemblyMachineFunctionInfo.cpp.

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

◆ getBasePointerVreg()

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

Definition at line 101 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()

◆ getResults()

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

◆ getVarargBufferVreg()

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

Definition at line 95 of file WebAssemblyMachineFunctionInfo.h.

References assert().

◆ getWAReg()

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

◆ initializeBaseYamlFields()

◆ initWARegs()

void WebAssemblyFunctionInfo::initWARegs ( MachineRegisterInfo & MRI)

◆ isCFGStackified()

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

Definition at line 152 of file WebAssemblyMachineFunctionInfo.h.

◆ isFrameBaseVirtual()

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

◆ isVRegStackified()

◆ setBasePointerVreg()

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

Definition at line 118 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

◆ setCFGStackified()

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

Definition at line 153 of file WebAssemblyMachineFunctionInfo.h.

◆ setFrameBaseLocal()

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

Definition at line 113 of file WebAssemblyMachineFunctionInfo.h.

References Local.

Referenced by checkFrameBase().

◆ setFrameBaseVreg()

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

Definition at line 105 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

◆ setLocal()

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

Definition at line 91 of file WebAssemblyMachineFunctionInfo.h.

◆ setNumLocals()

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

Definition at line 90 of file WebAssemblyMachineFunctionInfo.h.

◆ setVarargBufferVreg()

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

Definition at line 99 of file WebAssemblyMachineFunctionInfo.h.

References Reg.

Referenced by llvm::WebAssemblyCallLowering::lowerFormalArguments().

◆ setWAReg()

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

◆ stackifyVReg()

◆ unstackifyVReg()

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

Definition at line 127 of file WebAssemblyMachineFunctionInfo.h.

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


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