diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-07-08 09:35:23 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-07-08 09:35:23 +0000 |
commit | dff0009d0ced62b92cb5900bc2203ec40142ba15 (patch) | |
tree | d79c3350233490455c9b9c623ff5376369b3f1c2 /lib/Target/SystemZ/SystemZSelectionDAGInfo.h | |
parent | 12b701beea6f26d2305dc18cf09838da1d068006 (diff) | |
download | llvm-dff0009d0ced62b92cb5900bc2203ec40142ba15.tar.gz llvm-dff0009d0ced62b92cb5900bc2203ec40142ba15.tar.bz2 llvm-dff0009d0ced62b92cb5900bc2203ec40142ba15.tar.xz |
[SystemZ] Use MVC for memcpy
Use MVC for memcpy in cases where a single MVC is enough. Using MVC is
a win for longer copies too, but I'll leave that for later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185802 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZSelectionDAGInfo.h')
-rw-r--r-- | lib/Target/SystemZ/SystemZSelectionDAGInfo.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/Target/SystemZ/SystemZSelectionDAGInfo.h b/lib/Target/SystemZ/SystemZSelectionDAGInfo.h new file mode 100644 index 0000000000..39c149137c --- /dev/null +++ b/lib/Target/SystemZ/SystemZSelectionDAGInfo.h @@ -0,0 +1,40 @@ +//===-- SystemZSelectionDAGInfo.h - SystemZ SelectionDAG Info ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the SystemZ subclass for TargetSelectionDAGInfo. +// +//===----------------------------------------------------------------------===// + +#ifndef SYSTEMZSELECTIONDAGINFO_H +#define SYSTEMZSELECTIONDAGINFO_H + +#include "llvm/Target/TargetSelectionDAGInfo.h" + +namespace llvm { + +class SystemZTargetMachine; + +class SystemZSelectionDAGInfo : public TargetSelectionDAGInfo { +public: + explicit SystemZSelectionDAGInfo(const SystemZTargetMachine &TM); + ~SystemZSelectionDAGInfo(); + + virtual + SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, + SDValue Dst, SDValue Src, + SDValue Size, unsigned Align, + bool IsVolatile, bool AlwaysInline, + MachinePointerInfo DstPtrInfo, + MachinePointerInfo SrcPtrInfo) const + LLVM_OVERRIDE; +}; + +} + +#endif |