Allow updating of loglinks.
Jan Hubicka
jh@suse.cz
Wed Oct 17 07:28:00 GMT 2001
Hi,
this patch makes flow.c to clear loglinks before computing them. This allows
to compute them multiple times during compilation and to update life info
with loglinks already computed.
Honza
Wed Oct 17 16:52:53 CEST 2001 Jan Hubicka <jh@suse.cz>
* flow.c (update_life_info): Clear log links before recomputing them.
*** flow.c.old Wed Oct 17 13:20:02 2001
--- flow.c Wed Oct 17 13:23:48 2001
*************** update_life_info (blocks, extent, prop_f
*** 634,639 ****
--- 634,662 ----
&& (extent == UPDATE_LIFE_LOCAL || blocks))
abort ();
+ /* Clear log links in case we are asked to (re)compute them. */
+ if (prop_flags & PROP_LOG_LINKS)
+ {
+ if (!blocks)
+ {
+ rtx insn;
+ for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
+ if (INSN_P (insn))
+ LOG_LINKS (insn) = 0;
+ }
+ else
+ EXECUTE_IF_SET_IN_SBITMAP (blocks, 0, i,
+ {
+ basic_block bb = BASIC_BLOCK (i);
+ rtx insn;
+
+ for (insn = bb->head; insn != NEXT_INSN (bb->end);
+ insn = NEXT_INSN (insn))
+ if (INSN_P (insn))
+ LOG_LINKS (insn) = 0;
+ });
+ }
+
/* For a global update, we go through the relaxation process again. */
if (extent != UPDATE_LIFE_LOCAL)
{
More information about the Gcc-patches
mailing list