summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/MicrosoftMangle.cpp
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-06-01 09:40:18 +0000
committerNikita Popov <nikita.ppv@gmail.com>2019-06-01 09:40:18 +0000
commit46d4dba6e64eb47dfa04beb8d9c623a29b3375df (patch)
tree0c03cb4b8c67d1dc85b121ad97a368ee4b42bf47 /clang/lib/AST/MicrosoftMangle.cpp
parent2b1d799a595213fd6524a0222bf59a8eb9b04b0a (diff)
downloadbcm5719-llvm-46d4dba6e64eb47dfa04beb8d9c623a29b3375df.tar.gz
bcm5719-llvm-46d4dba6e64eb47dfa04beb8d9c623a29b3375df.zip
[IndVarSimplify] Fixup nowrap flags during LFTR (PR31181)
Fix for https://bugs.llvm.org/show_bug.cgi?id=31181 and partial fix for LFTR poison handling issues in general. When LFTR moves a condition from pre-inc to post-inc, it may now depend on value that is poison due to nowrap flags. To avoid this, we clear any nowrap flag that SCEV cannot prove for the post-inc addrec. Additionally, LFTR may switch to a different IV that is dynamically dead and as such may be arbitrarily poison. This patch will correct nowrap flags in some but not all cases where this happens. This is related to the adoption of IR nowrap flags for the pre-inc addrec. (See some of the switch_to_different_iv tests, where flags are not dropped or insufficiently dropped.) Finally, there are likely similar issues with the handling of GEP inbounds, but we don't have a test case for this yet. Differential Revision: https://reviews.llvm.org/D60935 llvm-svn: 362292
Diffstat (limited to 'clang/lib/AST/MicrosoftMangle.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud