From c692785982889bcb1ebe1a0ee354c3e07a515208 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 10 Mar 2015 12:44:01 +0000 Subject: [PATCH] re PR ipa/44563 (GCC uses a lot of RAM when compiling a large numbers of functions) 2015-03-09 Richard Biener PR middle-end/44563 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit for redirect_all_calls. From-SVN: r221321 --- gcc/ChangeLog | 6 ++++++ gcc/tree-inline.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ddd430ba03c..f2e949bfd6d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-03-10 Richard Biener + + PR middle-end/44563 + * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit + for redirect_all_calls. + 2015-03-10 Marek Polacek * gdbinit.in (pcfun): Define and document. diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index d8abe03e40d..259a3488c34 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -2805,7 +2805,9 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale, maybe_move_debug_stmts_to_successors (id, (basic_block) bb->aux); /* Update call edge destinations. This can not be done before loop info is updated, because we may split basic blocks. */ - if (id->transform_call_graph_edges == CB_CGE_DUPLICATE) + if (id->transform_call_graph_edges == CB_CGE_DUPLICATE + && bb->index != ENTRY_BLOCK + && bb->index != EXIT_BLOCK) redirect_all_calls (id, (basic_block)bb->aux); ((basic_block)bb->aux)->aux = NULL; bb->aux = NULL; -- 2.30.2