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

Daniel Berlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 17 20:43:19 PDT 2017


dberlin created this revision.
Herald added a subscriber: Prazek.

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.

I am still doing benchmarking, tweaking, and testing. on our current
approach, but this was getting large enough to throw up here.

Fixes PR 31125, 31463, PR 31868


https://reviews.llvm.org/D32151

Files:
  include/llvm/Transforms/Scalar/GVNExpression.h
  lib/Transforms/Scalar/NewGVN.cpp
  test/Transforms/NewGVN/completeness.ll
  test/Transforms/NewGVN/storeoverstore.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32151.95526.patch
Type: text/x-patch
Size: 45215 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170418/b4410621/attachment-0001.bin>


More information about the llvm-commits mailing list