llvm-6502/lib
Chris Lattner 199ba42cbf 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80215 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 06:29:33 +00:00
..
Analysis Unbreak CMake build 2009-08-26 16:33:57 +00:00
Archive Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
AsmParser Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. 2009-08-26 05:01:18 +00:00
Bitcode Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. 2009-08-26 05:01:18 +00:00
CodeGen Revert accidental commit. 2009-08-27 03:32:50 +00:00
CompilerDriver convert LoopInfo.h and GraphWriter.h to use raw_ostream 2009-08-23 07:19:13 +00:00
Debugger Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
ExecutionEngine Initialize the PoisonMemory member before initializing 2009-08-27 01:25:57 +00:00
Linker Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
MC Update CMake 2009-08-27 02:08:37 +00:00
Support Make LLVM command-line tools overwrite their output files without -f. 2009-08-25 15:34:52 +00:00
System remove the last uses of Config/alloca.h 2009-08-23 22:57:38 +00:00
Target Fix PR4789. Teach eliminateFrameIndex how to handle VLDRQ and VSTRQ which cannot fold any immediate offset. 2009-08-27 01:23:50 +00:00
Transforms Implement a new optimization in the inliner: if inlining multiple 2009-08-27 06:29:33 +00:00
VMCore Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. 2009-08-26 05:01:18 +00:00
Makefile LLVMC doesn't need ENABLE_PIC to build now. 2009-07-04 03:54:54 +00:00