[llvm-dev] [RFC] Switching to MemorySSA-backed Dead Store Elimination (aka cross-bb DSE)
Alina Sbirlea via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 19 10:46:16 PDT 2020
First, thank you for working on this. I'm really glad to see this work so
close to being enabled.
I think the numbers look good for run time, and the benefits of switching
for all configurations are clear.
For compile time, the current regressions are noticeable, but not a deal
breaker in my opinion. I'm very much in favor of switching in all
To address some of the concerns, it may make sense to lower the threshold
somewhat to minimize impact at this time (we won't have benefits as large
at the time of the switch). I'm talking about getting the geomean closer to
1% in all configurations if possible.
I believe that the regressions introduced by this flag flip can be undone
by further using MemorySSA in the other passes currently using
MemDepAnalysis, and offsetting the cost of computing MemorySSA in the first
place. The threshold could be raised again to enable more stores eliminated
once the MemCpyOpt+MSSA and NewGVN become the default.
If reducing the thresholds is not possible or removes most of the run time
benefits, I would vote for enabling as is.
On Wed, Aug 19, 2020 at 7:37 AM Florian Hahn via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> > On Aug 18, 2020, at 22:14, Florian Hahn via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >> On Aug 18, 2020, at 16:59, Michael Kruse <llvmdev at meinersbur.de> wrote:
> >> Thanks for all the work. The reductions in stores look promising. Do
> you also have performance numbers how much this improves the execution
> time? Did you observe any regressions where MSSA resulted in fewer removed
> > I did not gather numbers for execution time yet, but I’ll try to share
> some tomorrow.
> Here are some execution time results for ARM64 with -O3 -flto with the
> MemorySSA-DSE compared against the current DSE implementation for CINT2006
> (negative % means reduction in execution time with MemorySSA-DSE). This
> excludes small changes within the noise (<= 0.5%)
> Exec_time number of stores removed
> test-suite...T2006/456.hmmer/456.hmmer.test -1.6%. + 70.8%
> test-suite.../CINT2006/403.gcc/403.gcc.test -1.4%. + 35.7%
> test-suite...0.perlbench/400.perlbench.test -1.2%. + 33.2%
> test-suite...3.xalancbmk/483.xalancbmk.test -1.0%. + 3.02%
> test-suite...T2006/401.bzip2/401.bzip2.test -0.8%. + 70.6%
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev