LLVM: lib/Target/SystemZ/SystemZSelectionDAGInfo.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H

14#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZSELECTIONDAGINFO_H

15

17

18#define GET_SDNODE_ENUM

19#include "SystemZGenSDNodeInfo.inc"

20

21namespace llvm {

23

33

34

35inline bool isPCREL(unsigned Opcode) {

36 return Opcode == PCREL_WRAPPER || Opcode == PCREL_OFFSET;

37}

38

39}

40

42public:

44

46

50 bool IsVolatile, bool AlwaysInline,

53

57 bool IsVolatile, bool AlwaysInline,

59

60 std::pair<SDValue, SDValue>

63 const CallInst *CI) const override;

64

65 std::pair<SDValue, SDValue>

69

74

75 std::pair<SDValue, SDValue>

80

81 std::pair<SDValue, SDValue>

84

85 std::pair<SDValue, SDValue>

89};

90

91}

92

93#endif

MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

This class represents a function call, abstracting a target machine's calling convention.

Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...

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

const char * getTargetNodeName(unsigned Opcode) const override

Returns the name of the given target-specific opcode, suitable for debug printing.

SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, SDValue Byte, SDValue Size, Align Alignment, bool IsVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const override

Emit target-specific code that performs a memset.

std::pair< SDValue, SDValue > EmitTargetCodeForMemchr(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, SDValue Char, SDValue Length, MachinePointerInfo SrcPtrInfo) const override

Emit target-specific code that performs a memchr, in cases where that is faster than a libcall.

std::pair< SDValue, SDValue > EmitTargetCodeForMemcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, SDValue Src2, SDValue Size, const CallInst *CI) const override

Emit target-specific code that performs a memcmp/bcmp, in cases where that is faster than a libcall.

SystemZSelectionDAGInfo()

std::pair< SDValue, SDValue > EmitTargetCodeForStrcmp(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, SDValue Src2, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const override

Emit target-specific code that performs a strcmp, in cases where that is faster than a libcall.

std::pair< SDValue, SDValue > EmitTargetCodeForStrnlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const override

std::pair< SDValue, SDValue > EmitTargetCodeForStrlen(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, const CallInst *CI) const override

std::pair< SDValue, SDValue > EmitTargetCodeForStrcpy(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest, SDValue Src, MachinePointerInfo DestPtrInfo, MachinePointerInfo SrcPtrInfo, bool isStpcpy) const override

Emit target-specific code that performs a strcpy or stpcpy, in cases where that is faster than a libc...

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.

bool isPCREL(unsigned Opcode)

Definition SystemZSelectionDAGInfo.h:35

NodeType

Definition SystemZSelectionDAGInfo.h:24

@ GET_CCMASK

Definition SystemZSelectionDAGInfo.h:31

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