[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