diff options
author | Florian Hahn <flo@fhahn.com> | 2020-09-12 18:57:26 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2020-09-12 19:05:59 +0100 |
commit | e082dee2b5885bba65e20b22b088bcaca5546984 (patch) | |
tree | 77428e88110bd9d6f0ea40626f199708794fef04 /llvm/lib/CodeGen/TargetLoweringBase.cpp | |
parent | 3de9e3e493baed93e1aa0e99b04a0b11f370a939 (diff) | |
download | llvm-e082dee2b5885bba65e20b22b088bcaca5546984.zip llvm-e082dee2b5885bba65e20b22b088bcaca5546984.tar.gz llvm-e082dee2b5885bba65e20b22b088bcaca5546984.tar.bz2 |
[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.
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringBase.cpp')
0 files changed, 0 insertions, 0 deletions