llvm-project/llvm/lib
Geoff Berry 6815468768 [EarlyCSE] Optimize MemoryPhis and reduce memory clobber queries w/ MemorySSA
Summary:
When using MemorySSA, re-optimize MemoryPhis when removing a store since
this may create MemoryPhis with all identical arguments.

Also, when using MemorySSA to check if two MemoryUses are reading from
the same version of the heap, use the defining access instead of calling
getClobberingAccess, since the latter can currently result in many more
AA calls.  Once the MemorySSA use optimization tracking changes are
done, we can remove this limitation, which should result in more loads
being CSE'd.

Reviewers: dberlin

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 284984
2016-10-24 15:54:00 +00:00
..
Analysis [BasicAA] Fix - missed alias in GEP expressions 2016-10-22 02:41:39 +00:00
AsmParser DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
Bitcode Fix spelling mistake in comment. 2016-10-20 10:42:14 +00:00
CodeGen [DAG] enhance computeKnownBits to handle SRL/SRA with vector splat constant 2016-10-23 23:13:31 +00:00
DebugInfo [pdb] added support for dumping globals stream 2016-10-21 19:43:19 +00:00
Demangle Avoid using alignas and constexpr. 2016-09-06 20:36:24 +00:00
ExecutionEngine Fix cross-endianness RuntimeDyld relocation for ARM 2016-10-20 22:15:56 +00:00
Fuzzer [libFuzzer] mutation: insert the size of the input in bytes as one of the ways to mutate a binary integer 2016-10-22 03:48:53 +00:00
IR [AVX-512] Remove masked pmin/pmax intrinsics and autoupgrade to native IR. 2016-10-24 04:04:16 +00:00
IRReader
LTO Remove TimeValue usage from llvm/Support 2016-10-24 10:59:17 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker Typo: nomed struct -> named struct 2016-10-19 20:10:03 +00:00
MC [MC] Fix Various End Of Line Comment checkings 2016-10-24 14:35:29 +00:00
Object [Object] Replace TimeValue with std::chrono 2016-10-24 13:38:27 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes Conditionally eliminate library calls where the result value is not used 2016-10-18 21:36:27 +00:00
ProfileData Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 15:02:18 +00:00
Support [Chrono] Fix !HAVE_FUTIMENS build 2016-10-24 14:19:28 +00:00
TableGen Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Target [PPC] Better codegen for AND, ANY_EXT, SRL sequence 2016-10-24 15:46:58 +00:00
Transforms [EarlyCSE] Optimize MemoryPhis and reduce memory clobber queries w/ MemorySSA 2016-10-24 15:54:00 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00