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:
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