llvm-project/polly/test
Michael Kruse 7860c5fe4e [IslAst] Fix InParallelFor nesting.
IslAst could mark two nested outer loops as "OutermostParallel". It
caused that the code generator tried to OpenMP-parallelize both loops,
which it is not prepared loop.

It was because the recursive AST build algorithm managed a flag
"InParallelFor" to ensure that no nested loop is also marked as
"OutermostParallel". Unfortunatetly the same flag was used by nodes
marked as SIMD, and reset to false after the SIMD node. Since loops can
be marked as SIMD inside "OutermostParallel" loops, the recursive
algorithm again tried to mark loops as "OutermostParellel" although
still nested inside another "OutermostParallel" loop.

The fix exposed another bug: The function "astScheduleDimIsParallel" was
only called when a loop was potentially "OutermostParallel" or
"InnermostParallel", but as a side-effect also determines the minimum
dependence distance. Hence, changing when we need to know whether a loop
is "OutermostParallel" also changed which loop was annotated with
"#pragma minimal dependence distance".

Moreover, some complex condition linked with "InParallelFor" determined
whether a loop should be an "InnermostParallel" loop. It missed some
situations where it would not use mark as such although being inside an
SIMD mark node, and therefore not be annotated using "#pragma simd".

The changes in particular:

1. Split the "InParallelFor" flag into an "InParallelFor" and an
   "InSIMD" flag.

2. Unconditionally call "astScheduleDimIsParallel" for its side-effects
   and store the result in "InParallel" for later use.

3. Simplify the condition when a loop is "InnermostParallel".

Fixes llvm.org/PR33153 and llvm.org/PR38073.

llvm-svn: 343212
2018-09-27 13:39:37 +00:00
..
CodeGen Move code generation test case to test/CodeGen/ 2018-03-19 15:05:30 +00:00
DeLICM [DeLICM] Avoid assertion on out-of-quota. 2018-05-16 16:39:51 +00:00
DeadCodeElimination [Polly] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-15 06:12:29 +00:00
DependenceInfo [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
FlattenSchedule Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
ForwardOpTree [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
GPGPU Fix for r336080: Missing colon in REQUIRES line 2018-07-02 08:36:49 +00:00
Isl [PerfMonitor] Fix rdtscp callsites 2018-09-11 14:17:44 +00:00
JSONExporter [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
MaximalStaticExpansion [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
PruneUnprofitable [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
RewriteByReferenceParameters Add rewrite by-reference parameter pass 2017-08-17 05:25:08 +00:00
ScheduleOptimizer [IslAst] Fix InParallelFor nesting. 2018-09-27 13:39:37 +00:00
ScopDetect [ScopHelper] Provide support for recognising collective invariant loads 2018-06-29 07:29:45 +00:00
ScopDetectionDiagnostics Adjust to debug info metadata format change. 2018-05-10 07:09:10 +00:00
ScopInfo [ScopBuilder] Set domain to empty instead of NULL. 2018-08-01 22:28:32 +00:00
ScopInliner [ScopInliner] Add a simple Scop-based inliner to polly. 2017-08-17 21:57:23 +00:00
Simplify [test] Remove non-JSPON comments in JSCOP file. NFC. 2018-07-28 01:11:45 +00:00
Support [NewPM] Update pass registration for the LLVM plugin interface 2018-04-17 07:59:46 +00:00
Unit Assume the shared library path variable is LD_LIBRARY_PATH on systems 2018-01-20 14:35:05 +00:00
UnitIsl [CMake] Fix polly-isl-test execution in out-of-LLVM-tree builds. 2017-04-22 23:02:53 +00:00
CMakeLists.txt [Polly][CMake] Fix lit setup for building the in the mono repo 2018-03-05 14:43:04 +00:00
README
create_ll.sh Pass compiler arguments in the create_ll.sh script 2018-05-02 15:27:32 +00:00
lit.cfg Resubmit "[lit] Force site configs to run before source-tree configs" 2017-09-15 22:10:46 +00:00
lit.site.cfg.in [NewPM] Update pass registration for the LLVM plugin interface 2018-04-17 07:59:46 +00:00
polly.ll
update_check.py Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00

README

place tests here