This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [PING] PR 43603: Keep dominance info up to date


On 12/07/2010 10:30 AM, Andrey Belevantsev wrote:
Hello,

On 09.11.2010 20:31, Andrey Belevantsev wrote:
Hello,

Ping^2. There is a duplication PR about this bug now (46384). Testing was
fine, I didn't mention it in the previous ping.


Andrey

On 22.10.2010 11:51, Andrey Belevantsev wrote:
Ping. http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00206.html
Andrey

On 04.10.2010 19:45, Andrey Belevantsev wrote:
Hello,

This main patch uses set_immediate_dominator and iterate_fix_dominators
when updating control flow in selective scheduler. The difficulty I had is
that when an unreachable block may be created, you need to defer the update
until the block is removed, so sometimes we avoid updating dominance info
in sel_redirect_edge_and_branch and postpone it to maybe_tidy_empty_bb
instead. I will add testcase from PR 43603, and I need to minimize one from
PR 44233.


Bootstrapped with the other two patches, testing is in progress. Ok for
trunk if it succeeds? Ok for 4.5/4.4 after a week or two?


Andrey

2010-10-04 Andrey Belevantsev <abel@ispras.ru>

PR target/43603
PR target/44233

* haifa-sched.c (sched_create_recovery_edges): Update
dominator info.
* sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
after deleting an empty block.
(sel_remove_bb): Update dominator info after removing a block.
(sel_redirect_edge_and_branch_force): Assert that no unreachable
blocks will be created. Update dominator info.
(sel_redirect_edge_and_branch): Update dominator info when
basic blocks do not become unreachable.
(sel_remove_loop_preheader): Update dominator info.


Ping^3.

Sorry for that, Andrey. I thought somebody else already reviewed it.


The patch is slightly updated (attached) as now Alexander has slightly changed maybe_tidy_empty_bb, and the verify_dominators call has moved to tidy_control_flow.

There are 4 PRs about this problem now (43603, 44233, 46384, 46640), all of those are fixed with the patch. I will minimize two of the larger test cases this week.
Please, do it.

Ok for trunk?

Yes, thanks.



2010-12-07 Andrey Belevantsev <abel@ispras.ru>


PR target/43603

    * haifa-sched.c (sched_create_recovery_edges): Update
    dominator info.
    * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
    after deleting an empty block.
    (tidy_control_flow): Also verify dominators.
    (sel_remove_bb): Update dominator info after removing a block.
    (sel_redirect_edge_and_branch_force): Assert that no unreachable
    blocks will be created. Update dominator info.
    (sel_redirect_edge_and_branch): Update dominator info when
    basic blocks do not become unreachable.
    (sel_remove_loop_preheader): Update dominator info.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]