LLVM 17.0.0git
AArch64SelectionDAGInfo.h
Go to the documentation of this file.
1//===-- AArch64SelectionDAGInfo.h - AArch64 SelectionDAG Info ---*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the AArch64 subclass for SelectionDAGTargetInfo.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64SELECTIONDAGINFO_H
14#define LLVM_LIB_TARGET_AARCH64_AARCH64SELECTIONDAGINFO_H
15
17
18namespace llvm {
19
21public:
23 const SDLoc &DL, SDValue Chain, SDValue Dst,
24 SDValue SrcOrValue, SDValue Size, Align Alignment,
25 bool isVolatile, MachinePointerInfo DstPtrInfo,
26 MachinePointerInfo SrcPtrInfo) const;
27
29 SDValue Chain, SDValue Dst, SDValue Src,
30 SDValue Size, Align Alignment,
31 bool isVolatile, bool AlwaysInline,
32 MachinePointerInfo DstPtrInfo,
33 MachinePointerInfo SrcPtrInfo) const override;
35 SDValue Chain, SDValue Dst, SDValue Src,
36 SDValue Size, Align Alignment,
37 bool isVolatile, bool AlwaysInline,
38 MachinePointerInfo DstPtrInfo) const override;
41 SDValue Dst, SDValue Src, SDValue Size,
42 Align Alignment, bool isVolatile,
43 MachinePointerInfo DstPtrInfo,
44 MachinePointerInfo SrcPtrInfo) const override;
45
47 SDValue Chain, SDValue Op1, SDValue Op2,
48 MachinePointerInfo DstPtrInfo,
49 bool ZeroData) const override;
50};
51}
52
53#endif
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
uint64_t Size
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.
SDValue EmitMOPS(AArch64ISD::NodeType SDOpcode, SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, SDValue SrcOrValue, SDValue Size, Align Alignment, bool isVolatile, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const
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 EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const override
Emit target-specific code that performs a memset.
SDValue EmitTargetCodeForSetTag(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, MachinePointerInfo DstPtrInfo, bool ZeroData) const override
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.
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
Definition: SelectionDAG.h:221
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition: Alignment.h:39
This class contains a discriminated union of information about pointers in memory operands,...