LLVM: lib/Target/SystemZ/SystemZFrameLowering.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZFRAMELOWERING_H

10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZFRAMELOWERING_H

11

18

19namespace llvm {

21

23public:

25 bool StackReal, unsigned PointerSize);

26

27 static std::unique_ptr

29

30

33

34

35

36

37

38

39

40 return false;

41 }

42

44

45

47

48

50

51

53

54

56

57private:

58 unsigned PointerSize;

59};

60

63

64public:

66

67

68 bool

71 std::vector &CSI) const override;

78 bool

90 Register &FrameReg) const override;

91 void

94

95

96

97

99

101

102

107

108

112

113

115

116protected:

118};

119

122

123public:

125

126 bool

129 std::vector &CSI) const override;

130

133

138

139 bool

144

146

148

151

154

156

157

162

163

167

168

170

171protected:

173};

174}

175

176#endif

MachineBasicBlock MachineBasicBlock::iterator MBBI

static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")

This file implements an indexed map.

Register const TargetRegisterInfo * TRI

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

MachineInstrBundleIterator< MachineInstr > iterator

MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...

Wrapper class representing virtual and physical registers.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

StackOffset holds a fixed and a scalable offset in bytes.

bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBII, MutableArrayRef< CalleeSavedInfo > CSI, const TargetRegisterInfo *TRI) const override

restoreCalleeSavedRegisters - Issues instruction(s) to restore all callee saved registers and returns...

int getOrCreateFramePointerSaveIndex(MachineFunction &MF) const override

void orderFrameObjects(const MachineFunction &MF, SmallVectorImpl< int > &ObjectsToAllocate) const override

Order the symbols in the local stack frame.

bool assignCalleeSavedSpillSlots(MachineFunction &MF, const TargetRegisterInfo *TRI, std::vector< CalleeSavedInfo > &CSI) const override

assignCalleeSavedSpillSlots - Allows target to override spill slot assignment logic.

unsigned getBackchainOffset(MachineFunction &MF) const override

Definition SystemZFrameLowering.h:103

void inlineStackProbe(MachineFunction &MF, MachineBasicBlock &PrologMBB) const override

Replace a StackProbe stub (if any) with the actual probe code inline.

bool hasFPImpl(const MachineFunction &MF) const override

void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override

emitProlog/emitEpilog - These methods insert prolog and epilog code into the function.

void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override

int getReturnAddressOffset(MachineFunction &MF) const override

Definition SystemZFrameLowering.h:109

StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, Register &FrameReg) const override

getFrameIndexReference - This method should return the base register and offset used to reference a f...

bool usePackedStack(MachineFunction &MF) const

void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, RegScavenger *RS) const override

This method determines which of the registers reported by TargetRegisterInfo::getCalleeSavedRegs() sh...

bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, ArrayRef< CalleeSavedInfo > CSI, const TargetRegisterInfo *TRI) const override

spillCalleeSavedRegisters - Issues instruction(s) to spill all callee saved registers and returns tru...

SystemZELFFrameLowering(unsigned PointerSize)

unsigned getRegSpillOffset(MachineFunction &MF, Register Reg) const

void processFunctionBeforeFrameFinalized(MachineFunction &MF, RegScavenger *RS) const override

processFunctionBeforeFrameFinalized - This method is called immediately before the specified function...

virtual int getOrCreateFramePointerSaveIndex(MachineFunction &MF) const =0

bool hasReservedCallFrame(const MachineFunction &MF) const override

hasReservedCallFrame - Under normal circumstances, when a frame pointer is not required,...

virtual unsigned getBackchainOffset(MachineFunction &MF) const =0

static std::unique_ptr< SystemZFrameLowering > create(const SystemZSubtarget &STI)

virtual int getReturnAddressOffset(MachineFunction &MF) const =0

unsigned getPointerSize() const

Definition SystemZFrameLowering.h:55

SystemZFrameLowering(StackDirection D, Align StackAl, int LAO, Align TransAl, bool StackReal, unsigned PointerSize)

bool allocateScavengingFrameIndexesNearIncomingSP(const MachineFunction &MF) const override

Control the placement of special register scavenging spill slots when allocating a stack frame.

Definition SystemZFrameLowering.h:31

unsigned getBackchainOffset(MachineFunction &MF) const override

Definition SystemZFrameLowering.h:158

void inlineStackProbe(MachineFunction &MF, MachineBasicBlock &PrologMBB) const override

Replace a StackProbe stub (if any) with the actual probe code inline.

bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBII, MutableArrayRef< CalleeSavedInfo > CSI, const TargetRegisterInfo *TRI) const override

restoreCalleeSavedRegisters - Issues instruction(s) to restore all callee saved registers and returns...

int getOrCreateFramePointerSaveIndex(MachineFunction &MF) const override

void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override

void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override

emitProlog/emitEpilog - These methods insert prolog and epilog code into the function.

void determineFrameLayout(MachineFunction &MF) const

SystemZXPLINKFrameLowering(unsigned PointerSize)

bool hasFPImpl(const MachineFunction &MF) const override

bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, ArrayRef< CalleeSavedInfo > CSI, const TargetRegisterInfo *TRI) const override

spillCalleeSavedRegisters - Issues instruction(s) to spill all callee saved registers and returns tru...

int getReturnAddressOffset(MachineFunction &MF) const override

Definition SystemZFrameLowering.h:164

void processFunctionBeforeFrameFinalized(MachineFunction &MF, RegScavenger *RS) const override

processFunctionBeforeFrameFinalized - This method is called immediately before the specified function...

void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, RegScavenger *RS) const override

This method determines which of the registers reported by TargetRegisterInfo::getCalleeSavedRegs() sh...

bool assignCalleeSavedSpillSlots(MachineFunction &MF, const TargetRegisterInfo *TRI, std::vector< CalleeSavedInfo > &CSI) const override

assignCalleeSavedSpillSlots - Allows target to override spill slot assignment logic.

TargetFrameLowering(StackDirection D, Align StackAl, int LAO, Align TransAl=Align(1), bool StackReal=true)

TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...

const int64_t ELFCallFrameSize

This is an optimization pass for GlobalISel generic memory operations.

This struct is a compact representation of a valid (non-zero power of two) alignment.