[PATCH] D11212: [SCEV] Apply NSW and NUW flags via poison value analysis
Bjarke Hammersholt Roune
broune at google.com
Wed Jul 15 17:47:47 PDT 2015
broune updated this revision to Diff 29858.
broune added a comment.
Added and used isGuaranteedToTransferExecutionToSuccessor (is there a better name?). Also slight improvement to comments.
I checked all the instructions in the langref to see if any others might also not terminate. All I found is that while the langref doesn't explicitly say so, some atomics like atomicrmw do not necessarily terminate if another thread keeps interfering. Looking at the C++14 standard, some thread is guaranteed to make progress but I could not find a statement that any given thread is guaranteed to make progress, so I made isGuaranteedToTransferExecutionToSuccessor conservative on that point.
http://reviews.llvm.org/D11212
Files:
include/llvm/Analysis/ScalarEvolution.h
include/llvm/Analysis/ValueTracking.h
lib/Analysis/ScalarEvolution.cpp
lib/Analysis/ValueTracking.cpp
test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll
test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll
test/Analysis/ScalarEvolution/flags-from-poison.ll
test/Transforms/LoopStrengthReduce/sext-ind-var.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11212.29858.patch
Type: text/x-patch
Size: 32104 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150716/3aa3ae38/attachment.bin>
More information about the llvm-commits
mailing list