Re: [PATCH] AutoFDO patch for trunk

2014-10-22 Thread Dehao Chen
The patch tested OK. And I think it's a trivial patch, and already committed it to trunk. About the perf parser. I'm syncing the toolchain to head which should already have newer kernel support. Thanks, Dehao On Wed, Oct 22, 2014 at 10:07 AM, Xinliang David Li wrote: > Can someone pre-approve t

Re: [PATCH] AutoFDO patch for trunk

2014-10-22 Thread Xinliang David Li
Can someone pre-approve the patch so that Dehao can check it in after basic testing? David On Wed, Oct 22, 2014 at 10:06 AM, David Edelsohn wrote: >> Rainer Orth writes: > >> As Joseph is repeating over and over again, *nothing* must be included >> before config.h, and auto-profile.c violate

Re: [PATCH] AutoFDO patch for trunk

2014-10-22 Thread David Edelsohn
> Rainer Orth writes: > As Joseph is repeating over and over again, *nothing* must be included > before config.h, and auto-profile.c violates this. > > The following patch at least allows the file to compile without errors; > no idea if this the best order for the headers involved. The patch

Re: [PATCH] AutoFDO patch for trunk

2014-10-22 Thread Rainer Orth
Dehao Chen writes: > The updated patch attached. Will commit the patch in 2~3 hours if no > objection is received. Apart from the AIX bootstrap failure your patch introduced, it also breaks Solaris bootstrap: In file included from ./config.h:6:0, from /vol/gcc/src/hg/trunk/loca

[BUILDROBOT] Build failure on AIX (was: [PATCH] AutoFDO patch for trunk)

2014-10-22 Thread Jan-Benedict Glaw
On Mon, 2014-10-20 14:21:19 -0700, Dehao Chen wrote: > The updated patch attached. Will commit the patch in 2~3 hours if no > objection is received. Just noticed that this doesn't build on gcc111, see eg. build #364675 [1], which looks like this: g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUC

Re: [PATCH] AutoFDO patch for trunk

2014-10-21 Thread Markus Trippelsdorf
On 2014.10.21 at 15:31 -0700, Dehao Chen wrote: > Looks like the perf data type is incompatible with quipper (perf data > parser). Can you send me the perf.data file so that I can take a look. PERF_RECORD_MMAP2 (aka 10) was added in Linux 3.12 (commit 13d7a2410f). So your autofdo tool simply doesn

Re: [PATCH] AutoFDO patch for trunk

2014-10-21 Thread Dehao Chen
Looks like the perf data type is incompatible with quipper (perf data parser). Can you send me the perf.data file so that I can take a look. Thanks, Dehao On Tue, Oct 21, 2014 at 2:25 PM, Markus Trippelsdorf wrote: > On 2014.10.21 at 13:53 -0700, Dehao Chen wrote: >> Everything will be the same

Re: [PATCH] AutoFDO patch for trunk

2014-10-21 Thread Markus Trippelsdorf
On 2014.10.21 at 13:53 -0700, Dehao Chen wrote: > Everything will be the same on non-intel CPUs except for the perf command: > > perf record -e instructions -- your program. > > i.e. you need to drop "-b" and use instructions as event. > > Note that the current algorithm is tuned for accurate in

Re: [PATCH] AutoFDO patch for trunk

2014-10-21 Thread Dehao Chen
Everything will be the same on non-intel CPUs except for the perf command: perf record -e instructions -- your program. i.e. you need to drop "-b" and use instructions as event. Note that the current algorithm is tuned for accurate instruction level profile, which is not available on non-Intel C

Re: [PATCH] AutoFDO patch for trunk

2014-10-21 Thread Markus Trippelsdorf
On 2014.10.20 at 14:21 -0700, Dehao Chen wrote: > >> +If @var{path} is specified, GCC looks at the @var{path} to find > >> +the profile feedback data files. > >> + > >> +In order to collect AutoFDO profile, you need to have: > >> + > >> +1. A linux system with linux perf support > >> +2. An Intel p

Re: [PATCH] AutoFDO patch for trunk

2014-10-20 Thread Dehao Chen
The updated patch attached. Will commit the patch in 2~3 hours if no objection is received. Thanks, Dehao On Sun, Oct 19, 2014 at 2:58 AM, Jan Hubicka wrote: >> >> +/* Member functions for string_table. */ >> >> + >> >> +string_table * >> >> +string_table::create () >> > >> > Why this is not a

Re: [PATCH] AutoFDO patch for trunk

2014-10-19 Thread Jan Hubicka
> >> +/* Member functions for string_table. */ > >> + > >> +string_table * > >> +string_table::create () > > > > Why this is not a constructor? > > We use static initializer because it's not suggested to put too much > logic in constructor. Why not? :) > >> +} > > > > The two hunks probably

