On 03/24/2011 06:50 AM, Andrey Belevantsev wrote:
Hello,
As noted in the PR audit trail, this is a case when we fail to find a
transformed insn due to incomplete transformation history attached to
it. The earlier fixes of this issue worked only for bookkeeping
copies, but now we need a more general mechanism. Fixed by simply
picking up additional transformation history from the av sets of basic
blocks on the way. The problem can only happen on the bookkeeping
blocks which have somewhat newer av sets available.
Bootstrapping and testing on x86-64 and ia64 is in progress, ok if it
succeeds?
Ok, thanks.
2011-03-24 Andrey Belevantsev <a...@ispras.ru>
gcc/
PR rtl-optimization/48144
* sel-sched-ir.c (merge_history_vect): Factor out from ...
(merge_expr_data): ... here.
(av_set_intersect): Rename to av_set_code_motion_filter.
Update all callers. Call merge_history_vect when an expression
is found in both sets.
* sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
gcc/testsuite
PR rtl-optimization/48144
* gcc.dg/pr48144.c: New test.