llvm-project/polly
Singapuram Sanjay Srivallabh 1abd9ffa37 [PPCGCodeGen] Differentiate kernels based on their parent Scop
Summary:
Add a sequence number that identifies a ptx_kernel's parent Scop within a function to it's name to differentiate it from other kernels produced from the same function, yet different Scops.

Kernels produced from different Scops can end up having the same name. Consider a function with 2 Scops and each Scop being able to produce just one kernel. Both of these kernels have the name "kernel_0". This can lead to the wrong kernel being launched when the runtime picks a kernel from its cache based on the name alone. This patch supplements D33985, by differentiating kernels across Scops as well.

Previously (even before D33985) while profiling kernels generated through JIT e.g. Julia, [[ https://groups.google.com/d/msg/polly-dev/J1j587H3-Qw/mR-jfL16BgAJ | kernels associated with different functions, and even different SCoPs within a function, would be grouped together due to the common name ]]. This patch prevents this grouping and the kernels are reported separately.

Reviewers: grosser, bollu

Reviewed By: grosser

Subscribers: mehdi_amini, nemanjai, pollydev, kbarton

Tags: #polly

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

llvm-svn: 307814
2017-07-12 16:46:19 +00:00
..
cmake [Polly][CMake] Use the CMake Package instead of llvm-config in out-of-tree builds 2017-07-11 11:24:25 +00:00
docs [doc] Add Davide's links regarding automated bisecting 2017-06-17 08:44:12 +00:00
include/polly [PPCGCodeGen] Differentiate kernels based on their parent Scop 2017-07-12 16:46:19 +00:00
lib [PPCGCodeGen] Differentiate kernels based on their parent Scop 2017-07-12 16:46:19 +00:00
test [PPCGCodeGen] Differentiate kernels based on their parent Scop 2017-07-12 16:46:19 +00:00
tools [CMake] Retire Polly's FindCUDA.cmake in favour of CMake's default FindCUDA.cmake script. 2017-06-06 19:20:48 +00:00
unittests Update Polly to reflect a change to a clang-format patch. I'm not sure 2017-06-29 23:58:03 +00:00
utils Revise polly-{update|check}-format targets 2015-09-14 16:59:50 +00:00
www [WWW] Add a section to Getting Started about building out-of-tree 2017-07-11 20:37:28 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.arclint [External] Move lib/JSON to lib/External/JSON. NFC. 2017-02-05 15:26:56 +00:00
.gitattributes
.gitignore Do not track the isl PDF manual in SVN 2017-01-16 11:48:03 +00:00
CMakeLists.txt [Polly][CMake] Skip unit-tests in lit if gtest is not available 2017-07-11 11:37:35 +00:00
CREDITS.txt
LICENSE.txt [External] Move lib/JSON to lib/External/JSON. NFC. 2017-02-05 15:26:56 +00:00
README Test commit 2017-06-28 12:58:44 +00:00

README

Polly - Polyhedral optimizations for LLVM
-----------------------------------------
http://polly.llvm.org/

Polly uses a mathematical representation, the polyhedral model, to represent and
transform loops and other control flow structures. Using an abstract
representation it is possible to reason about transformations in a more general
way and to use highly optimized linear programming libraries to figure out the
optimal loop structure. These transformations can be used to do constant
propagation through arrays, remove dead loop iterations, optimize loops for
cache locality, optimize arrays, apply advanced automatic parallelization, drive
vectorization, or they can be used to do software pipelining.