[all-commits] [llvm/llvm-project] e94125: [DSE] Add support for not aligned begin/end

ebrevnov via All-commits all-commits at lists.llvm.org
Wed Mar 3 21:24:48 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e94125f054310ea4a6559f9b2fa3f1896c1ba48a
      https://github.com/llvm/llvm-project/commit/e94125f054310ea4a6559f9b2fa3f1896c1ba48a
  Author: Evgeniy Brevnov <ybrevnov at azul.com>
  Date:   2021-03-04 (Thu, 04 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
    M llvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
    M llvm/test/Transforms/DeadStoreElimination/MemDepAnalysis/OverwriteStoreBegin.ll

  Log Message:
  -----------
  [DSE] Add support for not aligned begin/end

This is an attempt to improve handling of partial overlaps in case of unaligned begin\end.

Existing implementation just bails out if it encounters such cases. Even when it doesn't I believe existing code checking alignment constraints is not quite correct. It tries to ensure alignment of the "later" start/end offset while should be preserving relative alignment between earlier and later start/end.

The idea behind the change is simple. When start/end is not aligned as we wish instead of bailing out let's adjust it as necessary to get desired alignment.

I'll update with performance results as measured by the test-suite...it's still running...

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D93530




More information about the All-commits mailing list