153c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//===-- X86SelectionDAGInfo.h - X86 SelectionDAG Info -----------*- C++ -*-===//
253c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//
353c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//                     The LLVM Compiler Infrastructure
453c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//
553c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman// This file is distributed under the University of Illinois Open Source
653c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman// License. See LICENSE.TXT for details.
753c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//
853c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//===----------------------------------------------------------------------===//
953c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//
1053c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman// This file defines the X86 subclass for TargetSelectionDAGInfo.
1153c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//
1253c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman//===----------------------------------------------------------------------===//
1353c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
1453c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman#ifndef X86SELECTIONDAGINFO_H
1553c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman#define X86SELECTIONDAGINFO_H
1653c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
1753c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman#include "llvm/Target/TargetSelectionDAGInfo.h"
1853c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
1953c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohmannamespace llvm {
2053c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
21ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohmanclass X86TargetLowering;
22ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohmanclass X86TargetMachine;
23ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohmanclass X86Subtarget;
24ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman
2553c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohmanclass X86SelectionDAGInfo : public TargetSelectionDAGInfo {
2653c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohmanpublic:
27cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines  explicit X86SelectionDAGInfo(const DataLayout &DL);
2853c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman  ~X86SelectionDAGInfo();
29ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman
30ac6d9bec671252dd1e596fa71180ff6b39d06b5dAndrew Trick  SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl,
31ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Chain,
32ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Dst, SDValue Src,
33ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Size, unsigned Align,
34ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  bool isVolatile,
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines                                  MachinePointerInfo DstPtrInfo) const override;
36ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman
37ac6d9bec671252dd1e596fa71180ff6b39d06b5dAndrew Trick  SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
38ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Chain,
39ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Dst, SDValue Src,
40ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  SDValue Size, unsigned Align,
41ff7a562751604a9fe13efc75bd59622244b54d35Dan Gohman                                  bool isVolatile, bool AlwaysInline,
42e72f2027e9116c55a5b39ac72732df8d6c45d37cChris Lattner                                  MachinePointerInfo DstPtrInfo,
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines                                  MachinePointerInfo SrcPtrInfo) const override;
4453c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman};
4553c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
4653c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman}
4753c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman
4853c5e42ab9c1a2cce7ad19bb0b4dffe33c9473e6Dan Gohman#endif
49