[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