From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18322 invoked by alias); 6 Dec 2007 15:41:31 -0000 Received: (qmail 18314 invoked by uid 22791); 6 Dec 2007 15:41:30 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 06 Dec 2007 15:41:20 +0000 Received: from zps78.corp.google.com (zps78.corp.google.com [172.25.146.78]) by smtp-out.google.com with ESMTP id lB6FfAFE026699 for ; Thu, 6 Dec 2007 07:41:10 -0800 Received: from rv-out-0910.google.com (rvbf5.prod.google.com [10.140.82.5]) by zps78.corp.google.com with ESMTP id lB6FevMQ015882 for ; Thu, 6 Dec 2007 07:41:09 -0800 Received: by rv-out-0910.google.com with SMTP id f5so528422rvb for ; Thu, 06 Dec 2007 07:41:09 -0800 (PST) Received: by 10.141.177.2 with SMTP id e2mr2031833rvp.1196955669728; Thu, 06 Dec 2007 07:41:09 -0800 (PST) Received: from legolas.novillo.homelinux.org ( [99.229.48.247]) by mx.google.com with ESMTPS id p4sm674597qba.2007.12.06.07.41.08 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 06 Dec 2007 07:41:08 -0800 (PST) Message-ID: <47581812.1020400@google.com> Date: Thu, 06 Dec 2007 15:41:00 -0000 From: Diego Novillo User-Agent: Thunderbird 2.0.0.9 (X11/20071115) MIME-Version: 1.0 To: Olga Golovanevsky CC: Gerald Pfeifer , Jan Hubicka , Jan Hubicka , Kenneth Zadeck , Daniel Berlin , gcc-patches@gcc.gnu.org Subject: Re: [patch, doc] documenting new options References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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/msg00274.txt.bz2 On 12/06/07 09:14, Olga Golovanevsky wrote: > 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 Two spaces after '.'. This occurs in several places. s/Effective for/This transformation is effective/ > +containing arrays of structures. Available in two compilation modes: > +profile-based, as with @option{-fprofile-generate} and @option ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ profile-based (enabled with @option{-fprofile-generate}) > {-fprofile-use}, > +or static. Require @option{-fipa-type-escape} to provide the safety of ^^^^^^^^^ or static (which uses built-in heuristics). > +transformations. Work as whole program optimization, i.e. require > +@option{-fwhole-program} and @option{-combine} flags. The transformation works only in whole program mode, so it requires @option{-fwhole-program} and @option{-combine} to be enabled. > Cold structures > +can remain intact through > +@option{--param struct-reorg-cold-struct-ratio=@var{value}} option. I'm not sure what you meant to say here. Perhaps "Structures considered "cold" by the transformation are not affected (see @option{--param struct-reorg-cold-struct-ratio=@var{value}})." > + > +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 s/hotest/hottest/ > +used by @option{-fipa-struct-reorg}. We say that if the ratio of > +the current structure count, calculated by profiling, to the hotest What is "current structure count"? s/hotest/hottest/ > +structure count in the program is less than this parameter, then > +structure reorganization is not applied. The default is 10. > + Diego.