blob: 0b90ece27dff3e9574c77018f49a625c3fa50214 [file] [log] [blame]
Dan Gohman10e730a2015-06-29 23:51:55 +00001//=- WebAssemblySelectionDAGInfo.h - WebAssembly SelectionDAG Info -*- C++ -*-//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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
Dan Gohman10e730a2015-06-29 23:51:55 +00006//
7//===----------------------------------------------------------------------===//
8///
9/// \file
Adrian Prantl5f8f34e42018-05-01 15:54:18 +000010/// This file defines the WebAssembly subclass for
Benjamin Kramerf9172fd42016-01-27 16:32:26 +000011/// SelectionDAGTargetInfo.
Dan Gohman10e730a2015-06-29 23:51:55 +000012///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H
16#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H
17
Benjamin Kramerf9172fd42016-01-27 16:32:26 +000018#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
Dan Gohman10e730a2015-06-29 23:51:55 +000019
20namespace llvm {
21
Benjamin Kramerf9172fd42016-01-27 16:32:26 +000022class WebAssemblySelectionDAGInfo final : public SelectionDAGTargetInfo {
Dan Gohman10e730a2015-06-29 23:51:55 +000023public:
Dan Gohman10e730a2015-06-29 23:51:55 +000024 ~WebAssemblySelectionDAGInfo() override;
Thomas Livelyd99af232019-02-05 00:49:55 +000025 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &dl,
26 SDValue Chain, SDValue Op1, SDValue Op2,
27 SDValue Op3, unsigned Align, bool isVolatile,
28 bool AlwaysInline,
29 MachinePointerInfo DstPtrInfo,
30 MachinePointerInfo SrcPtrInfo) const override;
Thomas Lively31505662019-02-05 20:57:40 +000031 SDValue EmitTargetCodeForMemmove(SelectionDAG &DAG, const SDLoc &dl,
32 SDValue Chain, SDValue Op1, SDValue Op2,
33 SDValue Op3, unsigned Align, bool isVolatile,
34 MachinePointerInfo DstPtrInfo,
35 MachinePointerInfo SrcPtrInfo) const override;
Thomas Livelybba3f062019-02-13 22:25:18 +000036 SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL,
37 SDValue Chain, SDValue Op1, SDValue Op2,
38 SDValue Op3, unsigned Align, bool IsVolatile,
39 MachinePointerInfo DstPtrInfo) const override;
Dan Gohman10e730a2015-06-29 23:51:55 +000040};
41
42} // end namespace llvm
43
44#endif