[all-commits] [llvm/llvm-project] 3de9e3: [DSE] Precommit test case with loop carried depend...

Florian Hahn via All-commits all-commits at lists.llvm.org
Sat Sep 12 11:07:06 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3de9e3e493baed93e1aa0e99b04a0b11f370a939
      https://github.com/llvm/llvm-project/commit/3de9e3e493baed93e1aa0e99b04a0b11f370a939
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-09-12 (Sat, 12 Sep 2020)

  Changed paths:
    A llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll

  Log Message:
  -----------
  [DSE] Precommit test case with loop carried dependence.


  Commit: e082dee2b5885bba65e20b22b088bcaca5546984
      https://github.com/llvm/llvm-project/commit/e082dee2b5885bba65e20b22b088bcaca5546984
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-09-12 (Sat, 12 Sep 2020)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loop-carried-dependence.ll
    M llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
    M llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll

  Log Message:
  -----------
  [DSE] Bail out on MemoryPhis when deleting stores at end of function.

When deleting stores at the end of a function, we have to do PHI
translation, otherwise we might miss reads in different iterations of a
loop. See multiblock-loop-carried-dependence.ll for details.

This fixes a mis-compile and surprisingly also increases the number of
eliminated stores from 26047 to 26572 for MultiSource/SPEC2000/SPEC2006
on X86 with -O3 -flto. This is most likely because we save budget by not
exploring through MemoryPhis, which are less likely to result in valid
candidates for elimination.

The issue was reported post-commit for fb109c42d91c.


Compare: https://github.com/llvm/llvm-project/compare/74760bb00fb9...e082dee2b588


More information about the All-commits mailing list