mirror of git://gcc.gnu.org/git/gcc.git
cfgrtl.c (emit_insn_at_entry): New function.
* cfgrtl.c (emit_insn_at_entry): New function. * rtl.h (emit_insn_at_entry): Declare it. * integrate.c (emit_initial_value_sets): Use it. From-SVN: r116968
This commit is contained in:
parent
61066abfcd
commit
11b904a1fc
|
@ -5,6 +5,10 @@
|
||||||
expanding the number of iterations.
|
expanding the number of iterations.
|
||||||
* config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
|
* config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
|
||||||
|
|
||||||
|
* cfgrtl.c (emit_insn_at_entry): New function.
|
||||||
|
* rtl.h (emit_insn_at_entry): Declare it.
|
||||||
|
* integrate.c (emit_initial_value_sets): Use it.
|
||||||
|
|
||||||
2006-09-15 Kazu Hirata <kazu@codesourcery.com>
|
2006-09-15 Kazu Hirata <kazu@codesourcery.com>
|
||||||
|
|
||||||
* doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
|
* doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
|
||||||
|
|
14
gcc/cfgrtl.c
14
gcc/cfgrtl.c
|
@ -453,6 +453,20 @@ entry_of_function (void)
|
||||||
BB_HEAD (ENTRY_BLOCK_PTR->next_bb) : get_insns ());
|
BB_HEAD (ENTRY_BLOCK_PTR->next_bb) : get_insns ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Emit INSN at the entry point of the function, ensuring that it is only
|
||||||
|
executed once per function. */
|
||||||
|
void
|
||||||
|
emit_insn_at_entry (rtx insn)
|
||||||
|
{
|
||||||
|
edge_iterator ei = ei_start (ENTRY_BLOCK_PTR->succs);
|
||||||
|
edge e = ei_safe_edge (ei);
|
||||||
|
if (!(e->flags & EDGE_FALLTHRU))
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
insert_insn_on_edge (insn, e);
|
||||||
|
commit_edge_insertions ();
|
||||||
|
}
|
||||||
|
|
||||||
/* Update insns block within BB. */
|
/* Update insns block within BB. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -294,7 +294,7 @@ emit_initial_value_sets (void)
|
||||||
seq = get_insns ();
|
seq = get_insns ();
|
||||||
end_sequence ();
|
end_sequence ();
|
||||||
|
|
||||||
emit_insn_after (seq, entry_of_function ());
|
emit_insn_at_entry (seq);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2074,6 +2074,7 @@ extern rtx emit (rtx);
|
||||||
extern void renumber_insns (void);
|
extern void renumber_insns (void);
|
||||||
extern rtx delete_insn (rtx);
|
extern rtx delete_insn (rtx);
|
||||||
extern rtx entry_of_function (void);
|
extern rtx entry_of_function (void);
|
||||||
|
extern void emit_insn_at_entry (rtx);
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue