GPGPU: Generate PTX assembly code for the kernel modules
commit418be26e38316627187fa2cead3d50b7b28f51b0
authorTobias Grosser <tobias@grosser.es>
Fri, 22 Jul 2016 07:11:12 +0000 (22 07:11 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 22 Jul 2016 07:11:12 +0000 (22 07:11 +0000)
treeba27ed95b84044611a422f46a41eb05c48b587e2
parent17469135eb44a0682b568b39ee57616bfea50948
GPGPU: Generate PTX assembly code for the kernel modules

Run the NVPTX backend over the GPUModule IR and write the resulting assembly
code in a string.

To work correctly, it is important to invalidate analysis results that still
reference the IR in the kernel module. Hence, this change clears all references
to dominators, loop info, and scalar evolution.

Finally, the NVPTX backend has troubles to generate code for various special
floating point types (not surprising), but also for uncommon integer types. This
commit does not resolve these issues, but pulls out problematic test cases into
separate files to XFAIL them individually and resolve them in future (not
immediate) changes one by one.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@276396 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/PPCGCodeGeneration.cpp
test/GPGPU/double-parallel-loop.ll
test/GPGPU/scalar-parameter-fp128.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-i120.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-i128.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-i3000.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-i80.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-ppc_fp128.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter-x86_fp80.ll [new file with mode: 0644]
test/GPGPU/scalar-parameter.ll