1239313Sdim//===-- HexagonSelectionDAGInfo.h - Hexagon SelectionDAG Info ---*- C++ -*-===//
2239313Sdim//
3251662Sdim//                     The LLVM Compiler Infrastructure
4249423Sdim//
5249423Sdim// This file is distributed under the University of Illinois Open Source
6239313Sdim// License. See LICENSE.TXT for details.
7249423Sdim//
8239313Sdim//===----------------------------------------------------------------------===//
9239313Sdim//
10239313Sdim// This file defines the Hexagon subclass for TargetSelectionDAGInfo.
11239313Sdim//
12239313Sdim//===----------------------------------------------------------------------===//
13239313Sdim
14239313Sdim#ifndef HexagonSELECTIONDAGINFO_H
15239313Sdim#define HexagonSELECTIONDAGINFO_H
16239313Sdim
17239313Sdim#include "llvm/Target/TargetSelectionDAGInfo.h"
18239313Sdim
19249423Sdimnamespace llvm {
20249423Sdim
21239313Sdimclass HexagonTargetMachine;
22239313Sdim
23249423Sdimclass HexagonSelectionDAGInfo : public TargetSelectionDAGInfo {
24249423Sdimpublic:
25239313Sdim  explicit HexagonSelectionDAGInfo(const HexagonTargetMachine &TM);
26239313Sdim  ~HexagonSelectionDAGInfo();
27249423Sdim
28249423Sdim  virtual
29239313Sdim  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
30243830Sdim                                  SDValue Chain,
31249423Sdim                                  SDValue Dst, SDValue Src,
32249423Sdim                                  SDValue Size, unsigned Align,
33249423Sdim                                  bool isVolatile, bool AlwaysInline,
34249423Sdim                                  MachinePointerInfo DstPtrInfo,
35249423Sdim                                  MachinePointerInfo SrcPtrInfo) const;
36249423Sdim};
37249423Sdim
38249423Sdim}
39249423Sdim
40249423Sdim#endif
41249423Sdim