131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//===-- HexagonSelectionDAGInfo.h - Hexagon SelectionDAG Info ---*- C++ -*-===//
2b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//
3b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//                     The LLVM Compiler Infrastructure
4b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//
5b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum// This file is distributed under the University of Illinois Open Source
6b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum// License. See LICENSE.TXT for details.
7b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//
8b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//===----------------------------------------------------------------------===//
9b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//
10b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum// This file defines the Hexagon subclass for TargetSelectionDAGInfo.
11b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//
12b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum//===----------------------------------------------------------------------===//
13b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
14b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum#ifndef HexagonSELECTIONDAGINFO_H
15b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum#define HexagonSELECTIONDAGINFO_H
16b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
17b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum#include "llvm/Target/TargetSelectionDAGInfo.h"
18b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
19b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicumnamespace llvm {
20b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
21b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicumclass HexagonTargetMachine;
22b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
23b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicumclass HexagonSelectionDAGInfo : public TargetSelectionDAGInfo {
24b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicumpublic:
25b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum  explicit HexagonSelectionDAGInfo(const HexagonTargetMachine &TM);
26b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum  ~HexagonSelectionDAGInfo();
27b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
28b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum  virtual
29b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, DebugLoc dl,
30b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  SDValue Chain,
31b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  SDValue Dst, SDValue Src,
32b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  SDValue Size, unsigned Align,
33b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  bool isVolatile, bool AlwaysInline,
34b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  MachinePointerInfo DstPtrInfo,
35b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum                                  MachinePointerInfo SrcPtrInfo) const;
36b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum};
37b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
38b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum}
39b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum
40b4b54153ad760c69a00a08531abef4ed434a5092Tony Linthicum#endif
41