llvm/test
Dan Gohman e8be6c6391 Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk
replacement of multiple values. This is slightly more efficient
than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically
could be optimized even further. However, an important property of this
new function is that it handles the case where the source value set and
destination value set overlap. This makes it feasible for isel to use
SelectNodeTo in many very common cases, which is advantageous because
SelectNodeTo avoids a temporary node and it doesn't require CSEMap
updates for users of values that don't change position.

Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to
handle operand lists more efficiently, and to correctly handle a number
of corner cases to which its new wider use exposes it.

This commit also includes a change to the encoding of post-isel opcodes
in SDNodes; now instead of being sandwiched between the target-independent
pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel
opcodes are now represented as negative values. This makes it possible
to test if an opcode is pre-isel or post-isel without having to know
the size of the current target's post-isel instruction set.

These changes speed up llc overall by 3% and reduce memory usage by 10%
on the InstructionCombining.cpp testcase with -fast and -regalloc=local.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-17 19:10:17 +00:00
..
Analysis Stop creating extraneous smax/umax in SCEV. This removes a regression where we 2008-07-12 07:41:32 +00:00
Archive sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
Assembler Fix a bunch of bugs handling vector compare constant expressions, fixing 2008-07-14 05:17:31 +00:00
Bindings/Ocaml Don't send checkpoints to stderr for the vmcore.ml test. 2008-06-11 14:58:01 +00:00
Bitcode Eliminate x86.sse2.punpckh.qdq and x86.sse2.punpckl.qdq. 2008-05-24 02:56:30 +00:00
BugPoint this is unneeded now. 2008-06-16 04:25:39 +00:00
CodeGen Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
DebugInfo Testcase for debug info from data-only files. 2008-07-08 21:57:56 +00:00
ExecutionEngine Add a test case for APInt bug fix in r51999. 2008-06-05 13:42:21 +00:00
Feature Put CPPBackend tests into their own directory and run them only if they're 2008-07-10 22:35:32 +00:00
FrontendAda
FrontendC Testcase for PR2520. 2008-07-08 10:11:36 +00:00
FrontendC++ XFAIL some tests that became failing due to the extra error reporting recently. PR's are created for these. 2008-06-13 16:52:35 +00:00
FrontendFortran Regression test for PR2443. 2008-06-27 14:22:20 +00:00
FrontendObjC Suppress ObjC FE warnings, which cause the test to fail. 2008-06-10 18:00:45 +00:00
Integer Fix some escaping and quoting in RUN lines, mainly involving { and <. In two 2008-06-10 16:04:47 +00:00
lib Regression test for PR2443. 2008-06-27 14:22:20 +00:00
Linker Reimplement LinkFunctionProtos in terms of GetLinkageResult. This fixes 2008-07-14 07:23:24 +00:00
LLVMC Fix the -opt switch and add a test case for it. 2008-05-30 19:56:27 +00:00
Other Put CPPBackend tests into their own directory and run them only if they're 2008-07-10 22:35:32 +00:00
Scripts simplify shell syntax to work better on solaris, patch by 2008-06-25 16:03:42 +00:00
TableGen For all RUN lines starting with "not", redirect stderr to /dev/null so tests 2008-06-10 12:57:32 +00:00
Transforms Make GlobalOpt preserve address spaces when scalar replacing aggregate globals. 2008-07-17 11:59:53 +00:00
Verifier For all RUN lines starting with "not", redirect stderr to /dev/null so tests 2008-06-10 12:57:32 +00:00
Makefile Add EXTRA_OPTIONS on the llvmgxx command line. 2008-04-24 17:59:03 +00:00
Makefile.tests
TestRunner.sh