[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