On 22 January 2012 10:53, Eric Botcazou <[email protected]> wrote:
>> The un-combining thing around line 2800 is somewhat of a kludge and I
>> wouldn't be surprised if there were other fallouts. But your change is
>> clearly correct and looks relatively safe, so OK for trunk and 4.6 branch
>> after full testing.
>
> I overlooked something though: it might be possible for combine_instructions
> to
> try to combine i2 again if the previous combination fails (if it succeeds, i1
> is deleted so this is OK) so the stall LOG_LINKS could be problematic. That's
> why LOG_LINKS (i2) needs to SUBST-ituted like the two lines just above
Do you mean something like this instead ? I'm testing this - Ok if no
regressions ?
Ramana
=== modified file 'gcc/combine.c'
--- gcc/combine.c 2012-01-11 22:59:12 +0000
+++ gcc/combine.c 2012-01-23 08:50:14 +0000
@@ -2865,6 +2865,7 @@
SUBST (PATTERN (i2), XVECEXP (PATTERN (i2), 0, 0));
SUBST (XEXP (SET_SRC (PATTERN (i2)), 0),
SET_DEST (PATTERN (i1)));
+ SUBST (LOG_LINKS (i2), alloc_insn_link (i1, LOG_LINKS (i2)));
}
}
#endif
.
>
> --
> Eric Botcazou