LLVM: lib/Target/XCore/XCoreMachineFunctionInfo.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

13

14using namespace llvm;

15

16void XCoreFunctionInfo::anchor() { }

17

21 const {

23}

24

26 if (CachedEStackSize == -1) {

28 }

29

30

31

32

33

34

35

36

37

38 return CachedEStackSize > 0xf000;

39}

40

42 if (LRSpillSlotSet) {

43 return LRSpillSlot;

44 }

49

51 } else {

53 TRI.getSpillAlign(RC), true);

54 }

55 LRSpillSlotSet = true;

56 return LRSpillSlot;

57}

58

60 if (FPSpillSlotSet) {

61 return FPSpillSlot;

62 }

66 FPSpillSlot =

68 FPSpillSlotSet = true;

69 return FPSpillSlot;

70}

71

73 if (EHSpillSlotSet) {

74 return EHSpillSlot;

75 }

79 unsigned Size = TRI.getSpillSize(RC);

80 Align Alignment = TRI.getSpillAlign(RC);

83 EHSpillSlotSet = true;

84 return EHSpillSlot;

85}

86

unsigned const TargetRegisterInfo * TRI

Allocate memory in an ever growing pool, as if by bump-pointer.

bool isVarArg() const

isVarArg - Return true if this function takes a variable number of arguments.

The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.

int CreateFixedObject(uint64_t Size, int64_t SPOffset, bool IsImmutable, bool isAliased=false)

Create a new object at a fixed location on the stack.

int CreateStackObject(uint64_t Size, Align Alignment, bool isSpillSlot, const AllocaInst *Alloca=nullptr, uint8_t ID=0)

Create a new statically sized stack object, returning a nonnegative identifier to represent it.

uint64_t estimateStackSize(const MachineFunction &MF) const

Estimate and return the size of the stack frame.

const TargetSubtargetInfo & getSubtarget() const

getSubtarget - Return the subtarget for which this machine code is being compiled.

MachineFrameInfo & getFrameInfo()

getFrameInfo - Return the frame info object for the current function.

Function & getFunction()

Return the LLVM function that this machine code represents.

Ty * cloneInfo(const Ty &Old)

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

virtual const TargetRegisterInfo * getRegisterInfo() const

getRegisterInfo - If register information is available, return it.

XCoreFunctionInfo - This class is derived from MachineFunction private XCore target-specific informat...

MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override

Make a functionally equivalent copy of this MachineFunctionInfo in MF.

const int * createEHSpillSlot(MachineFunction &MF)

bool isLargeFrame(const MachineFunction &MF) const

int createLRSpillSlot(MachineFunction &MF)

int createFPSpillSlot(MachineFunction &MF)

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.

MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...