[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