hanchenye-llvm-project/polly/test/CodeGen
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
..
GPGPU Add preliminary implementation for GPGPU code generation. 2012-08-03 12:50:07 +00:00
MemAccess CodeGen: Recreate old ivs with the original type 2012-04-03 12:24:32 +00:00
OpenMP CodeGen: Allow function parameters to be rewritten in getNewValue() 2012-04-01 16:49:45 +00:00
20100617.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100622.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100707.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100707_2.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100708.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100708_2.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100713.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100713_2.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100717.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100718-DomInfo-2.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100718-DomInfo.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
20100720-MultipleConditions.c
20100720-MultipleConditions.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
20100809-IndependentBlock.ll
20100811-ScalarDependencyBetweenBrAndCnd.ll
20101030-Overflow.ll
20101103-Overflow3.ll
20101103-signmissmatch.ll
20110226-Ignore-Dead-Code.ll
20110226-PHI-Node-removed.ll
20110312-Fail-without-basicaa.ll
20120316-InvalidCast.ll Don't allow pointer types in affine expressions 2012-03-16 16:36:47 +00:00
20120403-RHS-type-mismatch.ll CodeGen: Recreate old ivs with the original type 2012-04-03 12:24:32 +00:00
PHIInExit.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
constant_condition.c
constant_condition.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
do_pluto_matmult.c
do_pluto_matmult.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
do_pluto_matmult.ll.result
do_pluto_matmult___%do.body---%do.end45.jscop
do_pluto_matmult___%do.body---%do.end45.jscop.invalid_reverse
do_pluto_matmult___%do.body---%do.end45.jscop.valid_reverse
loop_with_condition.c
loop_with_condition.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
loop_with_condition_2.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
loop_with_condition_ineq.c
loop_with_condition_ineq.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
loop_with_condition_nested.c
loop_with_condition_nested.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
matmul_vec.c
matmul_vec.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
matmul_vec___%1---%17.jscop
pluto_matmult.c
pluto_matmult.ll tests: Replace . by %s 2012-02-13 12:29:43 +00:00
pluto_matmult___%for.cond---%for.end47.jscop
reduction.c
reduction.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
reduction_2.c
reduction_2.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
scev.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00
sequential_loops.c
sequential_loops.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
simple_nonaffine_loop.c Support non-affine access functions in Polly. 2011-12-20 10:43:14 +00:00
simple_nonaffine_loop.ll Support non-affine access functions in Polly. 2011-12-20 10:43:14 +00:00
simple_vec_assign_scalar.c
simple_vec_assign_scalar.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_assign_scalar_2.c
simple_vec_assign_scalar_2.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_call.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_call_2.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_cast.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_const.c
simple_vec_const.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_impossible.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_large_width.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_stride_one.c
simple_vec_stride_one.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_stride_one___%1---%5.jscop
simple_vec_stride_x.c
simple_vec_stride_x.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
simple_vec_two_stmts.ll Regression tests: Adapt the vectorize option change. 2012-05-06 10:22:43 +00:00
single_do_loop_int_max_iterations.c test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_int_max_iterations.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
single_do_loop_int_max_iterations___%do.body---%do.end.jscop
single_do_loop_int_param_iterations.c test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_int_param_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_ll_max_iterations.c test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_ll_max_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_one_iteration.c
single_do_loop_one_iteration.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_scev_replace.c test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_do_loop_scev_replace.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
single_loop.c
single_loop.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
single_loop_int_max_iterations.c
single_loop_int_max_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_loop_ll_max_iterations.c
single_loop_ll_max_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_loop_one_iteration.c
single_loop_one_iteration.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_loop_param.ll Don't fail the lli testcases on 32bit platform. 2012-03-26 15:16:48 +00:00
single_loop_uint_max_iterations.c
single_loop_uint_max_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_loop_ull_max_iterations.c
single_loop_ull_max_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
single_loop_zero_iterations.c
single_loop_zero_iterations.ll test: Switch to new atomic instructions 2011-11-29 14:51:05 +00:00
split_edges.ll Codegen: Give split and merge basic blocks better names 2012-02-12 12:09:37 +00:00
split_edges_2.ll CodeGen: Always name merge block 2012-02-12 12:09:46 +00:00
test.c
test.ll test: Do not pipe the .ll file into opt 2011-07-05 19:13:21 +00:00