]> git.proxmox.com Git - rustc.git/blame - src/llvm/lib/Target/X86/X86SelectionDAGInfo.h
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / lib / Target / X86 / X86SelectionDAGInfo.h
CommitLineData
223e47cc
LB
1//===-- 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
1a4d82fc
JJ
14#ifndef LLVM_LIB_TARGET_X86_X86SELECTIONDAGINFO_H
15#define LLVM_LIB_TARGET_X86_X86SELECTIONDAGINFO_H
223e47cc
LB
16
17#include "llvm/Target/TargetSelectionDAGInfo.h"
18
19namespace llvm {
20
21class X86TargetLowering;
22class X86TargetMachine;
23class X86Subtarget;
24
25class X86SelectionDAGInfo : public TargetSelectionDAGInfo {
1a4d82fc
JJ
26 /// Returns true if it is possible for the base register to conflict with the
27 /// given set of clobbers for a memory intrinsic.
28 bool isBaseRegConflictPossible(SelectionDAG &DAG,
29 ArrayRef<unsigned> ClobberSet) const;
223e47cc
LB
30
31public:
1a4d82fc 32 explicit X86SelectionDAGInfo(const DataLayout &DL);
223e47cc
LB
33 ~X86SelectionDAGInfo();
34
1a4d82fc 35 SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl,
223e47cc
LB
36 SDValue Chain,
37 SDValue Dst, SDValue Src,
38 SDValue Size, unsigned Align,
39 bool isVolatile,
1a4d82fc 40 MachinePointerInfo DstPtrInfo) const override;
223e47cc 41
1a4d82fc 42 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
223e47cc
LB
43 SDValue Chain,
44 SDValue Dst, SDValue Src,
45 SDValue Size, unsigned Align,
46 bool isVolatile, bool AlwaysInline,
47 MachinePointerInfo DstPtrInfo,
1a4d82fc 48 MachinePointerInfo SrcPtrInfo) const override;
223e47cc
LB
49};
50
51}
52
53#endif