1207618Srdivacky//===-- X86SelectionDAGInfo.h - X86 SelectionDAG Info -----------*- C++ -*-===// 2207618Srdivacky// 3207618Srdivacky// The LLVM Compiler Infrastructure 4207618Srdivacky// 5207618Srdivacky// This file is distributed under the University of Illinois Open Source 6207618Srdivacky// License. See LICENSE.TXT for details. 7207618Srdivacky// 8207618Srdivacky//===----------------------------------------------------------------------===// 9207618Srdivacky// 10207618Srdivacky// This file defines the X86 subclass for TargetSelectionDAGInfo. 11207618Srdivacky// 12207618Srdivacky//===----------------------------------------------------------------------===// 13207618Srdivacky 14280031Sdim#ifndef LLVM_LIB_TARGET_X86_X86SELECTIONDAGINFO_H 15280031Sdim#define LLVM_LIB_TARGET_X86_X86SELECTIONDAGINFO_H 16207618Srdivacky 17207618Srdivacky#include "llvm/Target/TargetSelectionDAGInfo.h" 18207618Srdivacky 19207618Srdivackynamespace llvm { 20207618Srdivacky 21208599Srdivackyclass X86TargetLowering; 22208599Srdivackyclass X86TargetMachine; 23208599Srdivackyclass X86Subtarget; 24208599Srdivacky 25207618Srdivackyclass X86SelectionDAGInfo : public TargetSelectionDAGInfo { 26280031Sdim /// Returns true if it is possible for the base register to conflict with the 27280031Sdim /// given set of clobbers for a memory intrinsic. 28280031Sdim bool isBaseRegConflictPossible(SelectionDAG &DAG, 29280031Sdim ArrayRef<unsigned> ClobberSet) const; 30280031Sdim 31207618Srdivackypublic: 32288943Sdim explicit X86SelectionDAGInfo() = default; 33208599Srdivacky 34261991Sdim SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl, 35208599Srdivacky SDValue Chain, 36208599Srdivacky SDValue Dst, SDValue Src, 37208599Srdivacky SDValue Size, unsigned Align, 38208599Srdivacky bool isVolatile, 39276479Sdim MachinePointerInfo DstPtrInfo) const override; 40208599Srdivacky 41261991Sdim SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl, 42208599Srdivacky SDValue Chain, 43208599Srdivacky SDValue Dst, SDValue Src, 44208599Srdivacky SDValue Size, unsigned Align, 45208599Srdivacky bool isVolatile, bool AlwaysInline, 46218893Sdim MachinePointerInfo DstPtrInfo, 47276479Sdim MachinePointerInfo SrcPtrInfo) const override; 48207618Srdivacky}; 49207618Srdivacky 50207618Srdivacky} 51207618Srdivacky 52207618Srdivacky#endif 53