[all-commits] [llvm/llvm-project] 3d31ad: [DSE] Improve partial overlap detection

ebrevnov via All-commits all-commits at lists.llvm.org
Fri Oct 30 08:23:49 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3d31adaec443daee75c62823082fa2912bbd267e
      https://github.com/llvm/llvm-project/commit/3d31adaec443daee75c62823082fa2912bbd267e
  Author: Evgeniy Brevnov <ybrevnov at azul.com>
  Date:   2020-10-30 (Fri, 30 Oct 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
    M llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll

  Log Message:
  -----------
  [DSE] Improve partial overlap detection

Currently isOverwrite returns OW_MaybePartial even for accesss known not to overlap. This is not a big problem for legacy implementation (since isPartialOverwrite follows isOverwrite and clarifies the result). Contrary SSA based version does a lot of work to later find out that accesses don't overlap. Besides negative impact on compile time we quickly reach MemorySSAPartialStoreLimit and miss optimization opportunities.

Note: In fact, I think it would be cleaner implementation if isOverwrite returned fully clarified result in the first place whithout need to call isPartialOverwrite. This can be done as a follow up. What do you think?

Reviewed By: fhahn, asbirlea

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




More information about the All-commits mailing list