LLVM: lib/Target/CSKY/CSKYInstrInfo.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_CSKY_CSKYINSTRINFO_H

14#define LLVM_LIB_TARGET_CSKY_CSKYINSTRINFO_H

15

18

19#define GET_INSTRINFO_HEADER

20#include "CSKYGenInstrInfo.inc"

21

22namespace llvm {

23

24class CSKYSubtarget;

25

27 bool v2sf;

28 bool v2df;

29 bool v3sf;

30 bool v3df;

31

32protected:

34

35public:

37

39 int &FrameIndex) const override;

41 int &FrameIndex) const override;

42

45 bool IsKill, int FrameIndex,

48 Register VReg) const override;

49

54 Register VReg) const override;

55

58 bool KillSrc, bool RenamableDest = false,

59 bool RenamableSrc = false) const override;

60

64 int *BytesAdded = nullptr) const override;

65

69 bool AllowModify = false) const override;

70

72 int *BytesRemoved = nullptr) const override;

73

74 bool

76

78

80

82

83

87};

88

89}

90

91#endif

MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

MachineBasicBlock MachineBasicBlock::iterator MBBI

unsigned const TargetRegisterInfo * TRI

const SmallVectorImpl< MachineOperand > MachineBasicBlock * TBB

const SmallVectorImpl< MachineOperand > & Cond

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

unsigned getInstSizeInBytes(const MachineInstr &MI) const override

void storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register SrcReg, bool IsKill, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI, Register VReg) const override

unsigned removeBranch(MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override

unsigned insertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, ArrayRef< MachineOperand > Cond, const DebugLoc &DL, int *BytesAdded=nullptr) const override

void loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register DestReg, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI, Register VReg) const override

const CSKYSubtarget & STI

MachineBasicBlock * getBranchDestBlock(const MachineInstr &MI) const override

bool analyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const override

Register movImm(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, uint64_t Val, MachineInstr::MIFlag Flag=MachineInstr::NoFlags) const

Register isLoadFromStackSlot(const MachineInstr &MI, int &FrameIndex) const override

Register getGlobalBaseReg(MachineFunction &MF) const

bool reverseBranchCondition(SmallVectorImpl< MachineOperand > &Cond) const override

Register isStoreToStackSlot(const MachineInstr &MI, int &FrameIndex) const override

void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL, MCRegister DestReg, MCRegister SrcReg, bool KillSrc, bool RenamableDest=false, bool RenamableSrc=false) const override

Wrapper class representing physical registers. Should be passed by value.

Representation of each machine instruction.

Wrapper class representing virtual and physical registers.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

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

This is an optimization pass for GlobalISel generic memory operations.