diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-06-20 17:03:04 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-06-20 10:03:04 -0700 |
commit | 9127884102347420f8185b819c137610b7e51126 (patch) | |
tree | db58f3f22a75c656aac8cc7600fc97e0aca34138 /gcc | |
parent | e0c003921ff62fde521a14436bbeac899181a7b3 (diff) | |
download | gcc-9127884102347420f8185b819c137610b7e51126.zip gcc-9127884102347420f8185b819c137610b7e51126.tar.gz gcc-9127884102347420f8185b819c137610b7e51126.tar.bz2 |
re PR middle-end/16089 (unwind-dw2.c:1311: error: insn outside basic block)
2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/builtins.c | 7 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 7 | ||||
-rw-r--r-- | gcc/integrate.c | 2 | ||||
-rw-r--r-- | gcc/rtl.h | 1 |
5 files changed, 17 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e1bda73..744f396 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-06-20 Andrew Pinski <pinskia@physics.uc.edu> + + 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 <roger@eyesopen.com> * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. diff --git a/gcc/builtins.c b/gcc/builtins.c index 0959b1f..92a4dc3 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 6e22d80..8ef48d0 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 df2c823..c5befd5 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 @@ -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); |