SuccessChanges

Summary

  1. [DSE] Add tests with lifetime.end that only mark parts of the obj as dead. (details)
  2. [DSE] Unify & fix mem terminator location checks. (details)
Commit b2c0193afa2b25afc718bc32751147c5dc1bfd63 by flo
[DSE] Add tests with lifetime.end that only mark parts of the obj as dead.

llvm.lifetime.end accepts a size parameters to limit the size of the
location marked as dead. Add a few tests with stores to locations after
the part that has been marked as dead.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll (diff)
Commit 8f0466edc0cb3782af4108bfe8840e2ad3de9b49 by flo
[DSE] Unify & fix mem terminator location checks.

When looking for memory defs killed by memory terminators the code
currently incorrectly ignores the size argument of llvm.lifetime.end.

This patch updates the code to use isMemTerminator and updates
isMemTerminator to use isOverwrite() to make sure locations that are
outside the range marked as dead by llvm.lifetime.end are not
considered. Note that isOverwrite is only used for llvm.lifetime.end,
because free-like functions make the whole underlying object dead.
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll (diff)