LLVM: lib/Target/ARM/ARMSelectionDAGInfo.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_LIB_TARGET_ARM_ARMSELECTIONDAGINFO_H
14#define LLVM_LIB_TARGET_ARM_ARMSELECTIONDAGINFO_H
15
19
20#define GET_SDNODE_ENUM
21#include "ARMGenSDNodeInfo.inc"
22
23namespace llvm {
76
79 switch (Opcode) {
85
86
87
88
89 }
90 }
91}
92
94public:
96
98
100
102 const SDNode *N) const override;
103
107 bool isVolatile, bool AlwaysInline,
110
114 Align Alignment, bool isVolatile,
117
118
121 SDValue Op3, Align Alignment, bool isVolatile,
122 bool AlwaysInline,
124
128 RTLIB::Libcall LC) const;
129};
130
131}
132
133#endif
const char * getTargetNodeName(unsigned Opcode) const override
Returns the name of the given target-specific opcode, suitable for debug printing.
SDValue EmitSpecializedLibcall(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, RTLIB::Libcall LC) const
SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const override
Emit target-specific code that performs a memset.
SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const override
Emit target-specific code that performs a memcpy.
SDValue EmitTargetCodeForMemmove(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, Align Alignment, bool isVolatile, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const override
Emit target-specific code that performs a memmove.
void verifyTargetNode(const SelectionDAG &DAG, const SDNode *N) const override
Checks that the given target-specific node is valid. Aborts if it is not.
bool isTargetMemoryOpcode(unsigned Opcode) const override
Returns true if a node with the given target-specific opcode has a memory operand.
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
Represents one node in the SelectionDAG.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.
SelectionDAGGenTargetInfo(const SDNodeInfo &GenNodeInfo)
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
NodeType
Definition ARMSelectionDAGInfo.h:26
@ VLD1x3_UPD
Definition ARMSelectionDAGInfo.h:60
@ VST3LN_UPD
Definition ARMSelectionDAGInfo.h:67
@ LAST_MEMORY_OPCODE
Definition ARMSelectionDAGInfo.h:72
@ VST4LN_UPD
Definition ARMSelectionDAGInfo.h:68
@ VLD3_UPD
Definition ARMSelectionDAGInfo.h:50
@ VST1x4_UPD
Definition ARMSelectionDAGInfo.h:71
@ VLD1x4_UPD
Definition ARMSelectionDAGInfo.h:61
@ VLD2_UPD
Definition ARMSelectionDAGInfo.h:49
@ VLD1x2_UPD
Definition ARMSelectionDAGInfo.h:59
@ VST3_UPD
Definition ARMSelectionDAGInfo.h:65
@ VST2LN_UPD
Definition ARMSelectionDAGInfo.h:66
@ VLD3DUP_UPD
Definition ARMSelectionDAGInfo.h:57
@ VST1_UPD
Definition ARMSelectionDAGInfo.h:64
@ VLD4DUP
Definition ARMSelectionDAGInfo.h:45
@ VLD1DUP
Definition ARMSelectionDAGInfo.h:42
@ VLD1DUP_UPD
Definition ARMSelectionDAGInfo.h:55
@ VLD2DUP
Definition ARMSelectionDAGInfo.h:43
@ VLD4DUP_UPD
Definition ARMSelectionDAGInfo.h:58
@ DYN_ALLOC
Definition ARMSelectionDAGInfo.h:27
@ MVESEXT
Definition ARMSelectionDAGInfo.h:29
@ BUILD_VECTOR
Definition ARMSelectionDAGInfo.h:38
@ FIRST_MEMORY_OPCODE
Definition ARMSelectionDAGInfo.h:41
@ VLD4_UPD
Definition ARMSelectionDAGInfo.h:51
@ MVEZEXT
Definition ARMSelectionDAGInfo.h:30
@ VLD3LN_UPD
Definition ARMSelectionDAGInfo.h:53
@ VST1x3_UPD
Definition ARMSelectionDAGInfo.h:70
@ VLD1_UPD
Definition ARMSelectionDAGInfo.h:48
@ VLD3DUP
Definition ARMSelectionDAGInfo.h:44
@ VST1x2_UPD
Definition ARMSelectionDAGInfo.h:69
@ VLD2DUP_UPD
Definition ARMSelectionDAGInfo.h:56
@ VLD2LN_UPD
Definition ARMSelectionDAGInfo.h:52
@ VLD4LN_UPD
Definition ARMSelectionDAGInfo.h:54
@ MVETRUNC
Definition ARMSelectionDAGInfo.h:31
ARM_AM - ARM Addressing Mode Stuff.
Definition ARMSelectionDAGInfo.h:77
static ShiftOpc getShiftOpcForNode(unsigned Opcode)
Definition ARMSelectionDAGInfo.h:78
@ SHL
Shift and rotation operations.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.
This class contains a discriminated union of information about pointers in memory operands,...