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 14207618Srdivacky#ifndef X86SELECTIONDAGINFO_H 15207618Srdivacky#define X86SELECTIONDAGINFO_H 16207618Srdivacky 17207618Srdivacky#include "llvm/Target/TargetSelectionDAGInfo.h" 18207618Srdivacky 19207618Srdivackynamespace llvm { 20207618Srdivacky 21208599Srdivackyclass X86TargetLowering; 22208599Srdivackyclass X86TargetMachine; 23208599Srdivackyclass X86Subtarget; 24208599Srdivacky 25207618Srdivackyclass X86SelectionDAGInfo : public TargetSelectionDAGInfo { 26208599Srdivacky /// Subtarget - Keep a pointer to the X86Subtarget around so that we can 27208599Srdivacky /// make the right decision when generating code for different targets. 28208599Srdivacky const X86Subtarget *Subtarget; 29208599Srdivacky 30208599Srdivacky const X86TargetLowering &TLI; 31208599Srdivacky 32207618Srdivackypublic: 33208599Srdivacky explicit X86SelectionDAGInfo(const X86TargetMachine &TM); 34207618Srdivacky ~X86SelectionDAGInfo(); 35208599Srdivacky 36208599Srdivacky virtual 37263508Sdim SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl, 38208599Srdivacky SDValue Chain, 39208599Srdivacky SDValue Dst, SDValue Src, 40208599Srdivacky SDValue Size, unsigned Align, 41208599Srdivacky bool isVolatile, 42218893Sdim MachinePointerInfo DstPtrInfo) const; 43208599Srdivacky 44208599Srdivacky virtual 45263508Sdim SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl, 46208599Srdivacky SDValue Chain, 47208599Srdivacky SDValue Dst, SDValue Src, 48208599Srdivacky SDValue Size, unsigned Align, 49208599Srdivacky bool isVolatile, bool AlwaysInline, 50218893Sdim MachinePointerInfo DstPtrInfo, 51218893Sdim MachinePointerInfo SrcPtrInfo) const; 52207618Srdivacky}; 53207618Srdivacky 54207618Srdivacky} 55207618Srdivacky 56207618Srdivacky#endif 57