blob: 349a7c94621031e463f929d50fe9f0000317c944 [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;
Dan Gohman10e730a2015-06-29 23:51:55 +000031};
32
33} // end namespace llvm
34
35#endif