LLVM: lib/Target/X86/X86FrameLowering.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
STATISTIC (NumFrameLoopProbe, "Number of loop stack probes used in prologue")
STATISTIC (NumFrameExtraProbe, "Number of extra stack probes generated in prologue")
STATISTIC (NumFunctionUsingPush2Pop2, "Number of funtions using push2/pop2")
static unsigned getSUBriOpcode (bool IsLP64)
static unsigned getADDriOpcode (bool IsLP64)
static unsigned getSUBrrOpcode (bool IsLP64)
static unsigned getADDrrOpcode (bool IsLP64)
static unsigned getANDriOpcode (bool IsLP64, int64_t Imm)
static unsigned getLEArOpcode (bool IsLP64)
static unsigned getMOVriOpcode (bool Use64BitReg, int64_t Imm)
static unsigned getPUSHOpcode (const X86Subtarget &ST)
static unsigned getPOPOpcode (const X86Subtarget &ST)
static unsigned getPUSH2Opcode (const X86Subtarget &ST)
static unsigned getPOP2Opcode (const X86Subtarget &ST)
static bool isEAXLiveIn (MachineBasicBlock &MBB)
static bool flagsNeedToBePreservedBeforeTheTerminators (const MachineBasicBlock &MBB)
Check if the flags need to be preserved before the terminators.
static unsigned calculateSetFPREG (uint64_t SPAdjust)
static bool isOpcodeRep (unsigned Opcode)
Return true if an opcode is part of the REP group of instructions.
static bool isFuncletReturnInstr (MachineInstr &MI)
static bool isTailCallOpcode (unsigned Opc)
static bool HasNestArgument (const MachineFunction *MF)
static unsigned GetScratchRegister (bool Is64Bit, bool IsLP64, const MachineFunction &MF, bool Primary)
GetScratchRegister - Get a temp register for performing work in the segmented stack and the Erlang/HiPE stack prologue.
static unsigned getHiPELiteral (NamedMDNode *HiPELiteralsMD, const StringRef LiteralName)
Lookup an ERTS parameter in the !hipe.literals named metadata node.
static bool blockEndIsUnreachable (const MachineBasicBlock &MBB, MachineBasicBlock::const_iterator MBBI)
static int computeFPBPAlignmentGap (MachineFunction &MF, const TargetRegisterClass *RC, unsigned NumSpilledRegs)
static bool isFPBPAccess (const MachineInstr &MI, Register FP, Register BP, const TargetRegisterInfo *TRI, bool &AccessFP, bool &AccessBP)
static bool isInvoke (const MachineInstr &MI, bool InsideEHLabels)

DEBUG_TYPE

#define DEBUG_TYPE "x86-fl"

blockEndIsUnreachable()

calculateSetFPREG()

computeFPBPAlignmentGap()

flagsNeedToBePreservedBeforeTheTerminators()

getADDriOpcode()

getADDrrOpcode()

getANDriOpcode()

static unsigned getANDriOpcode ( bool IsLP64, int64_t Imm ) static

getHiPELiteral()

getLEArOpcode()

getMOVriOpcode()

static unsigned getMOVriOpcode ( bool Use64BitReg, int64_t Imm ) static

getPOP2Opcode()

getPOPOpcode()

getPUSH2Opcode()

getPUSHOpcode()

GetScratchRegister()

getSUBriOpcode()

getSUBrrOpcode()

HasNestArgument()

isEAXLiveIn()

isFPBPAccess()

isFuncletReturnInstr()

isInvoke()

isOpcodeRep()

isTailCallOpcode()

STATISTIC() [1/3]

STATISTIC ( NumFrameExtraProbe ,
"Number of extra stack probes generated in prologue"
)

STATISTIC() [2/3]

STATISTIC ( NumFrameLoopProbe ,
"Number of loop stack probes used in prologue"
)

STATISTIC() [3/3]

STATISTIC ( NumFunctionUsingPush2Pop2 ,
"Number of funtions using push2/pop2"
)

kSplitStackAvailable