LLVM 24.0.0git
LeonPasses.cpp File Reference

Go to the source code of this file.

Functions

 INITIALIZE_PASS (SparcErrataWorkaroundLegacy, "errata-workaround", "Errata workaround pass", false, false) static bool moveNext(MachineBasicBlock
static void insertNop (MachineBasicBlock::iterator I, const TargetInstrInfo *TII)
static bool isFloat (MachineBasicBlock::iterator I)
static bool isDivSqrt (MachineBasicBlock::iterator I)
static bool isAtomic (MachineBasicBlock::iterator I)
static bool checkSeqTN0009A (MachineBasicBlock::iterator I, const TargetInstrInfo *TII)
static bool checkSeqTN0009B (MachineBasicBlock::iterator I, const TargetInstrInfo *TII)
static bool checkSeqTN0010 (MachineBasicBlock::iterator I, const TargetInstrInfo *TII)
static bool checkSeqTN0010First (MachineBasicBlock &MBB, const TargetInstrInfo *TII)
static bool checkSeqTN0012 (MachineBasicBlock::iterator I, const TargetInstrInfo *TII)
static bool checkSeqTN0013 (MachineBasicBlock::iterator I, const TargetInstrInfo *TII, const TargetRegisterInfo *TRI)
static bool runErrataWorkaroundOnMachineFunction (MachineFunction &MF)
static bool insertNOPLoadInMachineFunction (MachineFunction &MF)
static bool detectRoundChangeOnMachineFunction (MachineFunction &MF)
static bool fixAllFDIVSQRTInMachineFunction (MachineFunction &MF)

Function Documentation

◆ checkSeqTN0009A()

bool checkSeqTN0009A ( MachineBasicBlock::iterator I,
const TargetInstrInfo * TII )
static

Definition at line 107 of file LeonPasses.cpp.

References I, insertNop(), MI, and TII.

Referenced by runErrataWorkaroundOnMachineFunction().

◆ checkSeqTN0009B()

bool checkSeqTN0009B ( MachineBasicBlock::iterator I,
const TargetInstrInfo * TII )
static

Definition at line 146 of file LeonPasses.cpp.

References I, insertNop(), MI, and TII.

Referenced by runErrataWorkaroundOnMachineFunction().

◆ checkSeqTN0010()

◆ checkSeqTN0010First()

bool checkSeqTN0010First ( MachineBasicBlock & MBB,
const TargetInstrInfo * TII )
static

Definition at line 208 of file LeonPasses.cpp.

References I, insertNop(), isAtomic(), MBB, and TII.

Referenced by runErrataWorkaroundOnMachineFunction().

◆ checkSeqTN0012()

◆ checkSeqTN0013()

bool checkSeqTN0013 ( MachineBasicBlock::iterator I,
const TargetInstrInfo * TII,
const TargetRegisterInfo * TRI )
static

Definition at line 254 of file LeonPasses.cpp.

References I, insertNop(), isDivSqrt(), isFloat(), MI, TII, and TRI.

Referenced by runErrataWorkaroundOnMachineFunction().

◆ detectRoundChangeOnMachineFunction()

◆ fixAllFDIVSQRTInMachineFunction()

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( SparcErrataWorkaroundLegacy ,
"errata-workaround" ,
"Errata workaround pass" ,
false ,
false  )

Definition at line 35 of file LeonPasses.cpp.

References I, and MBB.

◆ insertNop()

◆ insertNOPLoadInMachineFunction()

◆ isAtomic()

◆ isDivSqrt()

bool isDivSqrt ( MachineBasicBlock::iterator I)
static

Definition at line 79 of file LeonPasses.cpp.

References I.

Referenced by checkSeqTN0013().

◆ isFloat()

bool isFloat ( MachineBasicBlock::iterator I)
static

Definition at line 64 of file LeonPasses.cpp.

References contains(), and I.

Referenced by checkSeqTN0012(), checkSeqTN0013(), and llvm::TargetLoweringBase::getBooleanContents().

◆ runErrataWorkaroundOnMachineFunction()