llvm-project/polly/test
Roman Gareev 925ce50f1b Unroll and separate the remaining parts of isolation
The remaining parts produced by the full partial tile isolation can contain
hot spots that are worth to be optimized. Currently, we rely on the simple
loop unrolling pass, LiCM and the SLP vectorizer to optimize such parts.
However, the approach can suffer from the lack of the information about
aliasing that Polly provides using additional alias metadata or/and the lack
of the information required by simple loop unrolling pass.

This patch is the first step to optimize the remaining parts. To do it, we
unroll and separate them. In case of, for instance, Intel Kaby Lake, it helps
to increase the performance of the generated code from 39.87 GFlop/s to
49.23 GFlop/s.

The next possible step is to avoid unrolling performed by Polly in case of
isolated and remaining parts and rely only on simple loop unrolling pass and
the Loop vectorizer.

Reviewed-by: Tobias Grosser <tobias@grosser.es>

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

llvm-svn: 312929
2017-09-11 17:46:47 +00:00
..
CodeGen [Polly] Fix code generation of llvm.expect intrinsic 2017-05-14 09:09:54 +00:00
DeLICM [test] Add forgotten REQUIRES: line. 2017-09-06 13:11:24 +00:00
DeadCodeElimination [Polly] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-15 06:12:29 +00:00
DependenceInfo Bump isl to isl-0.18-768-g033b61ae 2017-07-04 15:54:11 +00:00
FlattenSchedule Add -polly-flatten-schedule pass. 2016-09-08 15:02:36 +00:00
ForwardOpTree [ZoneAlgo] Handle non-StoreInst/LoadInst MemoryAccesses including memset. 2017-09-06 12:40:55 +00:00
GPGPU [ISLNodeBuilder] Materialize Fortran array sizes of arrays without memory accesses. 2017-09-01 18:55:43 +00:00
Isl [CodeGen] Bitcast scalar writes to actual value. 2017-09-07 12:15:01 +00:00
JSONExporter [JSON] Make the failure to parse a jscop file a hard error 2017-08-10 14:53:25 +00:00
MaximalStaticExpansion [Polly][WIP] Scalar fully indexed expansion 2017-08-24 00:04:45 +00:00
PruneUnprofitable [PruneUnprofitable] Add -polly-prune-unprofitable pass. 2017-03-17 13:09:52 +00:00
RewriteByReferenceParameters Add rewrite by-reference parameter pass 2017-08-17 05:25:08 +00:00
ScheduleOptimizer Unroll and separate the remaining parts of isolation 2017-09-11 17:46:47 +00:00
ScopDetect [ScopHelper] Do not crash on unreachable blocks 2017-09-03 18:01:22 +00:00
ScopDetectionDiagnostics Revert "[polly] Fix ScopDetectionDiagnostic test failure caused by r310940" 2017-08-24 19:47:15 +00:00
ScopInfo Revert "[ScopDetect/Info] Look through PHIs that follow an error block" 2017-09-06 19:05:40 +00:00
ScopInliner [ScopInliner] Add a simple Scop-based inliner to polly. 2017-08-17 21:57:23 +00:00
Simplify [Simplify] Actually remove unsed instruction from region header. 2017-09-05 19:44:39 +00:00
Unit [Polly][CMake] Skip unit-tests in lit if gtest is not available 2017-07-11 11:37:35 +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 [CMake] Fix r307650: Readd missing dependency. 2017-07-19 19:20:58 +00:00
README
create_ll.sh Make create_ll work with latest LLVM [NFC] 2017-07-07 04:20:55 +00:00
lit.cfg [Polly] [Tests] Update `lit.cfg` uses of `lit.util.capture` to `subprocess.check_output` 2017-07-12 09:42:05 +00:00
lit.site.cfg.in [GPGPU] Add support for NVIDIA libdevice 2017-07-31 14:03:16 +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