> > That is, have a tree_may_be_mergeable_p (), call it during the DFS > walk storing it alongside the visited edges and thus obtain a result > for each SCC, stream that as a flag (a special hash value is ugly, > but well ... I guess it works). The important part is to make an SCC > !tree_may_be_mergeable_p () if any of the outgoing edges from an SCC > are !tree_may_be_mergeable_p (). You seem to miss this.
This is what I am trying to do by the hashing. scc_hash is now 1 for any SCC that refers to scc with hash 1. So non-mergeability propagates. Honza