Correct fix for scheduler bug PR11320

Eric Botcazou ebotcazou@adacore.com
Thu Jul 14 13:46:00 GMT 2011


> ??? Original code:
>
>    basic_block b = BLOCK_FOR_INSN (insn);
>     edge e;
>     for (e = b->succ; e; e = e->succ_next)
> !     if ((e->flags & EDGE_FALLTHRU) == 0)
> !       {
> ! 	bitmap_operation (set, set, e->dest->global_live_at_start,
> ! 			  BITMAP_IOR);
> !       }
>   }
>
> Code after the revert:
>
>    FOR_EACH_EDGE (e, ei, b->succs)
> +    if ((e->flags & EDGE_FALLTHRU) == 0)
>        bitmap_ior_into (used, df_get_live_in (e->dest));
>
> As far as I can tell these are identical, modulo the change in variable
> name ("set" -> "used" which seems like a better name).

Yes, the code does the same thing, but the original patch did clear up the 
confusion set/use in sched_analyze_insn and compute_jump_reg_dependencies,
in particular in the comment of the latter.  But OK, never mind.

-- 
Eric Botcazou



More information about the Gcc-patches mailing list