This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix PR 53701
- From: Alexander Monakov <amonakov at ispras dot ru>
- To: Andrey Belevantsev <abel at ispras dot ru>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 9 Aug 2012 17:19:28 +0400 (MSK)
- Subject: Re: Fix PR 53701
- References: <50239B68.1010208@ispras.ru>
On Thu, 9 Aug 2012, Andrey Belevantsev wrote:
> Hello,
>
> The problem in question is uncovered by the recent speculation patch, it is in
> the handling of expressions blocked by bookkeeping. Those are expressions
> that become unavailable due to the newly created bookkeeping copies. In the
> original algorithm the supported insns and transformations cannot lead to this
> result, but when handling non-separable insns or creating speculative checks
> that unpredictably block certain insns the situation can arise. We just
> filter out all such expressions from the final availability set for
> correctness.
>
> The PR happens because the expression being filtered out can be transformed
> while being moved up, thus we need to look up not only its exact pattern but
> also all its previous forms saved in its history of changes. The patch does
> exactly that, I also clarified the comments w.r.t. this situation.
>
> Bootstrapped and tested on ia64 and x86-64, the PR testcase is minimized, too.
> OK for trunk? Also need to backport this to 4.7 with PR 53975, say on the
> next week.
This is OK.
Thanks.
Alexander