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.