hanchenye-llvm-project/llvm/test
Chris Lattner d3374e8dfd Implement a new optimization in the inliner: if inlining multiple
calls into a function and if the calls bring in arrays, try to merge
them together to reduce stack size.  For example, in the testcase
we'd previously end up with 4 allocas, now we end up with 2 allocas.

As described in the comments, this is not really the ideal solution
to this problem, but it is surprisingly effective.  For example, on
176.gcc, we end up eliminating 67 arrays at "gccas" time and another
24 at "llvm-ld" time.

One piece of concern that I didn't look into: at -O0 -g with
forced inlining this will almost certainly result in worse debug
info.  I think this is acceptable though given that this is a case
of "debugging optimized code", and we don't want debug info to
prevent the optimizer from doing things anyway.

llvm-svn: 80215
2009-08-27 06:29:33 +00:00
..
Analysis Create a ScalarEvolution-based AliasAnalysis implementation. 2009-08-26 14:53:06 +00:00
Archive
Assembler Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
Bindings/Ocaml Convert the rest of the ocaml types and functions to use context. 2009-08-19 17:32:24 +00:00
Bitcode Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
BugPoint remove nondeterminstic test. 2009-08-08 22:56:37 +00:00
CodeGen Fix PR4789. Teach eliminateFrameIndex how to handle VLDRQ and VSTRQ which cannot fold any immediate offset. 2009-08-27 01:23:50 +00:00
DebugInfo This is passing for PPC on Mac OS X. 2009-08-27 05:49:50 +00:00
ExecutionEngine Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
Feature Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
FrontendAda
FrontendC Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
FrontendC++ Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. 2009-08-26 05:01:18 +00:00
FrontendFortran
FrontendObjC Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. 2009-08-26 05:01:18 +00:00
FrontendObjC++
Integer Now that numbered types have their number printed, it's no longer 2009-08-12 23:54:22 +00:00
LLVMC
Linker Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
MC For now, only run MC tests if X86 is configured. 2009-08-27 06:11:15 +00:00
Other
Scripts llvm-mc/Mach-O: Dump relocations and section data (optionally) in my Mach-O dumper. 2009-08-26 13:57:44 +00:00
TableGen
Transforms Implement a new optimization in the inliner: if inlining multiple 2009-08-27 06:29:33 +00:00
Verifier Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
lib Fix a few typos from the removal of -f. 2009-08-25 15:45:44 +00:00
Makefile The attached patches attempt to fix cross builds. For example, if you 2009-08-18 00:40:33 +00:00
Makefile.tests Remove obsolete -f flags. 2009-08-25 15:38:29 +00:00
TestRunner.sh