[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