[DSE,MemorySSA] Split off partial tracking from isOverwite.
authorFlorian Hahn <flo@fhahn.com>
Fri, 21 Aug 2020 08:13:59 +0000 (09:13 +0100)
committerFlorian Hahn <flo@fhahn.com>
Fri, 21 Aug 2020 08:13:59 +0000 (09:13 +0100)
commita0e92ffd0d663a6f1c39239847d15c0d65d2c3d6
treeb2e9ed0a0f1243414f9a503f01e8b8b0b27ae98f
parent85c15f17cc684b35cdb4a5f3a76d45160de7b597
[DSE,MemorySSA] Split off partial tracking from isOverwite.

When traversing memory uses to look for aliasing reads/writes, we only
care about complete overwrites. This patch splits off the partial
overwrite tracking from isOverwrite This avoids some unnecessary work
when checking for read/write clobbers with MemorySSA-DSE.
isOverwrite, which skips the partial overwrite tracking.

This gives a relatively small improvement
http://llvm-compile-time-tracker.com/compare.php?from=ef2a2f77f87553a0a4a39f518eb9ac86b756bda6&to=658f3905dd96d3415f3782adc712c79fa59a4665&stat=instructions

This is part of the patches to bring down compile-time to the level
referenced in
http://lists.llvm.org/pipermail/llvm-dev/2020-August/144417.html

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D86280
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp