|
LLVM 22.0.0git
|
#include "X86.h"#include "X86InstrInfo.h"#include "X86Subtarget.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineBasicBlock.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/CallingConv.h"#include "llvm/IR/DebugLoc.h"#include "llvm/IR/Function.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/raw_ostream.h"#include <cassert>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "x86-vzeroupper" |
Functions | |
| STATISTIC (NumVZU, "Number of vzeroupper instructions inserted") | |
| static bool | isYmmOrZmmReg (MCRegister Reg) |
| VZEROUPPER cleans state that is related to Y/ZMM0-15 only. | |
| static bool | checkFnHasLiveInYmmOrZmm (MachineRegisterInfo &MRI) |
| static bool | clobbersAllYmmAndZmmRegs (const MachineOperand &MO) |
| static bool | hasYmmOrZmmReg (MachineInstr &MI) |
| static bool | callHasRegMask (MachineInstr &MI) |
| Check if given call instruction has a RegMask operand. | |
Variables | |
| static cl::opt< bool > | UseVZeroUpper ("x86-use-vzeroupper", cl::Hidden, cl::desc("Minimize AVX to SSE transition penalty"), cl::init(true)) |
| #define DEBUG_TYPE "x86-vzeroupper" |
Definition at line 40 of file X86VZeroUpper.cpp.
|
static |
Check if given call instruction has a RegMask operand.
Definition at line 172 of file X86VZeroUpper.cpp.
|
static |
Definition at line 137 of file X86VZeroUpper.cpp.
References isYmmOrZmmReg(), and MRI.
|
static |
Definition at line 145 of file X86VZeroUpper.cpp.
References llvm::MachineOperand::clobbersPhysReg().
Referenced by hasYmmOrZmmReg().
|
static |
Definition at line 157 of file X86VZeroUpper.cpp.
References clobbersAllYmmAndZmmRegs(), isYmmOrZmmReg(), and MI.
|
static |
VZEROUPPER cleans state that is related to Y/ZMM0-15 only.
Thus, there is no need to check for Y/ZMM16 and above.
Definition at line 132 of file X86VZeroUpper.cpp.
References Reg.
Referenced by checkFnHasLiveInYmmOrZmm(), and hasYmmOrZmmReg().
| STATISTIC | ( | NumVZU | , |
| "Number of vzeroupper instructions inserted" | ) |