Commit 91278841 by Andrew Pinski Committed by Andrew Pinski

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
parent e0c00392
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> 2004-06-20 Roger Sayle <roger@eyesopen.com>
* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
......
...@@ -1206,13 +1206,6 @@ expand_builtin_apply_args_1 (void) ...@@ -1206,13 +1206,6 @@ expand_builtin_apply_args_1 (void)
return copy_addr_to_reg (XEXP (registers, 0)); 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 /* __builtin_apply_args returns block of memory allocated on
the stack into which is stored the arg pointer, structure the stack into which is stored the arg pointer, structure
value address, static chain, and all the registers that might value address, static chain, and all the registers that might
......
...@@ -440,6 +440,13 @@ free_bb_for_insn (void) ...@@ -440,6 +440,13 @@ free_bb_for_insn (void)
BLOCK_FOR_INSN (insn) = NULL; 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. */ /* Update insns block within BB. */
void void
......
...@@ -1300,7 +1300,7 @@ emit_initial_value_sets (void) ...@@ -1300,7 +1300,7 @@ emit_initial_value_sets (void)
seq = get_insns (); seq = get_insns ();
end_sequence (); 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 /* If the backend knows where to allocate pseudos for hard
......
...@@ -2199,6 +2199,7 @@ void restore_line_number_status (int old_value); ...@@ -2199,6 +2199,7 @@ void restore_line_number_status (int old_value);
extern void renumber_insns (FILE *); extern void renumber_insns (FILE *);
extern void remove_unnecessary_notes (void); extern void remove_unnecessary_notes (void);
extern rtx delete_insn (rtx); extern rtx delete_insn (rtx);
extern rtx entry_of_function (void);
extern void delete_insn_chain (rtx, rtx); extern void delete_insn_chain (rtx, rtx);
extern rtx unlink_insn_chain (rtx, rtx); extern rtx unlink_insn_chain (rtx, rtx);
extern rtx delete_insn_and_edges (rtx); extern rtx delete_insn_and_edges (rtx);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment