[DSE,MemorySSA] Limit elimination at end of function to single UO.
authorFlorian Hahn <flo@fhahn.com>
Sat, 22 Aug 2020 09:08:59 +0000 (10:08 +0100)
committerFlorian Hahn <flo@fhahn.com>
Mon, 24 Aug 2020 12:00:17 +0000 (13:00 +0100)
commit2431b143aeacda1c92b82fbae3f7121d78048785
tree14ea157b84f662ce3e377bf58ad39b5d2c2270ab
parent6a44edb8da335bba355cd180a3f43564d14cd1be
[DSE,MemorySSA] Limit elimination at end of function to single UO.

Limit elimination of stores at the end of a function to MemoryDefs with
a single underlying object, to save compile time.

In practice, the case with multiple underlying objects seems not very
important in practice. For -O3 -flto on MultiSource/SPEC2000/SPEC2006
this results in a total of 2 more stores being eliminated.

We can always re-visit that in the future.
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
llvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll