diff options
author | Max Kazantsev <mkazantsev@azul.com> | 2023-01-31 18:41:25 +0700 |
---|---|---|
committer | Max Kazantsev <mkazantsev@azul.com> | 2023-01-31 20:08:52 +0700 |
commit | fa97f63ac63f27045a2bef1892b98300d9e33431 (patch) | |
tree | 827105aa47ed031d536edcbffd7165b497631f44 /clang/lib/Lex/ModuleMap.cpp | |
parent | ae147546122beda1f25a4db4f2a4b37de1a19974 (diff) | |
download | llvm-fa97f63ac63f27045a2bef1892b98300d9e33431.zip llvm-fa97f63ac63f27045a2bef1892b98300d9e33431.tar.gz llvm-fa97f63ac63f27045a2bef1892b98300d9e33431.tar.bz2 |
[GuardWidening] Choose right point for generating wide condition for branches. PR60234. Take 2
There was a crash because there was inconsistency between 'isAvailableAt'
and 'makeAvailableAt' queries. 'makeAvailableAt' is called on conditions
of both guards (dominating and dominated) and 'isAvailableAt' is called
only for dominated guard's condition. Before this patch, it didn't matter
because insertion point always matched the dominating guard. Now, because
they are different, this inconsistency leads to incorrect transforms which
are caught by assert.
The fix is to check 'isAvailableAt' for both conditions.
Differential Revision: https://reviews.llvm.org/D142693
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions