diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-12-12 00:42:09 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-12-12 00:42:09 +0000 |
commit | 61f4dfe3693bf68b20748d82ac4dd9bf2f356699 (patch) | |
tree | 47cd7aa5c257fa42db0fa94e4aa0c504592364c9 /lib/Target/ARM/ARMISelLowering.h | |
parent | d0a0d221da55f5e2d97909991d77e7ab91e75426 (diff) | |
download | llvm-61f4dfe3693bf68b20748d82ac4dd9bf2f356699.tar.gz llvm-61f4dfe3693bf68b20748d82ac4dd9bf2f356699.tar.bz2 llvm-61f4dfe3693bf68b20748d82ac4dd9bf2f356699.tar.xz |
Avoid using lossy load / stores for memcpy / memset expansion. e.g.
f64 load / store on non-SSE2 x86 targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169944 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMISelLowering.h')
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.h b/lib/Target/ARM/ARMISelLowering.h index 5a44201ec4..3e78ae3b2d 100644 --- a/lib/Target/ARM/ARMISelLowering.h +++ b/lib/Target/ARM/ARMISelLowering.h @@ -296,6 +296,13 @@ namespace llvm { bool MemcpyStrSrc, MachineFunction &MF) const; + /// isLegalMemOpType - Returns true if it's legal to use load / store of the + /// specified type to expand memcpy / memset inline. This is mostly true + /// for legal types except for some special cases. For example, on X86 + /// targets without SSE2 f64 load / store are done with fldl / fstpl which + /// also does type conversion. + virtual bool isLegalMemOpType(MVT VT) const; + using TargetLowering::isZExtFree; virtual bool isZExtFree(SDValue Val, EVT VT2) const; |