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,...