Re: IPA branch

2006-10-05 Thread Razya Ladelsky
Mark Mitchell [EMAIL PROTECTED] wrote on 29/09/2006 01:55:24:

 Razya Ladelsky wrote:
 
  Except for new optimizations, IPCP (currently on mainline) should also 
be 
  transformed to SSA.
  IPCP in SSA code exists on IPA branch, and will be submitted to GCC4.3 

  after IPA branch 
  is committed and some testsuite regressions failing with 
  IPCP+versioning+inlining are fixed.
 
 Is there a project page for this work?
 

Mark,

I integrated SSA IPCP as part of IPA branch page, as it seems the most 
natural place.
IPCP code and also versioning code (used by IPCP and by the inliner) have 
to be translated into
SSA, and so there's a big correlation among the parts.
http://gcc.gnu.org/wiki/ipa-branch

Thanks,
Razya

 Thanks,
 
 -- 
 Mark Mitchell
 CodeSourcery
 [EMAIL PROTECTED]
 (650) 331-3385 x713



Re: IPA branch

2006-10-01 Thread Razya Ladelsky
Mark Mitchell [EMAIL PROTECTED] wrote on 29/09/2006 01:55:24:

 Razya Ladelsky wrote:
 
  Except for new optimizations, IPCP (currently on mainline) should also 
be 
  transformed to SSA.
  IPCP in SSA code exists on IPA branch, and will be submitted to GCC4.3 

  after IPA branch 
  is committed and some testsuite regressions failing with 
  IPCP+versioning+inlining are fixed.
 
 Is there a project page for this work?
 

No, I haven't put a page for this work yet.
Will do so when I get back on Tuesday.
Just thought it's a part of maintaining IPCP after IPA branch changes.

Thanks,
Razya


 Thanks,
 
 -- 
 Mark Mitchell
 CodeSourcery
 [EMAIL PROTECTED]
 (650) 331-3385 x713



Re: IPA branch

2006-09-28 Thread Mark Mitchell

Razya Ladelsky wrote:

Except for new optimizations, IPCP (currently on mainline) should also be 
transformed to SSA.
IPCP in SSA code exists on IPA branch, and will be submitted to GCC4.3 
after IPA branch 
is committed and some testsuite regressions failing with 
IPCP+versioning+inlining are fixed.


Is there a project page for this work?

Thanks,

--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: IPA branch

2006-09-28 Thread Mark Mitchell

Jan Hubicka wrote:


I intended to write the overview in a way to express that some work will
be needed.


Thank you for the detailed explanation.  I think your plans all sound 
reasonable.  I would definitely encourage you to start preparing patches 
and submitting them for review -- and hounding reviewers! -- as soon as 
possible.


Thanks,

--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: IPA branch

2006-09-25 Thread Jan Hubicka
 Jan --
 
 I'm trying to plan for GCC 4.3 Stage 1.  The IPA branch project is 
 clearly a good thing, and you've been working on it for a long time, so 
 I'd really like to get it into GCC 4.3.  However, I'm a little 
 concerned, in reading the project description, that it's not all that 
 far along.  I'm hoping that I'm just not reading the description well, 
 and that you can explain things in a way that makes it obvious to me 
 that the work is actually almost done.
 
 The Wiki page says first part of patches was already sent, but I can't 
 tell how much that is, or how many of the modifications required steps 
 are already done.  Have you completed all the work on the IPA branch 
 itself, so that it's just a problem of merging?  How much of the merging 
 have you actually done?  What version of mainline corresponds to the 
 root of the IPA branch?  Have maintainers with appropriate write 
 privileges reviewed the patches?

Mark,
I intended to write the overview in a way to express that some work will
be needed. In general IPA branch infrastructure is done (and was done
for last version too, I just was traveling and doing scientific work
during almost whole stage 1) and the branch was synchronized with
mainline two weeks ago. It was also used for building SPEC/c++
benchmarks on IA-64/x86 and by Haifa people on PPC so it received some
testing. There is some bitrot from long merging and little SVN problem I
got shortly after summit, but I plan to clean this up while reviewing
the whole diff next week.

I think that rest of work needs to be done on-the-fly while merging as
there are involved interfaces that are touching plans of multiple people

The patch I am referring to is
http://gcc.gnu.org/ml/gcc-patches/2006-06/msg00567.html that is by far
the most noisy patch from the planned series.  I am planning to merge
the branch incrementally (same way as I did for all my past work) -
first localizing the variables, then adding infrastructure for holding
multiple SSA forms, teaching inliner to handle both SSA and non-SSA and
finally switch to it.  Then the optimizations from Haifa folks and my
inliner changes can go in independently.  

