llvm-project/llvm/lib/Transforms
Daniel Berlin b527b2cf13 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

llvm-svn: 303444
2017-05-19 19:01:27 +00:00
..
Coroutines [coroutines] Handle spills before catchswitch 2017-05-17 03:09:22 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
IPO ThinLTO: Verify bitcode before lauching the ThinLTOCodeGenerator. 2017-05-19 17:55:02 +00:00
InstCombine [InstCombine] add helper to foldXorOfICmps(); NFCI 2017-05-18 20:53:16 +00:00
Instrumentation IR: Give function GlobalValue::getRealLinkageName() a less misleading name: dropLLVMManglingEscape(). 2017-05-16 00:39:01 +00:00
ObjCARC [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
Scalar Last of the major pieces to NewGVN - yay! 2017-05-19 19:01:27 +00:00
Utils [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Vectorize Fix vector pass-through value being unused in IRBuilder::CreateMaskedGather 2017-05-19 10:40:18 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00