ipa-branch merge: Enable IPA-SSA

Jan Hubicka jh@suse.cz
Sat Feb 3 17:11:00 GMT 2007


> Jan Hubicka wrote on 01/01/07 12:45:
> 
> >+ static unsigned int
> >+ execute_early_local_optimizations (void)
> >+ {
> >+   if (flag_unit_at_a_time)
> >+     cgraph_state = CGRAPH_STATE_IPA_SSA;
> >+   return 0;
> >+ }
> >+ 
> Need comment before this function.

Oops, sorry, I will add it (it is rather obvious however).
> 
> >Index: passes.c
> >===================================================================
> >*** passes.c	(revision 120286)
> >--- passes.c	(working copy)
> >*************** init_optimization_passes (void)
> >*** 461,483 ****
> >
> Since you have probably changed the flow of activity from parsing to
> optimization, the comment at the start of init_optimization_passes is
> likely stale.

In fact this order of passes in the comment is about the same still, but
I do plan to send changes to this shortly (ie to finish the
passmanagerization and bring frontends away from the middleend pass
queue), so I will definitly update it then.

The plan is to bring majority of logic into pass queue, where the passes
are organized in a way so IPA passes can have local subpasses and avoid
most of the cgraph->frontend->passes->cgraph->whatever traffic.

I hope to have basically two major passes (from cgraph POV):

1) Construction - ie when compilation is driven by the frontend and
functions/variables/units are being finalized and lowered/analyzed by
cgraph.

2) "rest of compilation" that is fully passmanager driven.  I already
have cgraph_state variable to control this since at this stage first all
functions needs to be transefred into SSA, then IPA passes run and
finally everything compile to assembly.  All should be IMO just
organized as passes/subpasses of the main IPA pass queue.

I also think organization would be more obvious if the passes was
organized in tree-like structure in sources, see
http://gcc.gnu.org/ml/gcc-patches/2007-01/msg01645.html
> 
> Could you fix the documentation at the top of the function and modify
> the callgraph documentation in doc/?  It'd be nice to have a clear
> picture of how compilation flows from parsing to the callgraph to
> lowering and into the SSA passes.
> 
> In fact, it would be cool if we could get a Big Picture paper/talk about 
> the whole callgraph/ipa harness at the next summit.

I was considering to not make talk this year, since speaking every year
is bit odd, but if there is interest, I would be happy to prepare
paper+talk.  Perhaps also preparing wiki page documenting current shapre
+ plans would be interesting and make things easier to follow?

Honza
> 
> 
> Thanks.
> 



More information about the Gcc-patches mailing list