[all-commits] [llvm/llvm-project] e717fd: [DSE, MemorySSA] Traverse use-def chain without Mem...
Florian Hahn via All-commits
all-commits at lists.llvm.org
Thu Aug 27 02:04:10 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: e717fdb0f155deaa03eaae891bd34743e6ffcb64
https://github.com/llvm/llvm-project/commit/e717fdb0f155deaa03eaae891bd34743e6ffcb64
Author: Florian Hahn <flo at fhahn.com>
Date: 2020-08-27 (Thu, 27 Aug 2020)
Changed paths:
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
M llvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
M llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
Log Message:
-----------
[DSE,MemorySSA] Traverse use-def chain without MemSSA Walker.
For DSE with MemorySSA it is beneficial to manually traverse the
defining access, instead of using a MemorySSA walker, so we can
better control the number of steps together with other limits and
also weed out invalid/unprofitable paths early on.
This patch requires a follow-up patch to be most effective, which I will
share soon after putting this patch up.
This temporarily XFAIL's the limit tests, because we now explore more
MemoryDefs that may not alias/clobber the killing def. This will be
improved/fixed by the follow-up patch.
This patch also renames some `Dom*` variables to `Earlier*`, because the
dominance relation is not really used/important here and potentially
confusing.
This patch allows us to aggressively cut down compile time, geomean
-O3 -0.64%, ReleaseThinLTO -1.65%, at the expense of fewer stores
removed. Subsequent patches will increase the number of removed stores
again, while keeping compile-time in check.
http://llvm-compile-time-tracker.com/compare.php?from=d8e3294118a8c5f3f97688a704d5a05b67646012&to=0a929b6978a068af8ddb02d0d4714a2843dd8ba9&stat=instructions
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D86486
More information about the All-commits
mailing list