LLVM 23.0.0git
llvm::HexagonMachineFunctionInfo Class Reference

Hexagon target-specific information for each MachineFunction. More...

#include "Target/Hexagon/HexagonMachineFunctionInfo.h"

Inheritance diagram for llvm::HexagonMachineFunctionInfo:
[legend]

Public Member Functions

 HexagonMachineFunctionInfo ()=default
 HexagonMachineFunctionInfo (const Function &F, const TargetSubtargetInfo *STI)
MachineFunctionInfoclone (BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
 Make a functionally equivalent copy of this MachineFunctionInfo in MF.
void initializeBaseYamlFields (const yaml::HexagonFunctionInfo &YamlMFI)
unsigned getSRetReturnReg () const
void setSRetReturnReg (unsigned Reg)
void setVarArgsFrameIndex (int v)
int getVarArgsFrameIndex ()
void setRegSavedAreaStartFrameIndex (int v)
int getRegSavedAreaStartFrameIndex ()
void setFirstNamedArgFrameIndex (int v)
int getFirstNamedArgFrameIndex ()
void setLastNamedArgFrameIndex (int v)
int getLastNamedArgFrameIndex ()
void setStartPacket (MachineInstr *MI)
void setEndPacket (MachineInstr *MI)
bool isStartPacket (const MachineInstr *MI) const
bool isEndPacket (const MachineInstr *MI) const
void setHasClobberLR (bool v)
bool hasClobberLR () const
bool hasEHReturn () const
void setHasEHReturn (bool H=true)
void setStackAlignBaseReg (Register R)
Register getStackAlignBaseReg () const
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

Hexagon target-specific information for each MachineFunction.

Definition at line 30 of file HexagonMachineFunctionInfo.h.

Constructor & Destructor Documentation

◆ HexagonMachineFunctionInfo() [1/2]

llvm::HexagonMachineFunctionInfo::HexagonMachineFunctionInfo ( )
default

Referenced by clone().

◆ HexagonMachineFunctionInfo() [2/2]

llvm::HexagonMachineFunctionInfo::HexagonMachineFunctionInfo ( const Function & F,
const TargetSubtargetInfo * STI )
inline

Definition at line 48 of file HexagonMachineFunctionInfo.h.

References F.

Member Function Documentation

◆ clone()

MachineFunctionInfo * HexagonMachineFunctionInfo::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 19 of file HexagonMachineFunctionInfo.cpp.

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

◆ getFirstNamedArgFrameIndex()

int llvm::HexagonMachineFunctionInfo::getFirstNamedArgFrameIndex ( )
inline

Definition at line 68 of file HexagonMachineFunctionInfo.h.

◆ getLastNamedArgFrameIndex()

int llvm::HexagonMachineFunctionInfo::getLastNamedArgFrameIndex ( )
inline

Definition at line 71 of file HexagonMachineFunctionInfo.h.

◆ getRegSavedAreaStartFrameIndex()

int llvm::HexagonMachineFunctionInfo::getRegSavedAreaStartFrameIndex ( )
inline

Definition at line 65 of file HexagonMachineFunctionInfo.h.

◆ getSRetReturnReg()

unsigned llvm::HexagonMachineFunctionInfo::getSRetReturnReg ( ) const
inline

Definition at line 58 of file HexagonMachineFunctionInfo.h.

◆ getStackAlignBaseReg()

Register llvm::HexagonMachineFunctionInfo::getStackAlignBaseReg ( ) const
inline

Definition at line 94 of file HexagonMachineFunctionInfo.h.

◆ getVarArgsFrameIndex()

int llvm::HexagonMachineFunctionInfo::getVarArgsFrameIndex ( )
inline

◆ hasClobberLR()

bool llvm::HexagonMachineFunctionInfo::hasClobberLR ( ) const
inline

Definition at line 88 of file HexagonMachineFunctionInfo.h.

◆ hasEHReturn()

bool llvm::HexagonMachineFunctionInfo::hasEHReturn ( ) const
inline

◆ initializeBaseYamlFields()

void HexagonMachineFunctionInfo::initializeBaseYamlFields ( const yaml::HexagonFunctionInfo & YamlMFI)

◆ isEndPacket()

bool llvm::HexagonMachineFunctionInfo::isEndPacket ( const MachineInstr * MI) const
inline

Definition at line 83 of file HexagonMachineFunctionInfo.h.

References llvm::Hexagon::EndPacket, and MI.

◆ isStartPacket()

bool llvm::HexagonMachineFunctionInfo::isStartPacket ( const MachineInstr * MI) const
inline

Definition at line 79 of file HexagonMachineFunctionInfo.h.

References MI, and llvm::Hexagon::StartPacket.

◆ setEndPacket()

void llvm::HexagonMachineFunctionInfo::setEndPacket ( MachineInstr * MI)
inline

Definition at line 76 of file HexagonMachineFunctionInfo.h.

References llvm::Hexagon::EndPacket, and MI.

◆ setFirstNamedArgFrameIndex()

void llvm::HexagonMachineFunctionInfo::setFirstNamedArgFrameIndex ( int v)
inline

◆ setHasClobberLR()

void llvm::HexagonMachineFunctionInfo::setHasClobberLR ( bool v)
inline

Definition at line 87 of file HexagonMachineFunctionInfo.h.

◆ setHasEHReturn()

void llvm::HexagonMachineFunctionInfo::setHasEHReturn ( bool H = true)
inline

Definition at line 91 of file HexagonMachineFunctionInfo.h.

References H.

Referenced by llvm::HexagonTargetLowering::LowerEH_RETURN().

◆ setLastNamedArgFrameIndex()

void llvm::HexagonMachineFunctionInfo::setLastNamedArgFrameIndex ( int v)
inline

Definition at line 70 of file HexagonMachineFunctionInfo.h.

◆ setRegSavedAreaStartFrameIndex()

void llvm::HexagonMachineFunctionInfo::setRegSavedAreaStartFrameIndex ( int v)
inline

Definition at line 64 of file HexagonMachineFunctionInfo.h.

◆ setSRetReturnReg()

void llvm::HexagonMachineFunctionInfo::setSRetReturnReg ( unsigned Reg)
inline

Definition at line 59 of file HexagonMachineFunctionInfo.h.

References Reg.

◆ setStackAlignBaseReg()

void llvm::HexagonMachineFunctionInfo::setStackAlignBaseReg ( Register R)
inline

◆ setStartPacket()

void llvm::HexagonMachineFunctionInfo::setStartPacket ( MachineInstr * MI)
inline

Definition at line 73 of file HexagonMachineFunctionInfo.h.

References MI, and llvm::Hexagon::StartPacket.

◆ setVarArgsFrameIndex()

void llvm::HexagonMachineFunctionInfo::setVarArgsFrameIndex ( int v)
inline

Definition at line 61 of file HexagonMachineFunctionInfo.h.


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