This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Correct fix for scheduler bug PR11320


On 07/14/11 14:18, Eric Botcazou wrote:
>> Any particular bits you still see that don't get reverted with this patch?
> 
> The ebb_compute_jump_reg_dependencies changes.  The original patch has:
> 
> 	* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
> 	Mark registers live on entry of the fallthrough block and conditionally
> 	set as set by the jump. Mark registers live on entry of non-fallthrough
> 	blocks as used by the jump.
> 
> but you're reverting only:
> 
> 	* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
> 	Mark registers live on entry of the fallthrough block and conditionally
> 	set as set by the jump.
> 

??? 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).


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]