llvm-project/polly/lib
Tobias Grosser 6217e18a7d Add preliminary implementation for GPGPU code generation.
Translate the selected parallel loop body into a ptx string and run it with the
cuda driver API. We limit this preliminary implementation to target the
following special test cases:

  - Support only 2-dimensional parallel loops with or without only one innermost
    non-parallel loop.
  - Support write memory access to only one array in a SCoP.

The patch was committed with smaller changes to the build system:

There is now a flag to enable gpu code generation explictly. This was required
as we need the llvm.codegen() patch applied on the llvm sources, to compile this
feature correctly. Also, enabling gpu code generation does not require cuda.
This requirement was removed to allow 'make polly-test' runs, even without an
installed cuda runtime.

Contributed by:  Yabin Hu  <yabin.hwu@gmail.com>

llvm-svn: 161239
2012-08-03 12:50:07 +00:00
..
Analysis Allow cast instructions within scops 2012-07-16 10:57:32 +00:00
CodeGen Add preliminary implementation for GPGPU code generation. 2012-08-03 12:50:07 +00:00
Exchange Add missing dependency to cmake system 2012-08-02 07:47:37 +00:00
JSON Disable some clang warnings in imported JSON code. 2012-01-30 09:07:45 +00:00
Support Add stringFromIslObj support for various isl_objs. 2012-07-05 08:55:31 +00:00
CMakeLists.txt cmake: Fix building of Polly on Apple system 2012-08-03 07:12:07 +00:00
CodePreparation.cpp Initialize the passes early and properly. 2011-10-08 00:30:40 +00:00
DeadCodeElimination.cpp Add a sceleton for a polyhedral dead code elimination. 2012-01-31 14:00:27 +00:00
IndVarSimplify.cpp IndVarSimplify: Disable simplifyIVUsers 2012-03-23 08:02:19 +00:00
IndependentBlocks.cpp IndependentBLocks: Do not visit the same instruction twice when moving the 2012-08-01 08:46:11 +00:00
Makefile Move the CodeGeneration.cpp to the CodeGen folder and update the build system. 2012-03-30 08:46:18 +00:00
MayAliasSet.cpp Further remove now invalid SCEVAffFunc features. 2011-11-09 22:35:05 +00:00
Pluto.cpp Add support for libpluto as the scheduling optimizer. 2012-08-02 07:47:26 +00:00
Pocc.cpp Allow polly ask bb-vectorizer to vectorize the loop body. 2012-05-06 10:22:19 +00:00
RegionSimplify.cpp Update after LLVM API change. 2011-12-09 21:34:43 +00:00
RegisterPasses.cpp Add support for libpluto as the scheduling optimizer. 2012-08-02 07:47:26 +00:00
ScheduleOptimizer.cpp ScheduleOptimizer: Simplify some code 2012-05-22 10:47:31 +00:00