[PR50878, PATCH] Fix for verify_dominators in -ftree-tail-merge
Tom de Vries
Tom_deVries@mentor.com
Sun Oct 30 09:57:00 GMT 2011
On 10/30/2011 09:20 AM, Tom de Vries wrote:
> Richard,
>
> I have a fix for PR50878.
Sorry, with patch this time.
Thanks,
- Tom
>
> A simplified form of the problem from the test-case of the PR is shown in this
> cfg. Block 12 has as direct dominator block 5.
>
> 5
> / \
> / \
> * *
> 6 7
> | |
> | |
> * *
> 8 9
> \ /
> \ /
> *
> 12
>
> tail_merge_optimize finds that blocks 6 and 7 are duplicates. After replacing
> block 7 by block 6, the cfg looks like this:
>
> 5
> |
> |
> *
> 6
> / \
> / \
> * *
> 8 9
> \ /
> \ /
> *
> 12
>
> The new direct dominator of block 12 is block 6, but the current algorithm only
> recalculates dominator info for blocks 6, 8 and 9.
>
> The patch fixes this by additionally recalculating the dominator info for blocks
> immediately dominated by bb2 (block 6 in the example), if bb2 has a single
> predecessor after replacement.
>
> Bootstapped and reg-tested on x86_64 and i686. Build and reg-tested on MIPS and ARM.
>
> Ok for trunk?
>
> Thanks,
> - Tom
>
> 2011-10-30 Tom de Vries <tom@codesourcery.com>
>
> PR tree-optimization/50878
> * tree-ssa-tail-merge.c (replace_block_by): Recalculate dominator info
> for blocks immediately dominated by bb2, if bb2 has a single predecessor
> after replacement.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr50878.patch
Type: text/x-patch
Size: 681 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20111030/a23ee401/attachment.bin>
More information about the Gcc-patches
mailing list