diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-07-09 09:32:42 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-07-09 09:32:42 +0000 |
commit | f6ea5e0d8007234fc74c1ff6ac2c3ca316c41d92 (patch) | |
tree | 885d12c6564d8dc4cc6042b030eb521372518cbb /lib/Target/SystemZ/SystemZSelectionDAGInfo.h | |
parent | fcb7b97892dad5bc6ae55f513f8a111563078996 (diff) | |
download | llvm-f6ea5e0d8007234fc74c1ff6ac2c3ca316c41d92.tar.gz llvm-f6ea5e0d8007234fc74c1ff6ac2c3ca316c41d92.tar.bz2 llvm-f6ea5e0d8007234fc74c1ff6ac2c3ca316c41d92.tar.xz |
[SystemZ] Use "STC;MVC" for memset
Use "STC;MVC" for memsets that are too big for two STCs or MV...Is yet
small enough for a single MVC. As with memcpy, I'm leaving longer cases
till later.
The number of tests might seem excessive, but f33 & f34 from memset-04.ll
failed the first cut because I'd not added the "?:" on the calculation
of Size1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185918 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SystemZ/SystemZSelectionDAGInfo.h')
-rw-r--r-- | lib/Target/SystemZ/SystemZSelectionDAGInfo.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/SystemZ/SystemZSelectionDAGInfo.h b/lib/Target/SystemZ/SystemZSelectionDAGInfo.h index 39c149137c..9138a9cc08 100644 --- a/lib/Target/SystemZ/SystemZSelectionDAGInfo.h +++ b/lib/Target/SystemZ/SystemZSelectionDAGInfo.h @@ -33,6 +33,12 @@ public: MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE; + + virtual SDValue + EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc DL, + SDValue Chain, SDValue Dst, SDValue Byte, + SDValue Size, unsigned Align, bool IsVolatile, + MachinePointerInfo DstPtrInfo) const; }; } |