This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[dataflow] PATCH COMMITTED: Update lower-subreg for dataflow
- From: Ian Lance Taylor <iant at google dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: 23 Apr 2007 15:54:43 -0700
- Subject: [dataflow] PATCH COMMITTED: Update lower-subreg for dataflow
On mainline the lower-subreg pass calls update_life_info to
recalculate REG_DEAD notes. This is incorrect and inappropriate on
dataflow branch, and it was removed a while back. The effect is that
REG_DEAD or REG_UNUSED notes can remain for registers which were
split. This can then lead to errors when compiled with
--enable-check=rtl. This patch removes those notes.
This patch also removes the use of life_blocks, which only existed for
the call to update_life_info which was removed.
Committed to dataflow branch.
Ian
2007-04-23 Ian Lance Taylor <iant@google.com>
* lower-subreg.c (resolve_reg_notes): Discard REG_DEAD and
REG_UNUSED notes for split registers.
(decompose_multiword_subregs): Remove life_blocks.
Index: lower-subreg.c
===================================================================
--- lower-subreg.c (revision 124082)
+++ lower-subreg.c (working copy)
@@ -632,6 +632,8 @@ resolve_reg_notes (rtx insn)
switch (REG_NOTE_KIND (note))
{
case REG_NO_CONFLICT:
+ case REG_DEAD:
+ case REG_UNUSED:
if (resolve_reg_p (XEXP (note, 0)))
delete = true;
break;
@@ -1057,7 +1059,6 @@ decompose_multiword_subregs (void)
if (!bitmap_empty_p (decomposable_context))
{
int hold_no_new_pseudos = no_new_pseudos;
- sbitmap life_blocks;
sbitmap sub_blocks;
unsigned int i;
sbitmap_iterator sbi;
@@ -1067,8 +1068,6 @@ decompose_multiword_subregs (void)
propagate_pseudo_copies ();
no_new_pseudos = 0;
- life_blocks = sbitmap_alloc (last_basic_block);
- sbitmap_zero (life_blocks);
sub_blocks = sbitmap_alloc (last_basic_block);
sbitmap_zero (sub_blocks);
@@ -1167,9 +1166,6 @@ decompose_multiword_subregs (void)
changed = true;
}
}
-
- if (changed)
- SET_BIT (life_blocks, bb->index);
}
}
@@ -1205,7 +1201,6 @@ decompose_multiword_subregs (void)
}
}
- sbitmap_free (life_blocks);
sbitmap_free (sub_blocks);
}