This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ipa-branch merge: Enable IPA-SSA


Hi Jan,

On Mon, 1 Jan 2007, Jan Hubicka wrote:
>
> 	* cgraph.c: Include tree-flow.h
> 	(cgraph_add_new-function): Handle IPA_SSA mode; execute early_local_passes.
> 	* cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
> 	* tree-pass.h (pass_all_early_optimizations): Declare.
> 	* cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
> 	early_local_passes.
> 	(cgraph_analyze_function): Do early_local_passes.
> 	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
> 	Do not add referenced vars.
> 	* tree-optimize.c (gate_all_optimizations): Do not execute when not in
> 	SSA form.
> 	(gate_all_early_local_passes): New gate.
> 	(pass_early_local_passes): Use new gate.
> 	(execute_early_local_optimizations): New functions.
> 	(gate_all_early_optimizations): New gate.
> 	(pass_all_early_optimizations): New pass.
> 	(execute_free_datastructures): Free SSA only when initialized.
> 	(gate_init_datastructures): Init only when optimizing.
> 	(tree_lowering_passes): Do early local passes when called late.
> 	* tree-profile.c (do_tree_profiling): Don't profile functions added late.
> 	(do_early_tree_profiling, pass_early_tree_profile): Kill.
> 	* tree-cfg.c (update_modified_stmts): Do not update when operands are not active.
> 	* passes.c (init_optimizations_passes): Reorder so we go into SSA during early_local_passes.
> 	* Makefile.in (cgraph.o): Add dependency on tree-flow.h.
>
> 	* pr16194.c: We now output error on all three functions, not just first one.

This is OK for mainline, though the last line of the ChangeLog entry needs
to read "* gcc.dg/pr16194.c".  I believe that the gate_all_optimizations
change is safe (once in SSA form, we shouldn't introduce error_mark_nodes
or other fatal changes, even if we set errorcount or sorrycount).

If you haven't already, please try and fix the g++.dg/opt/devirt1.C and
gcc.dg/ipa fallout as quickly as possible.  These don't look like blockers
for the merge, and folks will know who to blame for regressions with "ipa"
in the test name.

As always, if Diego has any comments once he returns from vacation,
they'll need to be addressed.  However, this all looks "boilerplate",
even though its invasive, and potentially destabilizing.  I suspect
that it's only latent bugs and tree-ssa pass ordering that might need
to be argued over.

Many thanks again.

Roger
--


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]