LLVM: lib/Target/LoongArch/LoongArchISelDAGToDAG.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELDAGTODAG_H

14#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHISELDAGTODAG_H

15

20

21

22

23namespace llvm {

26

27public:

29

33

38

40

43 std::vector &OutOps) override;

44

49

57

60

62

63 template <unsigned ImmSize, bool IsSigned = false>

65

68

69

70

71

73 switch (CC) {

74 default:

77 return LoongArch::BEQ;

79 return LoongArch::BNE;

81 return LoongArch::BLT;

83 return LoongArch::BGE;

85 return LoongArch::BLTU;

87 return LoongArch::BGEU;

88 }

89 }

90

91

92#include "LoongArchGenDAGISel.inc"

93};

94

96public:

97 static char ID;

100};

101

102}

103

104#endif

Class for arbitrary precision integers.

LoongArchDAGToDAGISelLegacy(LoongArchTargetMachine &TM, CodeGenOptLevel OptLevel)

static char ID

Definition LoongArchISelDAGToDAG.h:97

bool selectNonFIBaseAddr(SDValue Addr, SDValue &Base)

bool selectShiftMask32(SDValue N, SDValue &ShAmt)

Definition LoongArchISelDAGToDAG.h:54

bool selectSExti32(SDValue N, SDValue &Val)

bool SelectInlineAsmMemoryOperand(const SDValue &Op, InlineAsm::ConstraintCode ConstraintID, std::vector< SDValue > &OutOps) override

SelectInlineAsmMemoryOperand - Select the specified address as a target addressing mode,...

bool selectVSplatUimmPow2(SDValue N, SDValue &SplatImm) const

bool selectShiftMaskGRLen(SDValue N, SDValue &ShAmt)

Definition LoongArchISelDAGToDAG.h:51

static unsigned getBranchOpcForIntCC(ISD::CondCode CC)

Definition LoongArchISelDAGToDAG.h:72

bool selectShiftMask(SDValue N, unsigned ShiftWidth, SDValue &ShAmt)

bool selectZExti32(SDValue N, SDValue &Val)

bool SelectAddrRegImm12(SDValue Addr, SDValue &Base, SDValue &Offset)

LoongArchDAGToDAGISel(LoongArchTargetMachine &TM, CodeGenOptLevel OptLevel)

Definition LoongArchISelDAGToDAG.h:30

bool SelectAddrConstant(SDValue Addr, SDValue &Base, SDValue &Offset)

bool selectVSplat(SDNode *N, APInt &Imm, unsigned MinSizeInBits) const

LoongArchDAGToDAGISel()=delete

bool selectVSplatImm(SDValue N, SDValue &SplatVal)

void Select(SDNode *Node) override

Main hook for targets to transform nodes into machine nodes.

bool selectVSplatUimmInvPow2(SDValue N, SDValue &SplatImm) const

bool runOnMachineFunction(MachineFunction &MF) override

Definition LoongArchISelDAGToDAG.h:34

bool SelectBaseAddr(SDValue Addr, SDValue &Base)

Represents one node in the SelectionDAG.

Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.

SelectionDAGISelLegacy(char &ID, std::unique_ptr< SelectionDAGISel > S)

SelectionDAGISel(TargetMachine &tm, CodeGenOptLevel OL=CodeGenOptLevel::Default)

virtual bool runOnMachineFunction(MachineFunction &mf)

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

CondCode

ISD::CondCode enum - These are ordered carefully to make the bitfields below work out,...

This is an optimization pass for GlobalISel generic memory operations.

CodeGenOptLevel

Code generation optimization level.

DWARFExpression::Operation Op