LLVM  8.0.1
Public Member Functions | List of all members
llvm::HexagonRegisterInfo Class Reference

#include "Target/Hexagon/HexagonRegisterInfo.h"

Inheritance diagram for llvm::HexagonRegisterInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::HexagonRegisterInfo:
Collaboration graph
[legend]

Public Member Functions

 HexagonRegisterInfo (unsigned HwMode)
 
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF) const override
 Code Generation virtual methods... More...
 
const uint32_tgetCallPreservedMask (const MachineFunction &MF, CallingConv::ID) const override
 
BitVector getReservedRegs (const MachineFunction &MF) const override
 
void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
 
bool requiresRegisterScavenging (const MachineFunction &MF) const override
 Returns true since we may need scavenging for a temporary register when generating hardware loop instructions. More...
 
bool requiresFrameIndexScavenging (const MachineFunction &MF) const override
 Returns true. More...
 
bool useFPForScavengingIndex (const MachineFunction &MF) const override
 Returns true if the frame pointer is valid. More...
 
bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const override
 
bool shouldCoalesce (MachineInstr *MI, const TargetRegisterClass *SrcRC, unsigned SubReg, const TargetRegisterClass *DstRC, unsigned DstSubReg, const TargetRegisterClass *NewRC, LiveIntervals &LIS) const override
 
unsigned getRARegister () const
 
unsigned getFrameRegister (const MachineFunction &MF) const override
 
unsigned getFrameRegister () const
 
unsigned getStackRegister () const
 
unsigned getHexagonSubRegIndex (const TargetRegisterClass &RC, unsigned GenIdx) const
 
const MCPhysReggetCallerSavedRegs (const MachineFunction *MF, const TargetRegisterClass *RC) const
 
unsigned getFirstCallerSavedNonParamReg () const
 
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const override
 
bool isEHReturnCalleeSaveReg (unsigned Reg) const
 

Detailed Description

Definition at line 30 of file HexagonRegisterInfo.h.

Constructor & Destructor Documentation

◆ HexagonRegisterInfo()

HexagonRegisterInfo::HexagonRegisterInfo ( unsigned  HwMode)

Definition at line 45 of file HexagonRegisterInfo.cpp.

Member Function Documentation

◆ eliminateFrameIndex()

void HexagonRegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const
override

◆ getCalleeSavedRegs()

const MCPhysReg * HexagonRegisterInfo::getCalleeSavedRegs ( const MachineFunction MF) const
override

Code Generation virtual methods...

Definition at line 103 of file HexagonRegisterInfo.cpp.

References llvm::MachineFunction::getInfo(), and R2.

Referenced by llvm::HexagonFrameLowering::determineCalleeSaves().

◆ getCallerSavedRegs()

const MCPhysReg * HexagonRegisterInfo::getCallerSavedRegs ( const MachineFunction MF,
const TargetRegisterClass RC 
) const

◆ getCallPreservedMask()

const uint32_t * HexagonRegisterInfo::getCallPreservedMask ( const MachineFunction MF,
CallingConv::ID   
) const
override

Definition at line 125 of file HexagonRegisterInfo.cpp.

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

◆ getFirstCallerSavedNonParamReg()

unsigned HexagonRegisterInfo::getFirstCallerSavedNonParamReg ( ) const

Definition at line 344 of file HexagonRegisterInfo.cpp.

References R6.

◆ getFrameRegister() [1/2]

unsigned HexagonRegisterInfo::getFrameRegister ( const MachineFunction MF) const
override

◆ getFrameRegister() [2/2]

unsigned HexagonRegisterInfo::getFrameRegister ( ) const

Definition at line 299 of file HexagonRegisterInfo.cpp.

Referenced by getFrameRegister().

◆ getHexagonSubRegIndex()

unsigned HexagonRegisterInfo::getHexagonSubRegIndex ( const TargetRegisterClass RC,
unsigned  GenIdx 
) const

◆ getPointerRegClass()

const TargetRegisterClass * HexagonRegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const
override

Definition at line 339 of file HexagonRegisterInfo.cpp.

◆ getRARegister()

unsigned HexagonRegisterInfo::getRARegister ( ) const

◆ getReservedRegs()

BitVector HexagonRegisterInfo::getReservedRegs ( const MachineFunction MF) const
override

◆ getStackRegister()

unsigned HexagonRegisterInfo::getStackRegister ( ) const

◆ isEHReturnCalleeSaveReg()

bool HexagonRegisterInfo::isEHReturnCalleeSaveReg ( unsigned  Reg) const

Definition at line 50 of file HexagonRegisterInfo.cpp.

References R2.

Referenced by llvm::HexagonFrameLowering::getFrameIndexReference().

◆ requiresFrameIndexScavenging()

bool llvm::HexagonRegisterInfo::requiresFrameIndexScavenging ( const MachineFunction MF) const
inlineoverride

Returns true.

Spill code for predicate registers might need an extra register.

Definition at line 53 of file HexagonRegisterInfo.h.

◆ requiresRegisterScavenging()

bool llvm::HexagonRegisterInfo::requiresRegisterScavenging ( const MachineFunction MF) const
inlineoverride

Returns true since we may need scavenging for a temporary register when generating hardware loop instructions.

Definition at line 47 of file HexagonRegisterInfo.h.

◆ shouldCoalesce()

bool HexagonRegisterInfo::shouldCoalesce ( MachineInstr MI,
const TargetRegisterClass SrcRC,
unsigned  SubReg,
const TargetRegisterClass DstRC,
unsigned  DstSubReg,
const TargetRegisterClass NewRC,
LiveIntervals LIS 
) const
override

◆ trackLivenessAfterRegAlloc()

bool llvm::HexagonRegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction MF) const
inlineoverride

Definition at line 60 of file HexagonRegisterInfo.h.

References Kind, MI, Reg, and SubReg.

◆ useFPForScavengingIndex()

bool HexagonRegisterInfo::useFPForScavengingIndex ( const MachineFunction MF) const
override

Returns true if the frame pointer is valid.

Definition at line 333 of file HexagonRegisterInfo.cpp.

References llvm::MachineFunction::getSubtarget().


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