llvm-project/polly/test
Tobias Grosser 349d1c3368 [ScopDetection] Remove redundant checks for endless loops
Summary:
Both `canUseISLTripCount()` and `addOverApproximatedRegion()` contained checks
to reject endless loops which are now removed and replaced by a single check
in `isValidLoop()`.

For reporting such loops the `ReportLoopOverlapWithNonAffineSubRegion` is
renamed to `ReportLoopHasNoExit`. The test case
`ReportLoopOverlapWithNonAffineSubRegion.ll` is adapted and renamed as well.

The schedule generation in `buildSchedule()` is based on the following
assumption:

Given some block B that is contained in a loop L and a SESE region R,
we assume that L is contained in R or the other way around.

However, this assumption is broken in the presence of endless loops that are
nested inside other loops. Therefore, in order to prevent erroneous behavior
in `buildSchedule()`, r265280 introduced a corresponding check in
`canUseISLTripCount()` to reject endless loops. Unfortunately, it was possible
to bypass this check with -polly-allow-nonaffine-loops which was fixed by adding
another check to reject endless loops in `allowOverApproximatedRegion()` in
r273905. Hence there existed two separate locations that handled this case.

Thank you Johannes Doerfert for helping to provide the above background
information.

Reviewers: Meinersbur, grosser

Subscribers: _jdoerfert, pollydev

Differential Revision: https://reviews.llvm.org/D24560

Contributed-by: Matthias Reisinger <d412vv1n@gmail.com>
llvm-svn: 281987
2016-09-20 17:05:22 +00:00
..
CodeGen/OpenMP Update to ISL 0.17. 2016-05-04 14:41:36 +00:00
DeadCodeElimination [Polly] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-15 06:12:29 +00:00
DependenceInfo [GSoC] Do not process SCoPs with infeasible runtime context 2016-07-25 12:40:59 +00:00
FlattenSchedule Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
GPGPU GPGPU: add missing REQUIRES line to test case 2016-09-18 08:57:38 +00:00
Isl Adapt test case to recent change in Global Variable Definition 2016-09-13 05:19:26 +00:00
ScheduleOptimizer Perform copying to created arrays according to the packing transformation 2016-09-14 06:26:09 +00:00
ScopDetect [ScopDetect] Do not assert in case of AddRecs with non-constant start expression 2016-08-15 20:59:30 +00:00
ScopDetectionDiagnostics [ScopDetection] Remove redundant checks for endless loops 2016-09-20 17:05:22 +00:00
ScopInfo Add %loadPolly to test command line. 2016-08-24 19:12:48 +00:00
Unit Introduce unittests. 2016-08-25 12:36:15 +00:00
CMakeLists.txt Fix spelling in CMakeLists 2016-09-19 10:55:31 +00:00
README
create_ll.sh Small change to create_ll.sh [NFC] 2015-03-08 15:36:27 +00:00
lit.cfg Make the lit configuration Python 3 compatible 2015-07-24 20:33:22 +00:00
lit.site.cfg.in GPGPU: create default initialized PPCG scop and gpu program 2016-07-14 10:22:19 +00:00
polly.ll tests: Drop -polly-detect-unprofitable and -polly-no-early-exit 2015-10-06 15:36:44 +00:00
update_check.py Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00

README

place tests here