[PATCH] D32151: Last of the major pieces to NewGVN - yay!

Daniel Berlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 18 09:06:25 PDT 2017


dberlin added a comment.

In https://reviews.llvm.org/D32151#728967, @Prazek wrote:

> Good job! How many of old gvn tests are still failing with newgvn?


1.

Of them:

1. NewGVN passes all but one or two subtest of each of them.
2. Most of them are things we need to fix in other infrastructure (IE be able to have simplification use value numbering to ignore blocks, etc).
3. The one significant one is that we don't insert inequalities temporarily, which means that we don't eliminate opposite icmps that are not branches.

IE we will handle:

  if (a)
    if (!a)
  
  but not:
  icmp a == b
  icmp a != b

NewGVN is actually on by default for a number of significant LLVM users at this point :)
It also has 15 tests that *GVN* doesn't pass.

Our goal was never to try to get every GVN test before we turned it on by default, only not regress performance :)
Most people already felt GVN did too much. 
I suspect we will meet that goal.


https://reviews.llvm.org/D32151





More information about the llvm-commits mailing list