1234285Sdim//===-- HexagonSelectionDAGInfo.h - Hexagon SelectionDAG Info ---*- C++ -*-===//
2234285Sdim//
3234285Sdim//                     The LLVM Compiler Infrastructure
4234285Sdim//
5234285Sdim// This file is distributed under the University of Illinois Open Source
6234285Sdim// License. See LICENSE.TXT for details.
7234285Sdim//
8234285Sdim//===----------------------------------------------------------------------===//
9234285Sdim//
10234285Sdim// This file defines the Hexagon subclass for TargetSelectionDAGInfo.
11234285Sdim//
12234285Sdim//===----------------------------------------------------------------------===//
13234285Sdim
14234285Sdim#ifndef HexagonSELECTIONDAGINFO_H
15234285Sdim#define HexagonSELECTIONDAGINFO_H
16234285Sdim
17234285Sdim#include "llvm/Target/TargetSelectionDAGInfo.h"
18234285Sdim
19234285Sdimnamespace llvm {
20234285Sdim
21234285Sdimclass HexagonTargetMachine;
22234285Sdim
23234285Sdimclass HexagonSelectionDAGInfo : public TargetSelectionDAGInfo {
24234285Sdimpublic:
25234285Sdim  explicit HexagonSelectionDAGInfo(const HexagonTargetMachine &TM);
26234285Sdim  ~HexagonSelectionDAGInfo();
27234285Sdim
28234285Sdim  virtual
29263509Sdim  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
30234285Sdim                                  SDValue Chain,
31234285Sdim                                  SDValue Dst, SDValue Src,
32234285Sdim                                  SDValue Size, unsigned Align,
33234285Sdim                                  bool isVolatile, bool AlwaysInline,
34234285Sdim                                  MachinePointerInfo DstPtrInfo,
35234285Sdim                                  MachinePointerInfo SrcPtrInfo) const;
36234285Sdim};
37234285Sdim
38234285Sdim}
39234285Sdim
40234285Sdim#endif
41