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: Cgraph thunk reorg


On Fri, May 6, 2011 at 4:02 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> given that the patch has received feedback and I have weekend for fixing the
> fallout, I decided to commit the following version today. ?It contains fix in
> visibility handling of thunks that has shown in Mozilla build.
>
>
> ? ? ? ?* cgraph.c (cgraph_add_thunk): Create real function node instead
> ? ? ? ?of alias node; finalize it and mark needed/reachale; arrange visibility
> ? ? ? ?to be right and add it into the corresponding same comdat group list.
> ? ? ? ?(dump_cgraph_node): Dump thunks.
> ? ? ? ?* cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
> ? ? ? ?cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
> ? ? ? ?cgraph_next_function_with_gimple_body): New functions.
> ? ? ? ?(FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
> ? ? ? ?New macros.
> ? ? ? ?* ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
> ? ? ? ?(ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
> ? ? ? ?* cgraphunit.c (cgraph_finalize_function): Only look into possible
> ? ? ? ?devirtualization when optimizing.
> ? ? ? ?(verify_cgraph_node): Verify thunks.
> ? ? ? ?(cgraph_analyze_function): Analyze thunks.
> ? ? ? ?(cgraph_mark_functions_to_output): Output thunks only in combination
> ? ? ? ?with function they are assigned to.
> ? ? ? ?(assemble_thunk): Turn thunk into non-thunk; don't try to turn
> ? ? ? ?alias into normal node.
> ? ? ? ?(assemble_thunks): New functoin.
> ? ? ? ?(cgraph_expand_function): Use it.
> ? ? ? ?* lto-cgraph.c (lto_output_node): Stream thunks.
> ? ? ? ?(input_overwrite_node): Stream in thunks.
> ? ? ? ?* ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
> ? ? ? ?* lto-streamer-out.c (lto_output): Do not try to output thunk's body.
> ? ? ? ?* ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
> ? ? ? ?* ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
> ? ? ? ?(inline_analyze_function): Do not care about thunk jump functions.
> ? ? ? ?(inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
> ? ? ? ?* ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
> ? ? ? ?* passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
> ? ? ? ?(execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
> ? ? ? ?(ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
> ? ? ? ?(function_called_by_processed_nodes_p): Likewise.
>
> ? ? ? ?* lto.c (lto_materialize_function): Use cgraph_function_with_gimple_body_p.
> ? ? ? ?(add_cgraph_node_to_partition): Do not re-add items to partition; handle thunks.
> ? ? ? ?(add_varpool_node_to_partition): Do not re-add items to partition.

This caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48938


H.J.


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