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 insertNOPLoad (MachineBasicBlock &MBB, const TargetInstrInfo *TII)
static bool runErrataWorkaroundOnMachineFunction (MachineFunction &MF)

Function Documentation

◆ checkSeqTN0009A()

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

Definition at line 106 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 145 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 207 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 253 of file LeonPasses.cpp.

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

Referenced by runErrataWorkaroundOnMachineFunction().

◆ INITIALIZE_PASS()

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

Definition at line 34 of file LeonPasses.cpp.

References I, and MBB.

◆ insertNop()

◆ insertNOPLoad()

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

◆ isAtomic()

◆ isDivSqrt()

bool isDivSqrt ( MachineBasicBlock::iterator I)
static

Definition at line 78 of file LeonPasses.cpp.

References I.

Referenced by checkSeqTN0013().

◆ isFloat()

bool isFloat ( MachineBasicBlock::iterator I)
static

Definition at line 63 of file LeonPasses.cpp.

References contains(), and I.

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

◆ runErrataWorkaroundOnMachineFunction()