LLVM 20.0.0git
Public Member Functions | List of all members
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:
Inheritance graph
[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, 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 MachineFunctionInfoclone (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<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.

◆ ~WebAssemblyFunctionInfo()

WebAssemblyFunctionInfo::~WebAssemblyFunctionInfo ( )
overridedefault

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.

◆ addResult()

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

Definition at line 84 of file WebAssemblyMachineFunctionInfo.h.

References Results.

◆ 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.

References Results.

◆ 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().

◆ 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 ( unsigned  VReg) const
inline

◆ initializeBaseYamlFields()

void WebAssemblyFunctionInfo::initializeBaseYamlFields ( MachineFunction MF,
const yaml::WebAssemblyFunctionInfo YamlMFI 
)

◆ 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()

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

◆ 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 ( unsigned  VReg,
unsigned  WAReg 
)
inline

◆ stackifyVReg()

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

◆ unstackifyVReg()

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

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