1 //===-- SystemZSelectionDAGInfo.h - SystemZ 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 SystemZ subclass for TargetSelectionDAGInfo. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef SYSTEMZSELECTIONDAGINFO_H 15 #define SYSTEMZSELECTIONDAGINFO_H 16 17 #include "llvm/Target/TargetSelectionDAGInfo.h" 18 19 namespace llvm { 20 21 class SystemZTargetMachine; 22 23 class SystemZSelectionDAGInfo : public TargetSelectionDAGInfo { 24 public: 25 explicit SystemZSelectionDAGInfo(const SystemZTargetMachine &TM); 26 ~SystemZSelectionDAGInfo(); 27 28 virtual 29 SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 30 SDValue Dst, SDValue Src, 31 SDValue Size, unsigned Align, 32 bool IsVolatile, bool AlwaysInline, 33 MachinePointerInfo DstPtrInfo, 34 MachinePointerInfo SrcPtrInfo) const 35 LLVM_OVERRIDE; 36 37 virtual SDValue 38 EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc DL, 39 SDValue Chain, SDValue Dst, SDValue Byte, 40 SDValue Size, unsigned Align, bool IsVolatile, 41 MachinePointerInfo DstPtrInfo) const; 42 }; 43 44 } 45 46 #endif 47