From 9127884102347420f8185b819c137610b7e51126 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sun, 20 Jun 2004 17:03:04 +0000 Subject: [PATCH] re PR middle-end/16089 (unwind-dw2.c:1311: error: insn outside basic block) 2004-06-20 Andrew Pinski PR middle-end/16089 * builtins.c (entry_of_function): Move to ... * cfgrtl.c (entry_of_function): Here and make non-static. * integrate.c (emit_initial_value_sets): Use entry_of_function. * rtl.h (entry_of_function): Prototype. From-SVN: r83415 --- gcc/ChangeLog | 8 ++++++++ gcc/builtins.c | 7 ------- gcc/cfgrtl.c | 7 +++++++ gcc/integrate.c | 2 +- gcc/rtl.h | 1 + 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e1bda733447..744f3967782 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-06-20 Andrew Pinski + + PR middle-end/16089 + * builtins.c (entry_of_function): Move to ... + * cfgrtl.c (entry_of_function): Here and make non-static. + * integrate.c (emit_initial_value_sets): Use entry_of_function. + * rtl.h (entry_of_function): Prototype. + 2004-06-20 Roger Sayle * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. diff --git a/gcc/builtins.c b/gcc/builtins.c index 0959b1f32c8..92a4dc3b2f7 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1206,13 +1206,6 @@ expand_builtin_apply_args_1 (void) return copy_addr_to_reg (XEXP (registers, 0)); } -/* Return RTX to emit after when we want to emit code on the entry of function. */ -static rtx -entry_of_function (void) -{ - return (n_basic_blocks ? BB_HEAD (ENTRY_BLOCK_PTR->next_bb) : get_insns ()); -} - /* __builtin_apply_args returns block of memory allocated on the stack into which is stored the arg pointer, structure value address, static chain, and all the registers that might diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 6e22d80ac84..8ef48d092a1 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -440,6 +440,13 @@ free_bb_for_insn (void) BLOCK_FOR_INSN (insn) = NULL; } +/* Return RTX to emit after when we want to emit code on the entry of function. */ +rtx +entry_of_function (void) +{ + return (n_basic_blocks ? BB_HEAD (ENTRY_BLOCK_PTR->next_bb) : get_insns ()); +} + /* Update insns block within BB. */ void diff --git a/gcc/integrate.c b/gcc/integrate.c index df2c8234ba2..c5befd5cd2f 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1300,7 +1300,7 @@ emit_initial_value_sets (void) seq = get_insns (); end_sequence (); - emit_insn_after (seq, get_insns ()); + emit_insn_after (seq, entry_of_function ()); } /* If the backend knows where to allocate pseudos for hard diff --git a/gcc/rtl.h b/gcc/rtl.h index 34de8725aa0..333c95d507d 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -2199,6 +2199,7 @@ void restore_line_number_status (int old_value); extern void renumber_insns (FILE *); extern void remove_unnecessary_notes (void); extern rtx delete_insn (rtx); +extern rtx entry_of_function (void); extern void delete_insn_chain (rtx, rtx); extern rtx unlink_insn_chain (rtx, rtx); extern rtx delete_insn_and_edges (rtx); -- 2.30.2