blob: d1d66fe76e94db63e6bed9058daeb664521c523f [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,
Chris Lattnere72f2022010-09-21 05:40:29 +000042 MachinePointerInfo DstPtrInfo) const;
Dan Gohmanff7a5622010-05-11 17:31:57 +000043
44 virtual
45 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, DebugLoc dl,
46 SDValue Chain,
47 SDValue Dst, SDValue Src,
48 SDValue Size, unsigned Align,
49 bool isVolatile, bool AlwaysInline,
Chris Lattnere72f2022010-09-21 05:40:29 +000050 MachinePointerInfo DstPtrInfo,
51 MachinePointerInfo SrcPtrInfo) const;
Dan Gohman53c5e422010-04-16 23:04:22 +000052};
53
54}
55
56#endif