Fix sdisel memcpy, memset, memmove lowering:
authorEvan Cheng <evan.cheng@apple.com>
Thu, 1 Apr 2010 06:04:33 +0000 (06:04 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 1 Apr 2010 06:04:33 +0000 (06:04 +0000)
commit255f20f7f76e4ca1ac1c73294852cb6fcb18c77d
treec3bd975c3254d60625b64fcff2c8b918060b6afa
parent48c58bb8610cd475d1acb073694e0d2b4dd7cc8c
Fix sdisel memcpy, memset, memmove lowering:
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
   load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
   ops more effectively.
rdar://7774704

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100090 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.h
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
test/CodeGen/X86/byval7.ll
test/CodeGen/X86/memcpy-2.ll
test/CodeGen/X86/memset-2.ll
test/CodeGen/X86/memset64-on-x86-32.ll
test/CodeGen/X86/small-byval-memcpy.ll
test/CodeGen/X86/unaligned-load.ll