I was trying to take care to keep the things organized in a way so the
merge should be relatively safe ie if we stop in middle - I hope we
won´t, we won´t end up with too much dead code or compiler ready for
complete revert) The non-SSA path needs to be preserved for -O0
compilation and the inliner simply handles the SSA datastructures as
additional IL feature rather than having two different implementations
of same thing.

What I am most concerned about is the second step as there are some
datastructure changes (in particular the annotations on variables needs
to be partly privatized as they are shared across multiple functions for
static variables). IPA branch does it in a somewhat kludgy way I
discussed with rth and Diego on the summit.  (I simply keep the
annotations around for static variables for duration of whole
compilation but most of data are reset when new function is being
compiled, that is bit nonsential memory-wise)

While we don't have much better answer (other posibility discussed with
rth is simply bring all annotations to on-side hashtable and modify the
single accestor function, that is cleaner in design but more exensive
way to get into same place). It is probably desirable to move away from
annotations, so I would like to have some time in stage1 to simply drop
off as much as possible making my kludge smaller.  So the plan would be
to do incremental changes to move the pass local data present in
annotations (actually almost everything except for pointer analysis
information) into on-the-side datastructures that is now hopefully
official plan to reduce memory usage too.

The inliner changes/passmanager changes should be all pretty much fine -
only problems I hit there is that inliner occasionally needs fixing
because it does more constant propagation than mainline (instead of
const declared variables, I do all direct uses of SSA name of incomming
parameter) and the constant propagation in inliner is a bit broken,
but most of fixes was pushed upstream and I didn't seen any for a longer
while. There was other issues with SSA updating across EH edges, but we
resolved it on the summit with rth.

There was no reviews from maintainers so far (I hoped to get ones while
possibly merging the stuff to LTO branch), but I hope it will go
fluently ;)) I also organized my plans so I will be in Prague from day
after tomorrow to November and should have time for stage1 work.

Honza
 
 I'm not in any way trying to send a negative signal about this work.  I 
 have every hope that it will be merged soon.  I just want to better 
 understand the situation.
 
 Thanks,
 
 -- 
 Mark Mitchell
 CodeSourcery
 [EMAIL PROTECTED]
 (650) 331-3385 x713


Re: IPA branch

2005-08-06 Thread Andrew Pinski


On Aug 5, 2005, at 9:24 PM, Canqun Yang wrote:


Hi,

