Hi DJ,
We have this at the top of the loop, so I don't think it matters:
next = NEXT_INSN (insn);
if (GET_CODE (insn) != INSN)
continue;
Good point.
However, I think an insn will be skipped if we use NEXT. Perhaps we
want PREV? Or the loop might need to be altered to account for this
potential skipping.
Hmm, I think that just using the NEXT_INSN at the head of the loop
should work. As far as I can tell from looking at the code in
mep_reorg_remove() we are never going to delete an insn that might
involve removing more than one real insn, so we do not have to worry
about side effects. Hence I would suggest the following alternative patch.
OK to apply ?
Cheers
Nick
Index: gcc/config/mep/mep.c
===================================================================
--- gcc/config/mep/mep.c (revision 189108)
+++ gcc/config/mep/mep.c (working copy)
@@ -5096,7 +5096,7 @@
follow, where))
{
count ++;
- next = delete_insn (insn);
+ delete_insn (insn);
if (dump_file)
{
fprintf (dump_file, "\n----- Success! new insn:\n\n");