llvm/test
Chris Lattner beac75da37 implement rdar://6653118 - fastisel should fold loads where possible.
Since mem2reg isn't run at -O0, we get a ton of reloads from the stack,
for example, before, this code:

int foo(int x, int y, int z) {
  return x+y+z;
}

used to compile into:

_foo:                                   ## @foo
	subq	$12, %rsp
	movl	%edi, 8(%rsp)
	movl	%esi, 4(%rsp)
	movl	%edx, (%rsp)
	movl	8(%rsp), %edx
	movl	4(%rsp), %esi
	addl	%edx, %esi
	movl	(%rsp), %edx
	addl	%esi, %edx
	movl	%edx, %eax
	addq	$12, %rsp
	ret

Now we produce:

_foo:                                   ## @foo
	subq	$12, %rsp
	movl	%edi, 8(%rsp)
	movl	%esi, 4(%rsp)
	movl	%edx, (%rsp)
	movl	8(%rsp), %edx
	addl	4(%rsp), %edx    ## Folded load
	addl	(%rsp), %edx     ## Folded load
	movl	%edx, %eax
	addq	$12, %rsp
	ret

Fewer instructions and less register use = faster compiles.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-05 02:18:34 +00:00
..
Analysis remove some noise from tests. 2010-09-02 22:35:33 +00:00
Archive These tests are no longer stored in *CVS*. 2010-08-04 15:58:01 +00:00
Assembler add a new "llvm-dis -show-annotations" option, which causes it to print 2010-09-02 23:21:44 +00:00
Bindings/Ocaml Update ocaml test. 2010-08-28 10:29:41 +00:00
Bitcode Replace NEON vabdl, vaba, and vabal intrinsics with combinations of the 2010-09-03 01:35:08 +00:00
BugPoint XFAIL this on mingw, following remove_arguments_test.ll. 2010-08-24 20:54:50 +00:00
CodeGen implement rdar://6653118 - fastisel should fold loads where possible. 2010-09-05 02:18:34 +00:00
DebugInfo Convert DbgInfoPrinter to use errs() instead of outs(). 2010-08-20 18:03:05 +00:00
ExecutionEngine
Feature remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
FrontendAda
FrontendC update one more test 2010-09-02 23:32:55 +00:00
FrontendC++ Reapply r112623. Included additional check for unused byval argument. 2010-08-31 22:22:42 +00:00
FrontendFortran
FrontendObjC Update tests to not rely on input file's absolute path. 2010-07-27 18:13:53 +00:00
FrontendObjC++ Test case for r110459. Radar 8264751. Test case by Fariborz Jahanian! 2010-08-06 19:02:24 +00:00
Integer we are past the point where these tests are useful. 2010-09-02 22:32:02 +00:00
lib
Linker Reapply r112091 and r111922, support for metadata linking, with a 2010-08-26 15:41:53 +00:00
LLVMC Test: Fix LLVMC tests on CMake. 2010-08-30 14:49:00 +00:00
MC Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky. 2010-09-02 18:53:37 +00:00
Other remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
Scripts coff-dump.py: Fix PR7996. Now it is compatible to Python-2.4. 2010-08-30 15:19:56 +00:00
TableGen Generalize getFieldType to work on all TypedInits. Add a couple of testcases from 2010-09-03 21:00:49 +00:00
Transforms Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedge 2010-09-04 02:42:48 +00:00
Unit
Verifier Reject unrepresentable pointer types in intrinsics. Fixes PR7316. 2010-08-08 06:12:09 +00:00
CMakeLists.txt Test: Fix LLVMC tests on CMake. 2010-08-30 14:49:00 +00:00
lit.cfg Test: Fix LLVMC tests on CMake. 2010-08-30 14:49:00 +00:00
lit.site.cfg.in tests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests. 2010-06-12 16:21:19 +00:00
Makefile Partially revert r112480. Caused test failures. 2010-08-30 15:34:08 +00:00
Makefile.tests
site.exp.in
TestRunner.sh Use exec. 2010-08-29 14:49:00 +00:00