Patch from Michael Matz 
(http://gcc.gnu.org/ml/fortran/2005-07/msg00331.html) may partly fixes

the multiple decls problems.


That will only help with the fortran problem,  the C++ front-end have 
the same
issue.  The C front-end have still some issues but most of the problems 
with

multiple decls in the C front-end was fixed in 4.0.0.

-- pinski



Re: IPA branch

2005-08-06 Thread Steven Bosscher
On Saturday 06 August 2005 08:14, Andrew Pinski wrote:
 On Aug 5, 2005, at 9:24 PM, Canqun Yang wrote:
  Hi,
 
  Patch from Michael Matz
  (http://gcc.gnu.org/ml/fortran/2005-07/msg00331.html) may partly fixes
  the multiple decls problems.

 That will only help with the fortran problem,
That is the only problem we have to care about, isn't it?  The C++
front-end folks can fix their own front end.

Gr.
Steven


Re: IPA branch

2005-08-06 Thread Jan Hubicka
 On Saturday 06 August 2005 08:14, Andrew Pinski wrote:
  On Aug 5, 2005, at 9:24 PM, Canqun Yang wrote:
   Hi,
  
   Patch from Michael Matz
   (http://gcc.gnu.org/ml/fortran/2005-07/msg00331.html) may partly fixes
   the multiple decls problems.
 
  That will only help with the fortran problem,
 That is the only problem we have to care about, isn't it?  The C++
 front-end folks can fix their own front end.

There is also problem with the C frontend and KR style declarations.
Either we can refuse functions KR declared in one unit and properly
declared in other unit or we create duplicated decls...  Both is quite
wrong :(

Honza
 
 Gr.
 Steven


Re: IPA branch

2005-08-05 Thread Jan Hubicka
 On Thursday 04 August 2005 19:12, Jan Hubicka wrote:
   Hi,
   I've branches the IPA branch yesterday and re-directed current SPEC
   testers running tree-profiling branch (now officially retired ;) to it.
   ( http://www.suse.de/~aj/SPEC/amd64 ).
   The branch should be used for interprocedural optimization projects that
   has serious chance to get into 4.2 (or perhaps longer term plans as
   long as they won't interfere with merging changes to 4.1).
  
   I plan to implement the SSA based inlining to the branch and will start
   pushing patches probably sometime next week.
  
   I would especially welcome frotend fixes for the multiple decls problems
   so we can compile SPEC in whole program mode wihtout ugly hacks ;))
   Please use IPA in the subject line if you don't want me to miss the
   patches to branch.
 
  Forgot to mention, the tag is ipa-branch ;)
 
 I guess the web pages should be updated with something like the attached?

This looks fine to me.  Thanks!  Perhaps even cvs.html should mention
that tree-profiling was almost fully merged and retired?
Honza
 
 Gr.
 Steven
 
 Index: cvs.html
 ===
 RCS file: /cvs/gcc/wwwdocs/htdocs/cvs.html,v
 retrieving revision 1.198
 diff -u -3 -p -r1.198 cvs.html
 --- cvs.html  28 Jul 2005 21:09:10 -  1.198
 +++ cvs.html  4 Aug 2005 18:30:25 -
 @@ -145,12 +145,10 @@ generally of the form gcc-iX/i_iY
  
  dl
  
 -  dta href=projects/tree-profiling.htmltree-profiling-branch/a/dt
 -  ddThis branch is for the development of profiling heuristics
 -  and profile based optimizations for trees, such as profile driven inline
 -  heuristics.  Another goal of this branch is to demonstrate that maintaining
 -  the CFG and profile information over expanding from GIMPLE trees to RTL
 -  is feasible and can bring considerable performance improvements./dd
 +  dtipa-branch/dt
 +  ddThis is a branch for the development interprocedural optimizations
 +  such as inlining and cloning, interprocedural alias analysis, and so on.
 +  This branch is being maintained by Jan Hubicka/dd
  
dtstruct-reorg-branch/dt
ddThis branch is for the development of structure reorganization
 @@ -476,6 +474,13 @@ be prefixed with the initials of the dis
of the passes.  It has now been merged into mainline for the
4.1 release./dd
  
 +  dta href=projects/tree-profiling.htmltree-profiling-branch/a/dt
 +  ddThis branch is for the development of profiling heuristics
 +  and profile based optimizations for trees, such as profile driven inline
 +  heuristics.  Another goal of this branch is to demonstrate that maintaining
 +  the CFG and profile information over expanding from GIMPLE trees to RTL
 +  is feasible and can bring considerable performance improvements./dd
 +
dtbje-unsw-branch/dt
ddThis branch was dedicated to some research work by Ben Elliston
  at the University of New South Wales (UNSW) on transformation
 Index: projects/tree-profiling.html
 ===
 RCS file: /cvs/gcc/wwwdocs/htdocs/projects/tree-profiling.html,v
 retrieving revision 1.2
 diff -u -3 -p -r1.2 tree-profiling.html
 --- projects/tree-profiling.html  4 Jul 2004 21:00:54 -   1.2
 +++ projects/tree-profiling.html  4 Aug 2005 18:30:25 -
 @@ -6,6 +6,10 @@
  body
  h1Improving GCC's Interprocedural Optimizaion Infrastructure/h1
  
 +h3This page describes the work done in 2005 on the
 +codetree-profiling-branch/code.  This branch is now retired.  Work
 +in the same area (IPA) has continued on the codeipa-branch/code/h3
 +
  pThis page describes ongoing work to improve GCC's infrastructure
  for tree-based interprocedural optimizers. The work is done on a
  branch in GCC's CVS repository called codetree-profiling-branch/code./p


Re: IPA branch

2005-08-05 Thread Gerald Pfeifer
On Fri, 5 Aug 2005, Jan Hubicka wrote:
 I guess the web pages should be updated with something like the attached?

Yes...

 This looks fine to me.  Thanks!  Perhaps even cvs.html should mention
 that tree-profiling was almost fully merged and retired?

...and, yes. ;-)

Minor comments for the original patch:

  +  ddThis is a branch for the development interprocedural optimizations
  +  such as inlining and cloning, interprocedural alias analysis, and so on.
  +  This branch is being maintained by Jan Hubicka/dd

for the development of..., and can you add a full stop at the end?

Gerald