LLVM
8.0.1
|
#include "X86.h"
#include "X86InstrBuilder.h"
#include "X86InstrInfo.h"
#include "X86Subtarget.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Functions | |
static void | addProlog (MachineFunction &Fn, const TargetInstrInfo *TII, MachineBasicBlock &MBB, const DebugLoc &DL) |
static void | addPrologLeaf (MachineFunction &Fn, const TargetInstrInfo *TII, MachineBasicBlock &MBB, const DebugLoc &DL, MCPhysReg FreeRegister) |
static void | addEpilog (const TargetInstrInfo *TII, MachineBasicBlock &MBB, MachineInstr &MI, MachineBasicBlock &TrapBB) |
static void | addEpilogLeaf (const TargetInstrInfo *TII, MachineBasicBlock &MBB, MachineInstr &MI, MachineBasicBlock &TrapBB, MCPhysReg FreeRegister) |
static void | addEpilogOnlyR10 (const TargetInstrInfo *TII, MachineBasicBlock &MBB, MachineInstr &MI, MachineBasicBlock &TrapBB) |
static const MachineInstrBuilder & | addSegmentedMem (const MachineInstrBuilder &MIB, MCPhysReg Seg, MCPhysReg Reg, int Offset=0) |
INITIALIZE_PASS (ShadowCallStack, "shadow-call-stack", "Shadow Call Stack", false, false) FunctionPass *llvm | |
|
static |
Definition at line 122 of file ShadowCallStack.cpp.
References llvm::addDirectMem(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), addSegmentedMem(), llvm::MachineBasicBlock::addSuccessor(), llvm::BuildMI(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), and llvm::RegState::Undef.
Referenced by addEpilogOnlyR10().
|
static |
Definition at line 150 of file ShadowCallStack.cpp.
References llvm::addDirectMem(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::BuildMI(), llvm::MCInstrInfo::get(), and llvm::MachineInstr::getDebugLoc().
Referenced by addEpilogOnlyR10().
|
static |
Definition at line 163 of file ShadowCallStack.cpp.
References llvm::addDirectMem(), addEpilog(), addEpilogLeaf(), llvm::MachineInstrBuilder::addImm(), addProlog(), addPrologLeaf(), llvm::MachineInstrBuilder::addReg(), addSegmentedMem(), llvm::MachineBasicBlock::addSuccessor(), llvm::BuildMI(), E, llvm::MachineBasicBlock::empty(), llvm::MachineFunction::empty(), llvm::MachineInstr::findRegisterUseOperand(), llvm::MachineBasicBlock::front(), llvm::MachineFunction::front(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), llvm::MachineBasicBlock::getFallThrough(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), llvm::Function::hasFnAttribute(), llvm::MachineInstr::hasRegisterImplicitUseOperand(), I, llvm::MachineBasicBlock::instr_back(), llvm::MachineInstr::isCall(), llvm::MachineBasicBlock::isLiveIn(), llvm::MachineInstr::isReturn(), llvm::MCRegisterInfo::DiffListIterator::isValid(), MI, llvm::Attribute::Naked, Reg, llvm::Attribute::ShadowCallStack, TII, llvm::MachineRegisterInfo::tracksLiveness(), llvm::ISD::TRAP, TRI, and llvm::RegState::Undef.
|
static |
Definition at line 85 of file ShadowCallStack.cpp.
References llvm::addDirectMem(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), addSegmentedMem(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MCInstrInfo::get(), and llvm::RegState::Undef.
Referenced by addEpilogOnlyR10().
|
static |
Definition at line 113 of file ShadowCallStack.cpp.
References llvm::addDirectMem(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), and llvm::MCInstrInfo::get().
Referenced by addEpilogOnlyR10().
|
inlinestatic |
Definition at line 80 of file ShadowCallStack.cpp.
References llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Referenced by addEpilog(), addEpilogOnlyR10(), and addProlog().
Definition at line 317 of file ShadowCallStack.cpp.