LLVM  8.0.1
Macros | Functions | Variables
X86CallFrameOptimization.cpp File Reference
#include "MCTargetDesc/X86BaseInfo.h"
#include "X86FrameLowering.h"
#include "X86InstrInfo.h"
#include "X86MachineFunctionInfo.h"
#include "X86RegisterInfo.h"
#include "X86Subtarget.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Function.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
Include dependency graph for X86CallFrameOptimization.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "x86-cf-opt"
 

Functions

 INITIALIZE_PASS (X86CallFrameOptimization, DEBUG_TYPE, "X86 Call Frame Optimization", false, false) bool X86CallFrameOptimization
 

Variables

static cl::opt< boolNoX86CFOpt ("no-x86-call-frame-opt", cl::desc("Avoid optimizing x86 call frames for size"), cl::init(false), cl::Hidden)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "x86-cf-opt"

Definition at line 52 of file X86CallFrameOptimization.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( X86CallFrameOptimization  ,
DEBUG_TYPE  ,
"X86 Call Frame Optimization ,
false  ,
false   
)

Definition at line 132 of file X86CallFrameOptimization.cpp.

References llvm::ARM_AM::add, llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::X86::AddrBaseReg, llvm::X86::AddrDisp, llvm::X86::AddrIndexReg, llvm::X86::AddrNumOperands, llvm::X86::AddrScaleAmt, llvm::X86::AddrSegmentReg, assert(), llvm::BuildMI(), Context, llvm::MCCFIInstruction::createAdjustCfaOffset(), DefMI, llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::eraseFromParent(), llvm::MachineInstr::getDesc(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getImm(), llvm::MachineFunction::getInfo(), llvm::MachineInstrBuilder::getInstr(), llvm::MCInstrDesc::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::X86RegisterInfo::getSlotSize(), llvm::X86RegisterInfo::getStackRegister(), llvm::MachineFunction::getSubtarget(), llvm::MachineFrameInfo::hasVarSizedObjects(), I, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), llvm::MachineOperand::isImm(), llvm::isInt< 8 >(), llvm::isPowerOf2_32(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm_unreachable, llvm::Log2_32(), MI, MRI, NoX86CFOpt, Reg, llvm::X86MachineFunctionInfo::setHasPushSequences(), llvm::SPII::Store, and TII.

Variable Documentation

◆ NoX86CFOpt

cl::opt<bool> NoX86CFOpt("no-x86-call-frame-opt", cl::desc("Avoid optimizing x86 call frames for size"), cl::init(false), cl::Hidden)
static

Referenced by INITIALIZE_PASS().