blob: 4f30f31eac8cdda9a37848936d04909bccb655c3 [file] [log] [blame]
Dan Gohman53c5e422010-04-16 23:04:22 +00001//===-- X86SelectionDAGInfo.h - X86 SelectionDAG Info -----------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines the X86 subclass for TargetSelectionDAGInfo.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef X86SELECTIONDAGINFO_H
15#define X86SELECTIONDAGINFO_H
16
17#include "llvm/Target/TargetSelectionDAGInfo.h"
18
19namespace llvm {
20
Dan Gohmanff7a5622010-05-11 17:31:57 +000021class X86TargetLowering;
22class X86TargetMachine;
23class X86Subtarget;
24
Dan Gohman53c5e422010-04-16 23:04:22 +000025class X86SelectionDAGInfo : public TargetSelectionDAGInfo {
Dan Gohmanff7a5622010-05-11 17:31:57 +000026 /// Subtarget - Keep a pointer to the X86Subtarget around so that we can
27 /// make the right decision when generating code for different targets.
28 const X86Subtarget *Subtarget;
29
30 const X86TargetLowering &TLI;
31
Dan Gohman53c5e422010-04-16 23:04:22 +000032public:
Dan Gohmanff7a5622010-05-11 17:31:57 +000033 explicit X86SelectionDAGInfo(const X86TargetMachine &TM);
Dan Gohman53c5e422010-04-16 23:04:22 +000034 ~X86SelectionDAGInfo();
Dan Gohmanff7a5622010-05-11 17:31:57 +000035
36 virtual
37 SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, DebugLoc dl,
38 SDValue Chain,
39 SDValue Dst, SDValue Src,
40 SDValue Size, unsigned Align,
41 bool isVolatile,
42 const Value *DstSV,
43 uint64_t DstSVOff) const;
44
45 virtual
46 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, DebugLoc dl,
47 SDValue Chain,
48 SDValue Dst, SDValue Src,
49 SDValue Size, unsigned Align,
50 bool isVolatile, bool AlwaysInline,
51 const Value *DstSV,
52 uint64_t DstSVOff,
53 const Value *SrcSV,
54 uint64_t SrcSVOff) const;
Dan Gohman53c5e422010-04-16 23:04:22 +000055};
56
57}
58
59#endif