WebAssemblySelectionDAGInfo.h revision 353358
190926Snectar//=- WebAssemblySelectionDAGInfo.h - WebAssembly SelectionDAG Info -*- C++ -*-//
255682Smarkm//
355682Smarkm// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
455682Smarkm// See https://llvm.org/LICENSE.txt for license information.
555682Smarkm// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
655682Smarkm//
755682Smarkm//===----------------------------------------------------------------------===//
855682Smarkm///
955682Smarkm/// \file
1055682Smarkm/// This file defines the WebAssembly subclass for
1178527Sassar/// SelectionDAGTargetInfo.
1255682Smarkm///
1355682Smarkm//===----------------------------------------------------------------------===//
1455682Smarkm
1555682Smarkm#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H
1655682Smarkm#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H
1755682Smarkm
1855682Smarkm#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
1955682Smarkm
2055682Smarkmnamespace llvm {
2172445Sassar
2255682Smarkmclass WebAssemblySelectionDAGInfo final : public SelectionDAGTargetInfo {
2355682Smarkmpublic:
2455682Smarkm  ~WebAssemblySelectionDAGInfo() override;
2555682Smarkm  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &dl,
2655682Smarkm                                  SDValue Chain, SDValue Op1, SDValue Op2,
2755682Smarkm                                  SDValue Op3, unsigned Align, bool isVolatile,
2855682Smarkm                                  bool AlwaysInline,
2955682Smarkm                                  MachinePointerInfo DstPtrInfo,
3055682Smarkm                                  MachinePointerInfo SrcPtrInfo) const override;
3172445Sassar  SDValue EmitTargetCodeForMemmove(SelectionDAG &DAG, const SDLoc &dl,
3255682Smarkm                                   SDValue Chain, SDValue Op1, SDValue Op2,
3355682Smarkm                                   SDValue Op3, unsigned Align, bool isVolatile,
3455682Smarkm                                   MachinePointerInfo DstPtrInfo,
3555682Smarkm                                   MachinePointerInfo SrcPtrInfo) const override;
3655682Smarkm  SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL,
3755682Smarkm                                  SDValue Chain, SDValue Op1, SDValue Op2,
3855682Smarkm                                  SDValue Op3, unsigned Align, bool IsVolatile,
3955682Smarkm                                  MachinePointerInfo DstPtrInfo) const override;
4055682Smarkm};
4172445Sassar
4255682Smarkm} // end namespace llvm
4355682Smarkm
4455682Smarkm#endif
4555682Smarkm