From c013852d6138f35314ea14f5772f57a975064d4d Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Wed, 20 Nov 2019 20:54:31 +0000 Subject: [PATCH] drop attempt to reuse cgraph callees for -fcallgraph-info The information in cgraph callees is released long before we get to the point in which -fcallgraph-info edges are dumped, or even expanded. It doesn't make sense to retain it longer: the edges created for -fcallgraph-info are much smaller, and they don't even coexist, so not even peak use grows. for gcc/ChangeLog * function.h (CALLEE_FROM_CGRAPH_P): Remove. * function.c (record_final_call): Record even calls that might have been in the cgraph. * toplev.c (dump_final_node_vcg): Skip iteration over cgraph callees. From-SVN: r278529 --- gcc/ChangeLog | 8 ++++++++ gcc/function.c | 3 --- gcc/function.h | 5 +---- gcc/toplev.c | 8 -------- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4700de2067f..31a270ab9a0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-11-20 Alexandre Oliva + + * function.h (CALLEE_FROM_CGRAPH_P): Remove. + * function.c (record_final_call): Record even calls that might + have been in the cgraph. + * toplev.c (dump_final_node_vcg): Skip iteration over cgraph + callees. + 2019-11-20 Janne Blomqvist * configure.ac: Use https for gcc.gnu.org diff --git a/gcc/function.c b/gcc/function.c index 1fe956bd1a5..2534c92487e 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6406,9 +6406,6 @@ rest_of_handle_thread_prologue_and_epilogue (void) void record_final_call (tree callee, location_t location) { - if (!callee || CALLEE_FROM_CGRAPH_P (callee)) - return; - struct callinfo_callee datum = { location, callee }; vec_safe_push (cfun->su->callees, datum); } diff --git a/gcc/function.h b/gcc/function.h index 14794c420a2..beb5c7d0cba 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -192,15 +192,12 @@ public: poly_int64 length; }; -/* Describe emitted builtin calls for -fcallgraph-info. Those that - are not builtin are taken from cgraph edges. */ +/* Describe emitted calls for -fcallgraph-info. */ struct GTY(()) callinfo_callee { location_t location; tree decl; }; -#define CALLEE_FROM_CGRAPH_P(T) \ - (!fndecl_built_in_p (T) && !DECL_IS_BUILTIN (T)) /* Describe dynamic allocation for -fcallgraph-info=da. */ struct GTY(()) callinfo_dalloc diff --git a/gcc/toplev.c b/gcc/toplev.c index cfc757d84ba..059046f40f3 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1093,14 +1093,6 @@ dump_final_node_vcg (FILE *f) dump_final_callee_vcg (f, c->location, c->decl); vec_free (cfun->su->callees); cfun->su->callees = NULL; - - cgraph_node *cnode = cgraph_node::get (current_function_decl); - for (cgraph_edge *e = cnode->callees; e; e = e->next_callee) - if (CALLEE_FROM_CGRAPH_P (e->callee->decl)) - dump_final_callee_vcg (f, gimple_location (e->call_stmt), - e->callee->decl); - for (cgraph_edge *e = cnode->indirect_calls; e; e = e->next_callee) - dump_final_callee_vcg (f, gimple_location (e->call_stmt), NULL); } /* Output stack usage and callgraph info, as requested. */ -- 2.30.2