OSDN Git Service

[SCEV] Track no-abnormal-exits instead of no-throw calls
authorSanjoy Das <sanjoy@playingwithpointers.com>
Wed, 8 Jun 2016 17:48:42 +0000 (17:48 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Wed, 8 Jun 2016 17:48:42 +0000 (17:48 +0000)
commit27dabd2db698e91b433f20022ab3ee34aec6f115
tree5ae5f05d752ac29946490342bca78db8d0e418dc
parent39ede080e267c0019b80b0729d93958f95ecb0a2
[SCEV] Track no-abnormal-exits instead of no-throw calls

Absence of may-unwind calls is not enough to guarantee that a
UB-generating use of an add-rec poison in the loop latch will actually
cause UB.  We also need to guard against calls that terminate the thread
or infinite loop themselves.

This partially addresses PR28012.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272181 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ScalarEvolution.h
lib/Analysis/ScalarEvolution.cpp
test/Analysis/ScalarEvolution/nsw.ll