1285163Sdim//=- WebAssemblySelectionDAGInfo.h - WebAssembly SelectionDAG Info -*- C++ -*-// 2285163Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6285163Sdim// 7285163Sdim//===----------------------------------------------------------------------===// 8285163Sdim/// 9285163Sdim/// \file 10341825Sdim/// This file defines the WebAssembly subclass for 11309124Sdim/// SelectionDAGTargetInfo. 12285163Sdim/// 13285163Sdim//===----------------------------------------------------------------------===// 14285163Sdim 15285163Sdim#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H 16285163Sdim#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYSELECTIONDAGINFO_H 17285163Sdim 18309124Sdim#include "llvm/CodeGen/SelectionDAGTargetInfo.h" 19285163Sdim 20285163Sdimnamespace llvm { 21285163Sdim 22309124Sdimclass WebAssemblySelectionDAGInfo final : public SelectionDAGTargetInfo { 23285163Sdimpublic: 24285163Sdim ~WebAssemblySelectionDAGInfo() override; 25353358Sdim SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, const SDLoc &dl, 26353358Sdim SDValue Chain, SDValue Op1, SDValue Op2, 27353358Sdim SDValue Op3, unsigned Align, bool isVolatile, 28353358Sdim bool AlwaysInline, 29353358Sdim MachinePointerInfo DstPtrInfo, 30353358Sdim MachinePointerInfo SrcPtrInfo) const override; 31353358Sdim SDValue EmitTargetCodeForMemmove(SelectionDAG &DAG, const SDLoc &dl, 32353358Sdim SDValue Chain, SDValue Op1, SDValue Op2, 33353358Sdim SDValue Op3, unsigned Align, bool isVolatile, 34353358Sdim MachinePointerInfo DstPtrInfo, 35353358Sdim MachinePointerInfo SrcPtrInfo) const override; 36353358Sdim SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &DL, 37353358Sdim SDValue Chain, SDValue Op1, SDValue Op2, 38353358Sdim SDValue Op3, unsigned Align, bool IsVolatile, 39353358Sdim MachinePointerInfo DstPtrInfo) const override; 40285163Sdim}; 41285163Sdim 42285163Sdim} // end namespace llvm 43285163Sdim 44285163Sdim#endif 45