From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2892 invoked by alias); 6 Dec 2007 14:16:09 -0000 Received: (qmail 2880 invoked by uid 22791); 6 Dec 2007 14:16:08 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate2.de.ibm.com (HELO mtagate2.de.ibm.com) (195.212.29.151) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 06 Dec 2007 14:15:55 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate2.de.ibm.com (8.13.8/8.13.8) with ESMTP id lB6EFpM7036234 for ; Thu, 6 Dec 2007 14:15:51 GMT Received: from d12av04.megacenter.de.ibm.com (d12av04.megacenter.de.ibm.com [9.149.165.229]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id lB6EFp542719996 for ; Thu, 6 Dec 2007 15:15:51 +0100 Received: from d12av04.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id lB6EFpoB021567 for ; Thu, 6 Dec 2007 15:15:51 +0100 Received: from d12mc102.megacenter.de.ibm.com (d12mc102.megacenter.de.ibm.com [9.149.167.114]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id lB6EFpft021562 for ; Thu, 6 Dec 2007 15:15:51 +0100 Subject: [patch, doc] documenting new options To: Gerald Pfeifer Cc: Diego Novillo , Jan Hubicka , Jan Hubicka , Kenneth Zadeck , Daniel Berlin , gcc-patches@gcc.gnu.org X-Mailer: Lotus Notes Release 7.0 HF85 November 04, 2005 Message-ID: From: Olga Golovanevsky Date: Thu, 06 Dec 2007 14:16:00 -0000 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2007-12/txt/msg00269.txt.bz2 This patch documents recently committed struct-reorg optimization, i.e. -fipa-struct-reorg option and struct-reorg-cold-struct-ratio parameter. Any comments? Ok for mainline? Olga ChangeLog 2007-12-06 Olga Golovanevsky * doc/invoke.texi (Optimize Options): Document new -fipa-struct-reorg option and struct-reorg-cold-struct-ratio parameter. Index: invoke.texi =================================================================== --- invoke.texi (revision 130578) +++ invoke.texi (working copy) @@ -329,13 +329,13 @@ Objective-C and Objective-C++ Dialects}. -fgcse-sm -fif-conversion -fif-conversion2 -finline-functions @gol -finline-functions-called-once -finline-limit=@var{n} @gol -finline-small-functions -fipa-pta -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 --fmudflapir -fmudflapth -fno-branch-count-reg -fno-default-inline @gol --fno-defer-pop -fno-function-cse -fno-guess-branch-probability @gol --fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol --fno-sched-interblock -fno-sched-spec -fno-signed-zeros @gol +-fipa-struct-reorg -fipa-type-escape -fivopts -fkeep-inline-functions @gol +-fkeep-static-consts -fmerge-all-constants -fmerge-constants @gol +-fmodulo-sched -fmodulo-sched-allow-regmoves -fmove-loop-invariants @gol +-fmudflap -fmudflapir -fmudflapth -fno-branch-count-reg @gol +-fno-default-inline -fno-defer-pop -fno-function-cse @gol +-fno-guess-branch-probability -fno-inline -fno-math-errno -fno-peephole @gol +-fno-peephole2 -fno-sched-interblock -fno-sched-spec -fno-signed-zeros @gol -fno-toplevel-reorder -fno-trapping-math -fno-zero-initialized-in-bss @gol -fomit-frame-pointer -foptimize-register-move -foptimize-sibling-calls @gol -fpeel-loops -fpredictive-commoning -fprefetch-loop-arrays @gol @@ -5711,6 +5711,20 @@ Discover which static variables do not e compilation unit. Enabled by default at @option{-O} and higher. +@item -fipa-struct-reorg +@opindex fipa-struct-reorg +Perform structure reorganization optimization, that change C-like structures +layout in order to better utilize spatial locality. Effective for programs +containing arrays of structures. Available in two compilation modes: +profile-based, as with @option{-fprofile-generate} and @option {-fprofile-use}, +or static. Require @option{-fipa-type-escape} to provide the safety of +transformations. Work as whole program optimization, i.e. require +@option{-fwhole-program} and @option{-combine} flags. Cold structures +can remain intact through +@option{--param struct-reorg-cold-struct-ratio=@var{value}} option. + +With this flag, the program debug info reflects a new structure layout. + @item -fipa-pta @opindex fipa-pta Perform interprocedural pointer analysis. @@ -6624,6 +6638,13 @@ of bytes in instantiated fields to the n structure exceeds this parameter, then block copies are not used. The. default is 75. +@item struct-reorg-cold-struct-ratio +The threshold ratio between current and hotest structure counts +used by @option{-fipa-struct-reorg}. We say that if the ratio of +the current structure count, calculated by profiling, to the hotest +structure count in the program is less than this parameter, then +structure reorganization is not applied. The default is 10. + @item max-crossjump-edges The maximum number of incoming edges to consider for crossjumping. The algorithm used by @option{-fcrossjumping} is @math{O(N^2)} in.