LLVM: lib/Target/Sparc/LeonPasses.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12#ifndef LLVM_LIB_TARGET_SPARC_LEON_PASSES_H

13#define LLVM_LIB_TARGET_SPARC_LEON_PASSES_H

14

16

17namespace llvm {

19

22protected:

25

26

27

29

30protected:

32

34

38};

39

41protected:

45

52

57

58public:

59 static char ID;

60

63

65};

66

68public:

69 static char ID;

70

73

75 return "InsertNOPLoad: Erratum Fix LBR35: insert a NOP instruction after "

76 "every single-cycle load instruction when the next instruction is "

77 "another load/store instruction";

78 }

79};

80

83public:

84 static char ID;

85

88

90 return "DetectRoundChange: Leon erratum detection: detect any rounding "

91 "mode change request: use only the round-to-nearest rounding mode";

92 }

93};

94

96public:

97 static char ID;

98

101

103 return "FixAllFDIVSQRT: Erratum Fix LBR34: fix FDIVS/FDIVD/FSQRTS/FSQRTD "

104 "instructions with NOPs and floating-point store";

105 }

106};

107}

108

109#endif

#define LLVM_LIBRARY_VISIBILITY

bool runOnMachineFunction(MachineFunction &MF) override

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...

static char ID

Definition LeonPasses.h:84

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition LeonPasses.h:89

bool checkSeqTN0009A(MachineBasicBlock::iterator I)

bool checkSeqTN0013(MachineBasicBlock::iterator I)

bool checkSeqTN0010First(MachineBasicBlock &MBB)

bool moveNext(MachineBasicBlock::iterator &I)

const SparcSubtarget * ST

Definition LeonPasses.h:42

bool checkSeqTN0012(MachineBasicBlock::iterator I)

bool checkSeqTN0010(MachineBasicBlock::iterator I)

bool checkSeqTN0009B(MachineBasicBlock::iterator I)

const TargetInstrInfo * TII

Definition LeonPasses.h:43

bool isDivSqrt(MachineBasicBlock::iterator I)

bool isFloat(MachineBasicBlock::iterator I)

bool runOnMachineFunction(MachineFunction &MF) override

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...

static char ID

Definition LeonPasses.h:59

const TargetRegisterInfo * TRI

Definition LeonPasses.h:44

void insertNop(MachineBasicBlock::iterator I)

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition LeonPasses.h:64

bool runOnMachineFunction(MachineFunction &MF) override

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...

static char ID

Definition LeonPasses.h:97

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition LeonPasses.h:102

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition LeonPasses.h:74

bool runOnMachineFunction(MachineFunction &MF) override

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...

static char ID

Definition LeonPasses.h:69

LEONMachineFunctionPass(char &ID)

const SparcSubtarget * Subtarget

Definition LeonPasses.h:23

const int LAST_OPERAND

Definition LeonPasses.h:24

void markRegisterUsed(int registerIndex)

Definition LeonPasses.h:35

void clearUsedRegisterList()

Definition LeonPasses.h:33

std::vector< int > UsedRegisters

Definition LeonPasses.h:28

MachineInstrBundleIterator< MachineInstr > iterator

MachineFunctionPass(char &ID)

StringRef - Represent a constant reference to a string, i.e.

TargetInstrInfo - Interface to description of machine instruction set.

TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

This is an optimization pass for GlobalISel generic memory operations.