aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2004-06-20 17:03:04 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-06-20 10:03:04 -0700
commit9127884102347420f8185b819c137610b7e51126 (patch)
treedb58f3f22a75c656aac8cc7600fc97e0aca34138 /gcc
parente0c003921ff62fde521a14436bbeac899181a7b3 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/builtins.c7
-rw-r--r--gcc/cfgrtl.c7
-rw-r--r--gcc/integrate.c2
-rw-r--r--gcc/rtl.h1
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
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 34de872..333c95d 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);