LLVM: lib/Target/AMDGPU/R600FrameLowering.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

12

13using namespace llvm;

14

16

17

24

25

27

28

29

30

31 unsigned OffsetBytes = 2 * (getStackWidth(MF) * 4);

32 int UpperBound = FI == -1 ? MFI.getNumObjects() : FI;

33

37

38

40 }

41

42 if (FI != -1)

44

46}

AMDGPU R600 specific subclass of TargetSubtarget.

unsigned getStackWidth(const MachineFunction &MF) const

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

Align getObjectAlign(int ObjectIdx) const

Return the alignment of the specified stack object.

int64_t getObjectSize(int ObjectIdx) const

Return the size of the specified object.

unsigned getNumObjects() const

Return the number of objects.

int getObjectIndexBegin() const

Return the minimum frame object index.

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.

~R600FrameLowering() override

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

Definition R600FrameLowering.cpp:19

Wrapper class representing virtual and physical registers.

StackOffset holds a fixed and a scalable offset in bytes.

int64_t getFixed() const

Returns the fixed component of the stack.

This is an optimization pass for GlobalISel generic memory operations.

uint64_t alignTo(uint64_t Size, Align A)

Returns a multiple of A needed to store Size bytes.

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

Register getFrameRegister(const MachineFunction &MF) const override