------- Comment #9 from dberlin at gcc dot gnu dot org 2006-04-08 02:53 ------- Actually, it's not really expensive at all. It's certainly not N^2. The new SCC value numberer for PRE i'm working on gets this case right (and this is in fact, one of the advantages of SCC based value numbering).
You could also do it with an RPO iteration algorithm, which is what open64 does, but that will iterate over defs/uses in changing blocks repeatedly instead of only iterating over the members of the SCC. For this case, i get: Value numbers: n_3 = m_2 n_9 = m_8 n_21 = m_20 Which is what you wanted. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19590