[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-patches
Subject: Re: [PATCH] Fix PR 44919
From: Vladimir Makarov <vmakarov () redhat ! com>
Date: 2010-08-31 20:23:38
Message-ID: 4C7D64CA.3060804 () redhat ! com
[Download RAW message or body]
On 08/24/2010 06:06 AM, Andrey Belevantsev wrote:
> Hello,
>
> As noted in the PR, when we have added support for moving insns
> through mutually exclusive insns, it was made possible to move
> conditional jumps across block boundaries. But we didn't fix
> move_cond_jump accordingly, as it assumes that the jump can be moved
> only through insns in the same block.
> The fix is to support moving a jump through series of fallthru blocks
> which all have only mutually exclusive insns with a jump. So to do
> this, the failing assert was changed to an enable-checking code that
> ensures the several blocks case only happens with mutually exclusive
> insns, that the actual code to do movement is rewritten via
> reorder_insns instead of manual twiddling with PREV/NEXT_INSN and
> df_insn_change_bb.
>
> Now, the ICE can be seen only on 4.4 branch, on trunk the problematic
> code is not generated, so I wonder how we got in 4.4 a series of
> fallthru basic blocks in first place, they seem to exist before the
> scheduler is run. Anyways, even for the branch the fix seems to be
> quite safe.
>
> Bootstrap and test on ia64 is in progress. OK for trunk if it
> succeeds? 4.4? The patch misses adding a test case from PR, this will
> be done of course.
>
> Thanks, Andrey
>
> 2010-08-24 Andrey Belevantsev <abel@ispras.ru>
>
> PR rtl-optimization/44919
>
> * sel-sched.c (move_cond_jump): Remove assert, check that
> the several blocks case can only happen with mutually exclusive
> insns instead. Rewrite the movement code to support moving through
> several basic blocks.
Ok for the trunk and 4.4 branch. Thanks for working on the PR.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic