LLVM API Documentation
#include "PrologEpilogInserter.h"#include "llvm/ADT/IndexedMap.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SetVector.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/RegisterScavenging.h"#include "llvm/CodeGen/StackProtector.h"#include "llvm/IR/DiagnosticInfo.h"#include "llvm/IR/InlineAsm.h"#include "llvm/IR/LLVMContext.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetFrameLowering.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Target/TargetRegisterInfo.h"#include "llvm/Target/TargetSubtargetInfo.h"#include <climits>
Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "pei" |
Typedefs | |
| typedef SmallSetVector< int, 8 > | StackObjSet |
| StackObjSet - A set of stack object indexes. | |
Functions | |
| INITIALIZE_PASS_BEGIN (PEI,"prologepilog","Prologue/Epilogue Insertion", false, false) INITIALIZE_PASS_END(PEI | |
| Prologue Epilogue Insertion &Frame false | STATISTIC (NumScavengedRegs,"Number of frame index regs scavenged") |
| STATISTIC (NumBytesStackSpace,"Number of bytes used for stack in all functions") | |
| static void | AdjustStackOffset (MachineFrameInfo *MFI, int FrameIdx, bool StackGrowsDown, int64_t &Offset, unsigned &MaxAlign) |
| AdjustStackOffset - Helper function used to adjust the stack frame offset. | |
| static void | AssignProtectedObjSet (const StackObjSet &UnassignedObjs, SmallSet< int, 16 > &ProtectedObjs, MachineFrameInfo *MFI, bool StackGrowsDown, int64_t &Offset, unsigned &MaxAlign) |
Variables | |
| static cl::opt< unsigned > | WarnStackSize ("warn-stack-size", cl::Hidden, cl::init((unsigned)-1), cl::desc("Warn for stack size bigger than the given"" number")) |
| prologepilog | |
| Prologue Epilogue Insertion &Frame | Finalization |
| Prologue Epilogue Insertion &Frame | false |
| #define DEBUG_TYPE "pei" |
Definition at line 49 of file PrologEpilogInserter.cpp.
| typedef SmallSetVector<int, 8> StackObjSet |
StackObjSet - A set of stack object indexes.
Definition at line 107 of file PrologEpilogInserter.cpp.
| static void AdjustStackOffset | ( | MachineFrameInfo * | MFI, |
| int | FrameIdx, | ||
| bool | StackGrowsDown, | ||
| int64_t & | Offset, | ||
| unsigned & | MaxAlign | ||
| ) | [inline, static] |
AdjustStackOffset - Helper function used to adjust the stack frame offset.
Definition at line 403 of file PrologEpilogInserter.cpp.
References llvm::dbgs(), DEBUG, llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), and llvm::MachineFrameInfo::setObjectOffset().
Referenced by AssignProtectedObjSet().
| void LocalStackSlotPass::AssignProtectedObjSet | ( | const StackObjSet & | UnassignedObjs, |
| SmallSet< int, 16 > & | ProtectedObjs, | ||
| MachineFrameInfo * | MFI, | ||
| bool | StackGrowsDown, | ||
| int64_t & | Offset, | ||
| unsigned & | MaxAlign | ||
| ) | [static] |
AssignProtectedObjSet - Helper function to assign large stack objects (i.e., those required to be close to the Stack Protector) to stack offsets.
Definition at line 432 of file PrologEpilogInserter.cpp.
References AdjustStackOffset(), llvm::SetVector< T, Vector, Set >::begin(), llvm::SetVector< T, Vector, Set >::end(), I, and llvm::SmallSet< T, N, C >::insert().
| INITIALIZE_PASS_BEGIN | ( | PEI | , |
| "prologepilog" | , | ||
| "Prologue/Epilogue Insertion" | , | ||
| false | , | ||
| false | |||
| ) |
| Prologue Epilogue Insertion& Frame false STATISTIC | ( | NumScavengedRegs | , |
| "Number of frame index regs scavenged" | |||
| ) |
| Prologue Epilogue Insertion& Frame false |
Definition at line 65 of file PrologEpilogInserter.cpp.
| Prologue Epilogue Insertion& Frame Finalization |
Definition at line 65 of file PrologEpilogInserter.cpp.
Definition at line 65 of file PrologEpilogInserter.cpp.
cl::opt<unsigned> WarnStackSize("warn-stack-size", cl::Hidden, cl::init((unsigned)-1), cl::desc("Warn for stack size bigger than the given"" number")) [static] |
Referenced by llvm::PEI::runOnMachineFunction().