Richard Henderson wrote:

> The create_basic_block function will do the right thing
> with ordering the block label and the block note.  No
> need for us to work hard at that within bb-reorder.

This causes:

FAIL: gcc.dg/tree-prof/bb-reorg.c compilation,  -fprofile-use -D_PROFILE_USE 
(internal compiler error)
UNRESOLVED: gcc.dg/tree-prof/bb-reorg.c execution,    -fprofile-use 
-D_PROFILE_USE
FAIL: gcc.dg/tree-prof/pr34999.c compilation,  -fprofile-use -D_PROFILE_USE 
(internal compiler error)
UNRESOLVED: gcc.dg/tree-prof/pr34999.c execution,    -fprofile-use 
-D_PROFILE_USE

because after this patch:

> @@ -1597,35 +1593,27 @@ fix_crossing_conditional_branches (void)
>               new_label = block_label (new_bb);
>             else
>               {
> +               basic_block last_bb;
> +               rtx new_jump;
> +
>                 /* Create new basic block to be dest for
>                    conditional jump.  */
>  
> -               new_bb = create_basic_block (NULL, NULL, last_bb);
> -               new_bb->aux = last_bb->aux;
> -               last_bb->aux = new_bb;
> -               last_bb = new_bb;
>                 /* Put appropriate instructions in new bb.  */
>  
>                 new_label = gen_label_rtx ();
> -               emit_label_before (new_label, BB_HEAD (new_bb));
> +               emit_label (new_label);
>                 BB_HEAD (new_bb) = new_label;

new_bb is now always NULL at this point, and the assignment crashes.

I guess that assignment should now be just deleted as well, since
this is done by create_basic_block later?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  ulrich.weig...@de.ibm.com

Reply via email to