[PATCH] Stream cgraph_node.ipa_transforms_to_apply
Jan Hubicka
hubicka@ucw.cz
Mon Nov 5 11:15:00 GMT 2012
> Hi,
>
> the following patch adds streaming ofcgraph_node.ipa_transforms_to_apply
> so that transformation phases of IPA passes are run in LTO too. It is
> done by simple streaming of pass.static_pass_number and then looking
> it up among all_regular_ipa_passes.
>
> Bootstrapped and tested on x86_64-linux, required to make aggregate
> IPA-CP work in LTO.
>
> OK for trunk?
>
> Thanks,
>
> Martin
>
>
> 2012-11-03 Martin Jambor <mjambor@suse.cz>
>
> * lto-cgraph.c: Include tree-pass.h.
> (lto_output_node): Stream node->ipa_transforms_to_apply.
> (input_node): Likewise.
> * Makefile.in (lto-cgraph.o): Add TREE_PASS_H to dependencies.
> + count = streamer_read_hwi (ib);
> + node->ipa_transforms_to_apply = NULL;
> + for (i = 0; i < count; i++)
> + {
> + struct opt_pass *pass;
> + int pi = streamer_read_hwi (ib);
> +
> + for (pass = all_regular_ipa_passes; pass; pass = pass->next)
> + if (pass->static_pass_number == pi)
passes.c compute vector translating IDs to pass structures, please export it and use it here;
OK with this change.
Honza
> + {
> + VEC_safe_push (ipa_opt_pass, heap, node->ipa_transforms_to_apply,
> + (struct ipa_opt_pass_d *) pass);
> + break;
> + }
> + gcc_assert (pass);
> + }
> +
> if (tag == LTO_symtab_analyzed_node)
> ref = streamer_read_hwi (ib);
>
> Index: src/gcc/Makefile.in
> ===================================================================
> --- src.orig/gcc/Makefile.in
> +++ src/gcc/Makefile.in
> @@ -2146,7 +2146,7 @@ lto-cgraph.o: lto-cgraph.c $(CONFIG_H) $
> $(HASHTAB_H) langhooks.h $(BASIC_BLOCK_H) \
> $(TREE_FLOW_H) $(CGRAPH_H) $(FUNCTION_H) $(GGC_H) $(DIAGNOSTIC_CORE_H) \
> $(EXCEPT_H) $(TIMEVAR_H) pointer-set.h $(LTO_STREAMER_H) \
> - $(GCOV_IO_H) $(DATA_STREAMER_H) $(TREE_STREAMER_H)
> + $(GCOV_IO_H) $(DATA_STREAMER_H) $(TREE_STREAMER_H) $(TREE_PASS_H)
> lto-streamer-in.o: lto-streamer-in.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
> $(TM_H) toplev.h $(DIAGNOSTIC_CORE_H) $(EXPR_H) $(FLAGS_H) $(PARAMS_H) \
> input.h $(HASHTAB_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(TREE_PASS_H) \
More information about the Gcc-patches
mailing list