Go to the documentation of this file.
35 #define DEBUG_TYPE "x86-insert-wait"
48 return "X86 insert wait instruction";
59 switch (
MI.getOpcode()) {
84 switch (
MI.getOpcode()) {
102 bool Changed =
false;
112 if (!(
MI->mayRaiseFPException() ||
MI->mayLoadOrStore()) ||
This is an optimization pass for GlobalISel generic memory operations.
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
static bool isX87ControlInstruction(MachineInstr &MI)
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
static bool isX87NonWaitingControlInstruction(MachineInstr &MI)
const HexagonInstrInfo * TII
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
bool hasFnAttribute(Attribute::AttrKind Kind) const
Return true if the function has the attribute.
Representation of each machine instruction.
StringRef - Represent a constant reference to a string, i.e.
Function & getFunction()
Return the LLVM function that this machine code represents.
FunctionPass * createX86InsertX87waitPass()
This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-...
MachineInstrBuilder BuildMI(MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID)
Builder interface. Specify how to create the initial instruction itself.
bool isX87Instruction(MachineInstr &MI)
Check if the instruction is X87 instruction.
FunctionPass class - This class is used to implement most global optimizations.