1//===-- BPFSelectionDAGInfo.h - BPF 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 BPF subclass for SelectionDAGTargetInfo.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_BPF_BPFSELECTIONDAGINFO_H
14#define LLVM_LIB_TARGET_BPF_BPFSELECTIONDAGINFO_H
15
16#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
17
18#define GET_SDNODE_ENUM
19#include "BPFGenSDNodeInfo.inc"
20
21namespace llvm {
22
23class BPFSelectionDAGInfo : public SelectionDAGGenTargetInfo {
24public:
25 BPFSelectionDAGInfo();
26
27 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &dl,
28 SDValue Chain, SDValue Dst, SDValue Src,
29 SDValue Size, Align Alignment,
30 bool isVolatile, bool AlwaysInline,
31 MachinePointerInfo DstPtrInfo,
32 MachinePointerInfo SrcPtrInfo) const override;
33
34 unsigned getCommonMaxStoresPerMemFunc() const { return 128; }
35};
36
37} // namespace llvm
38
39#endif
40