http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55860
--- Comment #4 from Jeffrey A. Law <law at redhat dot com> --- BTW, I did look at walking up the CFG to discover edge equivalences we could add to our tables. We don't have access to the path through the dominator tree that we've followed, so I had to use a fairly conservative "if we have a single pred, record equivalences implied by traversing that incoming edge" and recurse. While it does clearly enter more stuff into the tables, it's not useful in practice. With my bucket of testfiles, there were only a dozen or so cases where the additional table entries made any difference in what edges we could thread and in fact we were missing jump threads. The cause was replacing a constant equivalence in the table with an equivalence to another SSA_NAME. That's an artifact of walking up the CFG recording as we go. Instead we need to record in reverse order. Fixing that results in no differences before/after adding the new equivalences. I'm going to leave this open because it is a good example of what we'd like to do with a revamp to use Bodik's work. But I'm not planning to work on it in the immediate future.