On 12/04/14 02:14, Sebastian Pop wrote:
Sebastian Pop wrote:
a fail I have not seen in the past:
FAIL: gcc.c-torture/compile/pr27571.c -Os (internal compiler error)
I am still investigating why this fails: as far as I can see for now this is
because in copying the FSM path we create an internal loop that is then
discovered by the loop verifier as a natural loop and is not yet in the existing
loop sturctures. I will try to fix this in duplicate_seme by invalidating the
loop structure after we code generated all the FSM paths. I will submit an
updated patch when it passes regtest.
We need at least this patch to fix the fail:
@@ -2518,6 +2518,7 @@ thread_through_all_blocks (bool may_peel_loop_headers)
if (duplicate_seme_region (entry, exit, region, len - 1, NULL))
{
/* We do not update dominance info. */
free_dominance_info (CDI_DOMINATORS);
bitmap_set_bit (threaded_blocks, entry->src->index);
+ retval = true;
}
And this will trigger in the end of the code gen function:
if (retval)
loops_state_set (LOOPS_NEED_FIXUP);
That will fix the loop structures. I'm testing this patch on top of the one I
have just sent out.
That looks correct to me.
Jeff