[PATCH] D109844: [DSE] Track earliest escape, use for loads in isReadClobber.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 23 14:10:26 PDT 2021


fhahn added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp:1292
+    return I != Iter.first->second &&
+           !isPotentiallyReachable(Iter.first->second, I, nullptr, &DT, &LI);
+  }
----------------
fhahn wrote:
> nikic wrote:
> > It might be worthwhile to add a block reachability cache in the future (possibly that would help with D110094?)
> Sounds good!
It looks like caching reachability for a pair of blocks helps a little bit, but not too much. It does soften the block of  D110094 a bit more, but it only increases the total number of stores removed by 0.04% on my test set (SPEC2006/SPEC2017/MultiSource)

Interestingly, it increases compile-time for `consumer-typeset` and `kimwitu++`. Perhaps there's a better way to cache it.

http://llvm-compile-time-tracker.com/compare.php?from=a4964cf36bb0f777d82d6a1025435bbd9f67bc4f&to=3d62e94919f0786904633c21cbd66866e1e06ef6&stat=instructions

https://github.com/llvm/llvm-project/commit/3d62e94919f0786904633c21cbd66866e1e06ef6


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109844/new/

https://reviews.llvm.org/D109844



More information about the llvm-commits mailing list