Re: [PATCH] AutoFDO patch for trunk

2014-10-16 Thread Dehao Chen
Hi, Honza, I've integrated all your comments to the patch. New patch attached. Thanks, Dehao On Wed, Oct 15, 2014 at 7:28 AM, Jan Hubicka wrote: >> Index: gcc/cfgloop.c >> === >> --- gcc/cfgloop.c (revision 215826) >> +++ gcc

Re: [PATCH] AutoFDO patch for trunk

2014-10-15 Thread Jan Hubicka
> Index: gcc/cfgloop.c > === > --- gcc/cfgloop.c (revision 215826) > +++ gcc/cfgloop.c (working copy) > @@ -1802,7 +1802,7 @@ record_niter_bound (struct loop *loop, const wides > } >if (realistic >&& (!loop->an

Re: [PATCH] AutoFDO patch for trunk

2014-10-14 Thread Andi Kleen
Dehao Chen writes: > + > +@item -fauto-profile > +@itemx -fauto-profile=@var{path} > +@opindex fauto-profile > +Enable sampling based feedback directed optimizations, and optimizations > +generally profitable only with profile feedback available. > + > +The following options are enabled: @code{-fb

Re: [PATCH] AutoFDO patch for trunk

2014-10-14 Thread Dehao Chen
The new patch is attached. I used clang-format for format auto-profile.{c|h} Thanks, Dehao On Tue, Oct 14, 2014 at 2:05 PM, Dehao Chen wrote: > On Tue, Oct 14, 2014 at 8:02 AM, Jan Hubicka wrote: >>> Index: gcc/cgraphclones.c >>> =

Re: [PATCH] AutoFDO patch for trunk

2014-10-14 Thread Dehao Chen
On Tue, Oct 14, 2014 at 8:02 AM, Jan Hubicka wrote: >> Index: gcc/cgraphclones.c >> === >> --- gcc/cgraphclones.c(revision 215826) >> +++ gcc/cgraphclones.c(working copy) >> @@ -453,6 +453,11 @@ >> } >>else >>

Re: [PATCH] AutoFDO patch for trunk

2014-10-14 Thread Jan Hubicka
> Index: gcc/cgraphclones.c > === > --- gcc/cgraphclones.c(revision 215826) > +++ gcc/cgraphclones.c(working copy) > @@ -453,6 +453,11 @@ > } >else > count_scale = 0; > + /* In AutoFDO, if edge count is l

Re: [PATCH] AutoFDO patch for trunk

2014-10-09 Thread Dehao Chen
>> >> This will cause bzip2 performance to degrade 6%. I haven't had time to >> triage the problem. Will investigate this later. > > Still I would preffer to make this by default > flag_reorder_blocks_and_partition > to false with auto_profile. We could do that incrementally, lets just drop > thi

Re: [PATCH] AutoFDO patch for trunk

2014-10-09 Thread Jan Hubicka
> >> Index: gcc/bb-reorder.c > >> === > >> --- gcc/bb-reorder.c (revision 210180) > >> +++ gcc/bb-reorder.c (working copy) > >> @@ -2663,7 +2663,7 @@ pass_partition_blocks::gate (function *fun) > >> user defined section attribu

Re: [PATCH] AutoFDO patch for trunk

2014-10-08 Thread Dehao Chen
Hi, Honza, Sorry for the delay. I just picked up the original patch, and updated it with your comments. I've addressed most of your comments. Something else to discuss inlined. I had refactored the patch to make it much less intrusive. New patch is attached (ChangeLog will be added in the final

Re: [PATCH] AutoFDO patch for trunk

2014-05-15 Thread Jan Hubicka
> Index: gcc/auto-profile.c > === > --- gcc/auto-profile.c(revision 0) > +++ gcc/auto-profile.c(revision 0) > @@ -0,0 +1,1584 @@ > +/* Calculate branch probabilities, and basic block execution counts. Update the toplev

Re: [PATCH] AutoFDO patch for trunk

2014-05-15 Thread Jan Hubicka
> Hi, > > I'm planning to port the AutoFDO patch upstream. Attached is the > prepared patch. You can also find the patch in > http://codereview.appspot.com/99010043 > > I've tested the patch with SPECCPU2006. For the CINT2006 benchmarks, > the speedup comparison between O2, FDO and AutoFDO is as

Re: [PATCH] AutoFDO patch for trunk

2014-05-07 Thread Xinliang David Li
Have you announced the autofdo profile tool to gcc list? David On Wed, May 7, 2014 at 2:24 PM, Dehao Chen wrote: > Hi, > > I'm planning to port the AutoFDO patch upstream. Attached is the > prepared patch. You can also find the patch in > http://codereview.appspot.com/99010043 > > I've tested th