[PATCH] D12766: [Polly] Runtime check elimination
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 10 09:04:36 PDT 2015
jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert added a subscriber: Polly.
Hoist runtime checks in the loop nest if they will cause an exception
like event. Such events are recognized as blocks with an unreachable
terminator possibly (but only) preceded by a function calls which
will never return. No other instructions are allowed in these
exception blocks and they have to be executed conditionally. As there
won't be a statement build for these blocks and the control that flows
into them is never flowing into another block we basically model the
SCoP as if they would never be executed. Also in the generated AST and
consequently IR they will simply disappear. To be sound we add the
assumption that no such block can ever be executed to our assumed
context.
+ ubsan out of bound handling will be treated as exception block.
http://reviews.llvm.org/D12766
Files:
include/polly/ScopDetection.h
lib/Analysis/ScopDetection.cpp
lib/Analysis/ScopInfo.cpp
test/ScopInfo/BoundChecks/single-loop.ll
test/ScopInfo/BoundChecks/two-loops.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12766.34452.patch
Type: text/x-patch
Size: 11025 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150910/8d89e9d0/attachment.bin>
More information about the llvm-commits
mailing list