aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2006-08-21 03:42:39 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2006-08-21 01:42:39 +0000
commit70d539ce3a777b83d929c6de70b14a6eb7f3a100 (patch)
treea12516abd37107b901b016eeb00d8d3bf4e3660f /gcc/cgraph.h
parent76395e081fd157eea5646a1dc4add10415d8b330 (diff)
downloadgcc-70d539ce3a777b83d929c6de70b14a6eb7f3a100.zip
gcc-70d539ce3a777b83d929c6de70b14a6eb7f3a100.tar.gz
gcc-70d539ce3a777b83d929c6de70b14a6eb7f3a100.tar.bz2
re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)
PR rtl-optimization/28071 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges twice. * tree-inline.c (copy_bb): Use cgraph_set_call_stmt. * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument. (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function, cgraph_decide_inlining_incrementally): Update use of cgraph_check_inline_limits. * cgraph.c (edge_hash, edge_eq): New function. (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge, cgraph_edge_remove_caller, cgraph_node_remove_callees, cgraph_remove_node): Maintain call site hash. * cgraph.h (struct cgraph_node): Add call_site_hash. (cgraph_set_call_stmt): New function. From-SVN: r116284
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 7b69611..668d7a7 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -133,6 +133,9 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous")))
/* Pointer to a single unique cgraph node for this function. If the
function is to be output, this is the copy that will survive. */
struct cgraph_node *master_clone;
+ /* For functions with many calls sites it holds map from call expression
+ to the edge to speed up cgraph_edge function. */
+ htab_t GTY((param_is (struct cgraph_edge))) call_site_hash;
PTR GTY ((skip)) aux;
@@ -266,6 +269,7 @@ struct cgraph_edge *cgraph_create_edge (struct cgraph_node *,
struct cgraph_node *cgraph_node (tree);
struct cgraph_node *cgraph_node_for_asm (tree asmname);
struct cgraph_edge *cgraph_edge (struct cgraph_node *, tree);
+void cgraph_set_call_stmt (struct cgraph_edge *, tree);
struct cgraph_local_info *cgraph_local_info (tree);
struct cgraph_global_info *cgraph_global_info (tree);
struct cgraph_rtl_info *cgraph_rtl_info (tree);