Mark Mitchell <[EMAIL PROTECTED]> wrote on 12/11/2007 18:25:03:
> Richard Guenther wrote:
>
> > For options that are not enabled by default at any -O level the
> documentation
> > should be a help for the user to decide whether to enable or not
enable it.
> > So, yes, if there are non-standard terms used or if there are not
obvious
> > side-effects (like performing function versioning for ipa-cp)
> those should be
> > documented.
> >
> > For example googling for "interprocedural constant propagation" gives
you
> > an idea what it does by citing papers. Googling for "matrix
flattening
> > transposing" instead gives you only patches ;)
>
> To echo Richard: this is a user manual, so we don't need to say exactly
> what the option does, but we have to say when you should use it. :-) In
> other words, we certainly don't want to say anything about SSA names or
> whatever, but we do want to explain what it's for. For interprocedural
> constant propagation, maybe something like:
>
> ==
> This optimization analyzes the program to determine when values passed
> to, or return from, functions are constants and then optimizes
> accordingly. This optimization can substantially increase performance
> if the application has lots of functions that return constants, but,
> because this optimization can create multiple copies of code fragments,
> it may significantly increase code size.
> ==
>
Thanks.
Described these two optimizations in more detail.
O.K now?
Thanks,
Razya
2007-11-20 Razya Ladelsky <[EMAIL PROTECTED]>
* doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
> --
> Mark Mitchell
> CodeSourcery
> [EMAIL PROTECTED]
> (650) 331-3385 x713
Index: invoke.texi
===================================================================
--- invoke.texi (revision 130311)
+++ invoke.texi (working copy)
@@ -328,7 +328,8 @@
-ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm @gol
-fgcse-sm -fif-conversion -fif-conversion2 -finline-functions @gol
-finline-functions-called-once [EMAIL PROTECTED] @gol
--finline-small-functions -fipa-pta -fipa-pure-const -fipa-reference @gol
+-finline-small-functions -fipa-cp -fipa-marix-reorg -fipa-pta @gol
+-fipa-pure-const -fipa-reference @gol
-fipa-type-escape -fivopts -fkeep-inline-functions -fkeep-static-consts @gol
-fmerge-all-constants -fmerge-constants -fmodulo-sched @gol
-fmodulo-sched-allow-regmoves -fmove-loop-invariants -fmudflap @gol
@@ -5715,6 +5716,29 @@
@opindex fipa-pta
Perform interprocedural pointer analysis.
[EMAIL PROTECTED] -fipa-cp
[EMAIL PROTECTED] fipa-cp
+Perform interprocedural constant propagation.
+This optimization analyzes the program to determine when values passed
+to functions are constants and then optimizes accordingly.
+This optimization can substantially increase performance
+if the application has constants passed to functions, but
+because this optimization can create multiple copies of functions,
+it may significantly increase code size.
+
[EMAIL PROTECTED] -fipa-matrix-reorg
[EMAIL PROTECTED] fipa-matrix-reorg
+Perform matrix flattening and transposing.
+Matrix flattening tries to replace a m-dimensional matrix
+with its equivalent n-dimensional matrix, where n < m.
+This reduces the level of indirection needed for accessing the elements
+of the matrix. The second optimization is matrix transposing that
+attemps to change the order of the matrix's dimensions in order to
+improve cache locality.
+Both optimizations need fwhole-program flag.
+Transpoing is enabled only if profiling information is avaliable.
+
+
@item -ftree-sink
@opindex ftree-sink
Perform forward store motion on trees. This flag is
=