1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib
Chris Lattner 933f605592 Implement ArgumentPromotion/aggregate-promote.ll
This allows pointers to aggregate objects, whose elements are only read, to
be promoted and passed in by element instead of by reference.  This can
enable a LOT of subsequent optimizations in the caller function.

It's worth pointing out that this stuff happens a LOT of C++ programs, because
objects in templates are generally passed around by reference.  When these
templates are instantiated on small aggregate or scalar types, however, it is
more efficient to pass them in by value than by reference.

This transformation triggers most on C++ codes (e.g. 334 times on eon), but
does happen on C codes as well.  For example, on mesa it triggers 72 times,
and on gcc it triggers 35 times.  this is amazingly good considering that
we are using 'basicaa' so far.

llvm-svn: 12202
2004-03-08 01:04:36 +00:00
..
Analysis Fix a minor bug 2004-03-05 22:04:07 +00:00
AsmParser
Bytecode
CodeGen As I wrote in the docs, simple is the default spiller :-) 2004-03-06 23:08:44 +00:00
Debugger
ExecutionEngine remove obsolete comment 2004-02-26 07:59:22 +00:00
Support Hide variable from other functions. 2004-03-04 17:50:44 +00:00
Target Add memory operand version of conditional move. 2004-03-07 03:19:11 +00:00
Transforms Implement ArgumentPromotion/aggregate-promote.ll 2004-03-08 01:04:36 +00:00
VMCore Doxygenify comments. 2004-03-02 00:22:19 +00:00
Makefile CBackend is no longer here 2004-02-13 23:29:37 +00:00