SystemZSelectionDAGInfo.h revision 276479
1103285Sikob//===-- SystemZSelectionDAGInfo.h - SystemZ SelectionDAG Info ---*- C++ -*-===// 2122526Ssimokawa// 3122526Ssimokawa// The LLVM Compiler Infrastructure 4103285Sikob// 5103285Sikob// This file is distributed under the University of Illinois Open Source 6103285Sikob// License. See LICENSE.TXT for details. 7103285Sikob// 8103285Sikob//===----------------------------------------------------------------------===// 9103285Sikob// 10103285Sikob// This file defines the SystemZ subclass for TargetSelectionDAGInfo. 11103285Sikob// 12103285Sikob//===----------------------------------------------------------------------===// 13103285Sikob 14103285Sikob#ifndef SYSTEMZSELECTIONDAGINFO_H 15103285Sikob#define SYSTEMZSELECTIONDAGINFO_H 16103285Sikob 17103285Sikob#include "llvm/Target/TargetSelectionDAGInfo.h" 18103285Sikob 19103285Sikobnamespace llvm { 20103285Sikob 21103285Sikobclass SystemZTargetMachine; 22103285Sikob 23103285Sikobclass SystemZSelectionDAGInfo : public TargetSelectionDAGInfo { 24103285Sikobpublic: 25103285Sikob explicit SystemZSelectionDAGInfo(const DataLayout &DL); 26103285Sikob ~SystemZSelectionDAGInfo(); 27103285Sikob 28103285Sikob SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 29103285Sikob SDValue Dst, SDValue Src, 30103285Sikob SDValue Size, unsigned Align, 31103285Sikob bool IsVolatile, bool AlwaysInline, 32103285Sikob MachinePointerInfo DstPtrInfo, 33103285Sikob MachinePointerInfo SrcPtrInfo) const override; 34103285Sikob 35103285Sikob SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc DL, 36103285Sikob SDValue Chain, SDValue Dst, SDValue Byte, 37103285Sikob SDValue Size, unsigned Align, bool IsVolatile, 38103285Sikob MachinePointerInfo DstPtrInfo) const override; 39103285Sikob 40103285Sikob std::pair<SDValue, SDValue> 41103285Sikob EmitTargetCodeForMemcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 42127468Ssimokawa SDValue Src1, SDValue Src2, SDValue Size, 43103285Sikob MachinePointerInfo Op1PtrInfo, 44103285Sikob MachinePointerInfo Op2PtrInfo) const override; 45103285Sikob 46127468Ssimokawa std::pair<SDValue, SDValue> 47117126Sscottl EmitTargetCodeForMemchr(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 48117126Sscottl SDValue Src, SDValue Char, SDValue Length, 49117732Ssimokawa MachinePointerInfo SrcPtrInfo) const override; 50103285Sikob 51127468Ssimokawa std::pair<SDValue, SDValue> 52112136Ssimokawa EmitTargetCodeForStrcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 53112136Ssimokawa SDValue Dest, SDValue Src, 54103285Sikob MachinePointerInfo DestPtrInfo, 55127468Ssimokawa MachinePointerInfo SrcPtrInfo, 56127468Ssimokawa bool isStpcpy) const override; 57127468Ssimokawa 58127468Ssimokawa std::pair<SDValue, SDValue> 59127468Ssimokawa EmitTargetCodeForStrcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 60127468Ssimokawa SDValue Src1, SDValue Src2, 61127468Ssimokawa MachinePointerInfo Op1PtrInfo, 62127468Ssimokawa MachinePointerInfo Op2PtrInfo) const override; 63127468Ssimokawa 64127468Ssimokawa std::pair<SDValue, SDValue> 65127468Ssimokawa EmitTargetCodeForStrlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 66127468Ssimokawa SDValue Src, 67127468Ssimokawa MachinePointerInfo SrcPtrInfo) const override; 68127468Ssimokawa 69127468Ssimokawa std::pair<SDValue, SDValue> 70103285Sikob EmitTargetCodeForStrnlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, 71103285Sikob SDValue Src, SDValue MaxLength, 72103285Sikob MachinePointerInfo SrcPtrInfo) const override; 73103285Sikob}; 74103285Sikob 75103285Sikob} // end namespace llvm 76103285Sikob 77103285Sikob#endif 78103285Sikob