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 =