[PATCH] D84609: [MemDepAnalysis] Cut-off threshold reshuffling
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 09:51:39 PDT 2020
nikic added a comment.
In D84609#2180272 <https://reviews.llvm.org/D84609#2180272>, @asbirlea wrote:
> In D84609#2180222 <https://reviews.llvm.org/D84609#2180222>, @lebedev.ri wrote:
>
>> I wasn't really asking about NewGVN story, i know it's stagnant somewhat.
>> I was only asking, would it be better to instead look into porting
>> `GVN::processNonLocalLoad()` to be MemorySSA-driven.
>
> If we're building two analyses (MSSA & MemDepAnalysis) instead of one, I expect we'll see a spike in compile-time. Additionally, MemDepAnalysis is a piece of technical debt that would be nice to replace altogether.
> IMO it makes sense to make the transition for the whole pass, or for the pipeline of 3 passes in one go.
I recently ran some numbers for GVN compile-time impact: http://llvm-compile-time-tracker.com/index.php?branch=nikic/perf/new-gvn-3 From the bottom to the top, the first commit disables LoadPRE, the second disables the entirety of processNonLocalLoad and the last one enables NewGVN (with the corresponding MemorySSA run).
I think the key takeaways here is that the non-local load analysis in GVN is really, really expensive. Per-block MemDep analysis is fairly cheap, but the non-local one is not, and I think GVN is the only MemDep-based pass that uses it.
So, if it is feasible to replace the non-local load analysis (and load PRE) in GVN with something MemorySSA based, I think it's plausible that it will be a compile-time improvement despite the need to construct MemorySSA. And it would become free for a following MemCpyOpt/DSE :)
Of course, this is on the assumption that MemorySSA can actually perform a similar degree of optimization with better compile-time. As these optimizations require walking past MemoryPhis, it's not going to be free, but I would still expect it to be cheaper and have better cutoff control.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D84609/new/
https://reviews.llvm.org/D84609
More information about the llvm-commits
mailing list