diff options
author | Artur Pilipenko <apilipenko@azulsystems.com> | 2020-02-21 14:40:22 -0800 |
---|---|---|
committer | Artur Pilipenko <apilipenko@azulsystems.com> | 2020-02-27 14:43:01 -0800 |
commit | 02e3d5c3a25b9c00c0ab9bdd59931fde606ee0b4 (patch) | |
tree | 01f62f23f481639b5ca7d896419ef923f069da42 /llvm/unittests/Support/MathExtrasTest.cpp | |
parent | 4c2a6567bb12559cfc091bca2b25ae907cbd4e0f (diff) | |
download | llvm-02e3d5c3a25b9c00c0ab9bdd59931fde606ee0b4.zip llvm-02e3d5c3a25b9c00c0ab9bdd59931fde606ee0b4.tar.gz llvm-02e3d5c3a25b9c00c0ab9bdd59931fde606ee0b4.tar.bz2 |
Fix DSE miscompile when store is clobbered across loop iterations
DSE would mistakenly remove store (2):
a = calloc(n+1)
for (int i = 0; i < n; i++) {
store 1, a[i+1] // (1)
store 0, a[i] // (2)
}
The fix is to do PHI transaltion while looking for clobbering
instructions between the store and the calloc.
Reviewed By: efriedma, bjope
Differential Revision: https://reviews.llvm.org/D68006
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
0 files changed, 0 insertions, 0 deletions