]> granicus.if.org Git - llvm/commit
Last of the major pieces to NewGVN - yay!
authorDaniel Berlin <dberlin@dberlin.org>
Fri, 19 May 2017 19:01:27 +0000 (19:01 +0000)
committerDaniel Berlin <dberlin@dberlin.org>
Fri, 19 May 2017 19:01:27 +0000 (19:01 +0000)
commitc81a193613e26c0c10a676d2ee55e715ee733e9d
tree7b0da6ca9fb1fb9c88649d169001a13667550639
parentf3e0e8777433af07cf4050918b32de0d6c8b21df
Last of the major pieces to NewGVN - yay!

Summary:
NewGVN: Handle equivalence between phi of ops and op of phis.

This makes our GVN mostly-complete. It would be complete, modulo some
deliberate choices we make.  This means it detects roughly all herband
equivalences in polynomial time, including cases notoriously hard for
other GVN's to detect.  It also detects a very large swath of the
cases we currently rely on instcombine to detect that involve folding
upwards through phis.

Fixes PR 31125, 31463, PR 31868

Reviewers: davide

Subscribers: Prazek, llvm-commits

Differential Revision: https://reviews.llvm.org/D32151

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303444 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/NewGVN.cpp
test/Transforms/NewGVN/completeness.ll [new file with mode: 0644]
test/Transforms/NewGVN/storeoverstore.ll