llvm-6502/test
Dan Gohman 707e018423 Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal
on any current target and aren't optimized in DAGCombiner. Instead
of using intermediate nodes, expand the operations, choosing between
simple loads/stores, target-specific code, and library calls,
immediately.

Previously, the code to emit optimized code for these operations
was only used at initial SelectionDAG construction time; now it is
used at all times. This fixes some cases where rep;movs was being
used for small copies where simple loads/stores would be better.

This also cleans up code that checks for alignments less than 4;
let the targets make that decision instead of doing it in
target-independent code. This allows x86 to use rep;movs in
low-alignment cases.

Also, this fixes a bug that resulted in the use of rep;stos for
memsets of 0 with non-constant memory size when the alignment was
at least 4. It's better to use the library in this case, which
can be significantly faster when the size is large.

This also preserves more SourceValue information when memory
intrinsics are lowered into simple loads/stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-12 04:36:06 +00:00
..
Analysis Testcase for pr2169. 2008-04-07 17:03:16 +00:00
Archive Delete the svn:executable property on these files, which aren't executable. 2007-07-23 19:26:08 +00:00
Assembler Update bitcode reader and writer to handle multiple return values. 2008-02-26 01:29:32 +00:00
Bindings/Ocaml Expose ExecutionEngine::getTargetData() to c and ocaml bindings. 2008-03-27 00:27:14 +00:00
Bitcode fix this test. 2008-02-17 00:15:25 +00:00
BugPoint Remove llvm-upgrade 2008-02-17 00:15:09 +00:00
C++Frontend Add -m32 to compilation line; test is only valid in 2008-03-10 17:56:53 +00:00
CFrontend Check that bodies and calls but not declarations 2008-04-08 19:31:52 +00:00
CodeGen Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
DebugInfo Remove llvm-upgrade and update tests. 2008-03-10 07:21:50 +00:00
ExecutionEngine Remove llvm-upgrade and update tests. 2008-03-10 07:21:50 +00:00
Feature Support chained aliases for LLVM IR printing. This fixes PR2145 2008-03-22 08:17:17 +00:00
FrontendAda Testcase for gimplify_expr crash caused by an 2008-01-15 19:55:41 +00:00
FrontendObjC Rename these tests to use the appropriate suffixes. 2007-12-11 15:55:52 +00:00
Integer Fix PR1146: parameter attributes are longer part of 2007-11-27 13:23:08 +00:00
lib Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
Linker This passes now 2008-03-10 22:34:11 +00:00
Other Keep track of analysis information inherited from Module pass manager. 2008-03-20 01:09:53 +00:00
Scripts Add a test script for counting lines. This can be used instead of the 2007-08-10 15:07:05 +00:00
TableGen Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
Transforms Add testcase for PR2213. 2008-04-11 05:13:32 +00:00
Verifier Add testcase for prev. commit. Minor fixes 2008-03-22 08:37:05 +00:00
Makefile Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm. 2008-03-18 19:59:04 +00:00
Makefile.tests Failure.sh is dead, remove it. 2007-04-21 20:46:55 +00:00
TestRunner.sh Avoid an infinite loop when TestRunner.sh is run outside of the test dir. 2007-05-18 02:06:03 +00:00