Hi,

On Tue, 19 Apr 2011, Easwaran Raman wrote:

> > That is correct but is also what the use of stack_vars[u].representative
> > achieves alone, ...
> >
> >> I am adding a check to that effect.
> >
> > ... without any check.
> >
> > @@ -596,7 +581,8 @@
> >   if (vb->conflicts)
> >     {
> >       EXECUTE_IF_SET_IN_BITMAP (vb->conflicts, 0, u, bi)
> > -       add_stack_var_conflict (a, stack_vars[u].representative);
> > +        if (stack_vars[u].next == EOC && stack_vars[u].representative == u)
> > +          add_stack_var_conflict (a, u);
> >       BITMAP_FREE (vb->conflicts);
> >     }
> >  }
> >
> > What's your objective with this change?  I find the original code clearer.
> 
> Let us say we try to merge 'a' to 'b' and 'a' has conflicts with many
> members of an existing partition C. It is not necessary to add all
> those conflicts to 'b' since they will be never considered in the call
> to union_stack_vars.

Right, that's why I was objecting to your initial change.  The original 
code (adding stack_vars[u].representative to the conflicts of A) made sure 
the target conflict bitmap only got representatives added.  That's why I 
was asking why you changed this area at all.

> I was motivated by your comment on bit-vector bloat to try this, but if 
> this affects readability I'll happily revert back to what it was before.


Ciao,
Michael.

Reply via email to