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