[PATCH] [Polly][Fix] Handle wrap rounds in the loop bounds given by ScalarEvolution.

Johannes Doerfert doerfert at cs.uni-saarland.de
Fri Oct 10 09:55:26 PDT 2014


Hi grosser, sebpop, dpeixott, simbuerg,

  The loop bound given by ScalarEvolution is given as a signed value,
  thus it can wrap around if the value was a big unsigned one. To handle
  this we can promote the type to the next bigger one iff the code
  generation can handle the next bigger type.

  This also refactors the process of bailing out in the ScopInfo as we
  now have two reasons to do so (to many parameters in the alias checks
  and types to big for the code generation).

  This patches removes two __very old__ XFAIL tests and replaces them by
  new ones that check for the problem earlier (in the ScopInfo). One of
  the new tests is taken from the bug report linked below.

  This fixes http://llvm.org/PR17187

http://reviews.llvm.org/D5728

Files:
  include/polly/ScopInfo.h
  lib/Analysis/ScopInfo.cpp
  test/Isl/single_loop_uint_max_iterations.ll
  test/Isl/single_loop_ull_max_iterations.ll
  test/ScopInfo/negative_loop_bound_int_type.ll
  test/ScopInfo/negative_loop_bound_long_type.ll
  test/ScopInfo/negative_loop_bound_small_type.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5728.14736.patch
Type: text/x-patch
Size: 15280 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141010/e15306d0/attachment.bin>


More information about the llvm-commits mailing list