SystemZSelectionDAGInfo.h revision 8c20158fb0e1e5d747077f065eb0170c5af1fbfa
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 19namespace llvm { 20 21class SystemZTargetMachine; 22 23class SystemZSelectionDAGInfo : public TargetSelectionDAGInfo { 24public: 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 LLVM_OVERRIDE; 42 43 virtual std::pair<SDValue, SDValue> 44 EmitTargetCodeForMemcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 45 SDValue Src1, SDValue Src2, SDValue Size, 46 MachinePointerInfo Op1PtrInfo, 47 MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE; 48 49 virtual std::pair<SDValue, SDValue> 50 EmitTargetCodeForMemchr(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 51 SDValue Src, SDValue Char, SDValue Length, 52 MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE; 53 54 virtual std::pair<SDValue, SDValue> 55 EmitTargetCodeForStrcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 56 SDValue Dest, SDValue Src, 57 MachinePointerInfo DestPtrInfo, 58 MachinePointerInfo SrcPtrInfo, 59 bool isStpcpy) const LLVM_OVERRIDE; 60 61 virtual std::pair<SDValue, SDValue> 62 EmitTargetCodeForStrcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 63 SDValue Src1, SDValue Src2, 64 MachinePointerInfo Op1PtrInfo, 65 MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE; 66 67 virtual std::pair<SDValue, SDValue> 68 EmitTargetCodeForStrlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 69 SDValue Src, MachinePointerInfo SrcPtrInfo) const 70 LLVM_OVERRIDE; 71 72 virtual std::pair<SDValue, SDValue> 73 EmitTargetCodeForStrnlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 74 SDValue Src, SDValue MaxLength, 75 MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE; 76}; 77 78} 79 80#endif 81