[cfe-dev] [Review request] CUDA patch series 3 (was Re: Proposal: CUDA support; outline, initial patches)
Peter Collingbourne
peter at pcc.me.uk
Sat Nov 27 16:26:39 PST 2010
Hi,
+cfe-commits, as I think this series is now ready for pre-commit review.
This new patch series replaces series 1 and 2 entirely, and includes
the following changes:
- Driver and Frontend support for the .cu file extension and '-x cuda',
which both enable CUDA features.
- Improved parsing error recovery for kernel call expressions.
- Added a few diagnostics related to global functions and kernel calls.
- Redesigned CUDAKernelCallExpr to store cudaConfigureCall function
call as a subexpression. The cudaConfigureCall declaration is
now also used to parse the execution configuration. This has
a number of advantages:
- Reduces hardcoded surface area
- Same behaviour as NVIDIA toolchain
- Therefore future-proof; if the cudaConfigureCall parameter list
changes, there is no need to change CUDAKernelCallExpr
- Simplifies CUDAKernelCallExpr::child_end() which before needed
to take care with optional subexpressions
- Can utilise existing support (Sema and CodeGen) for CallExprs
- CodeGen support for CUDAKernelCallExpr. This calls cudaConfigureCall
to set the execution configuration before calling the global function
(currently not CodeGen'd for the host).
- Added small test suite, which tests Parse, Sema and CodeGen.
Future work:
- Host-side CodeGen support for global functions. This will involve
generating a local device stub which uses cudaSetupArgument and
cudaLaunch to set up the argument vector and launch the kernel,
similar to the NVIDIA toolchain.
Reviews appreciated.
Thanks,
--
Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Basic-Add-CUDA-language-option.patch
Type: text/x-diff
Size: 1171 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Driver-Frontend-add-CUDA-language-support.patch
Type: text/x-diff
Size: 5391 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0001.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-AST-support-for-extra-subexpressions-on-CallExpr-sub.patch
Type: text/x-diff
Size: 4886 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0002.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-AST-add-CUDAKernelCallExpr.patch
Type: text/x-diff
Size: 8768 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0003.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-AST-Sema-keep-track-of-cudaConfigureCall.patch
Type: text/x-diff
Size: 2604 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0004.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-Sema-support-for-building-CUDAKernelCallExpr-from-Ac.patch
Type: text/x-diff
Size: 6230 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0005.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Lexer-add-CUDA-kernel-call-tokens.patch
Type: text/x-diff
Size: 2115 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0006.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-Parse-add-support-for-parsing-CUDA-kernel-calls.patch
Type: text/x-diff
Size: 5901 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0007.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0009-Basic-Sema-add-support-for-CUDA-location-attributes.patch
Type: text/x-diff
Size: 10937 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0008.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0010-Basic-Sema-Add-launch_bounds-attribute.patch
Type: text/x-diff
Size: 4397 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0009.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0011-Sema-diagnose-kernel-calls-to-non-global-functions.patch
Type: text/x-diff
Size: 2362 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0010.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0012-Sema-diagnose-kernel-functions-and-kernel-function-c.patch
Type: text/x-diff
Size: 3400 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0011.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0013-Sema-improve-ConvertArgumentsForCall-diagnostics.patch
Type: text/x-diff
Size: 2126 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0012.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0014-Sema-add-separate-diagnostics-for-too-few-many-exec-.patch
Type: text/x-diff
Size: 6020 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0013.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0015-Basic-add-PTXTargetInfo.patch
Type: text/x-diff
Size: 3364 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0014.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0016-CodeGen-add-PTXTargetCodeGenInfo.patch
Type: text/x-diff
Size: 2135 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0015.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0017-CodeGen-support-for-CUDAKernelCallExpr.patch
Type: text/x-diff
Size: 3997 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0016.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0018-Frontend-add-CodeGenOptions-CUDAIsDevice.patch
Type: text/x-diff
Size: 1130 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0017.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0019-CodeGen-filter-declarations-based-on-attributes-and-.patch
Type: text/x-diff
Size: 1459 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0018.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0020-Frontend-add-fcuda-is-device-flag.patch
Type: text/x-diff
Size: 2756 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20101128/1d107de1/attachment-0019.patch>
More information about the cfe-dev
mailing list