LLVM API Documentation

Defines | Functions
X86VZeroUpper.cpp File Reference
#include "X86.h"
#include "X86InstrInfo.h"
#include "X86Subtarget.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
Include dependency graph for X86VZeroUpper.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "x86-vzeroupper"

Functions

 STATISTIC (NumVZU,"Number of vzeroupper instructions inserted")
static bool isYmmReg (unsigned Reg)
static bool checkFnHasLiveInYmm (MachineRegisterInfo &MRI)
static bool clobbersAllYmmRegs (const MachineOperand &MO)
static bool hasYmmReg (MachineInstr *MI)
static bool callClobbersAnyYmmReg (MachineInstr *MI)

Define Documentation

#define DEBUG_TYPE   "x86-vzeroupper"

Definition at line 30 of file X86VZeroUpper.cpp.


Function Documentation

static bool callClobbersAnyYmmReg ( MachineInstr MI) [static]

clobbersAnyYmmReg() - Check if any YMM register will be clobbered by this instruction.

Definition at line 142 of file X86VZeroUpper.cpp.

References llvm::MachineOperand::clobbersPhysReg(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::isCall(), and llvm::MachineOperand::isRegMask().

static bool checkFnHasLiveInYmm ( MachineRegisterInfo MRI) [static]
static bool clobbersAllYmmRegs ( const MachineOperand MO) [static]

Definition at line 117 of file X86VZeroUpper.cpp.

References llvm::MachineOperand::clobbersPhysReg().

Referenced by hasYmmReg().

static bool hasYmmReg ( MachineInstr MI) [static]
static bool isYmmReg ( unsigned  Reg) [static]

Definition at line 104 of file X86VZeroUpper.cpp.

Referenced by checkFnHasLiveInYmm(), and hasYmmReg().

STATISTIC ( NumVZU  ,
"Number of vzeroupper instructions inserted"   
)