[PATCH] Set BB_PARTITION in cfg_layout_split_edge (PR rtl-optimization/33648)

Richard Guenther richard.guenther@gmail.com
Thu Nov 1 23:19:00 GMT 2007


On 11/2/07, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> While rtl_split_block, rtl_split_edge and indirectly also
> cfg_layout_split_block (which calls rtl_split_block) take care of
> initializing of BB_PARTITION of the newly added basic block,
> cfg_layout_split_edge does not (so leave the new bb
> as BB_UNPARTITIONED), which e.g. in case of swing modulo scheduling
> pass which runs in cfglayout mode after bbpart and can call both
> split_block and split_edge results in cfg verification failures, where
> there are fallthrough edges between BB_UNPARTITIONED blocks and
> hot (resp. cold) blocks.  With this patch cfg_layout_split_edge
> will do the same thing for new_bb's BB_PARTITION as rtl_split_edge
> does in normal rtl cfg mode.
>
> Bootstrapped/regtested on x86_64-linux and also tested on the testcase
> with ppc64-linux cross.
>
> Ok for trunk?

Ok.

Thanks,
Richard.

> 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
>
>         PR rtl-optimization/33648
>         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
>         the newly created basic block.
>
>         * gcc.dg/pr33648.c: New test.



More information about the Gcc-patches mailing list