summaryrefslogtreecommitdiff
path: root/lib/Target/SystemZ/SystemZSelectionDAGInfo.h
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-07-08 09:35:23 +0000
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-07-08 09:35:23 +0000
commitdff0009d0ced62b92cb5900bc2203ec40142ba15 (patch)
treed79c3350233490455c9b9c623ff5376369b3f1c2 /lib/Target/SystemZ/SystemZSelectionDAGInfo.h
parent12b701beea6f26d2305dc18cf09838da1d068006 (diff)
downloadllvm-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.h40
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