r209767 - Expose CUDA function attributes to the C interface.

Aaron Ballman aaron at aaronballman.com
Wed May 28 16:04:54 PDT 2014


It seems this commit broke one of the bots:
http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/3142

~Aaron

On Wed, May 28, 2014 at 3:29 PM, Eli Bendersky <eliben at google.com> wrote:
> Author: eliben
> Date: Wed May 28 14:29:58 2014
> New Revision: 209767
>
> URL: http://llvm.org/viewvc/llvm-project?rev=209767&view=rev
> Log:
> Expose CUDA function attributes to the C interface.
>
> Until now all CUDA-specific attributes were represented with
> CXCursor_UnexposedAttr; now they are actually implemented, including the Python
> bindings.
>
>
> Added:
>     cfe/trunk/test/Index/attributes-cuda.cu
> Modified:
>     cfe/trunk/bindings/python/clang/cindex.py
>     cfe/trunk/include/clang-c/Index.h
>     cfe/trunk/tools/libclang/CIndex.cpp
>     cfe/trunk/tools/libclang/CXCursor.cpp
>
> Modified: cfe/trunk/bindings/python/clang/cindex.py
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/bindings/python/clang/cindex.py?rev=209767&r1=209766&r2=209767&view=diff
> ==============================================================================
> --- cfe/trunk/bindings/python/clang/cindex.py (original)
> +++ cfe/trunk/bindings/python/clang/cindex.py Wed May 28 14:29:58 2014
> @@ -1082,6 +1082,10 @@ CursorKind.PACKED_ATTR = CursorKind(408)
>  CursorKind.PURE_ATTR = CursorKind(409)
>  CursorKind.CONST_ATTR = CursorKind(410)
>  CursorKind.NODUPLICATE_ATTR = CursorKind(411)
> +CursorKind.CUDACONSTANT_ATTR = CursorKind(412)
> +CursorKind.CUDADEVICE_ATTR = CursorKind(413)
> +CursorKind.CUDAGLOBAL_ATTR = CursorKind(414)
> +CursorKind.CUDAHOST_ATTR = CursorKind(415)
>
>  ###
>  # Preprocessing
>
> Modified: cfe/trunk/include/clang-c/Index.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=209767&r1=209766&r2=209767&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang-c/Index.h (original)
> +++ cfe/trunk/include/clang-c/Index.h Wed May 28 14:29:58 2014
> @@ -2168,8 +2168,12 @@ enum CXCursorKind {
>    CXCursor_PureAttr                      = 409,
>    CXCursor_ConstAttr                     = 410,
>    CXCursor_NoDuplicateAttr               = 411,
> -  CXCursor_LastAttr                      = CXCursor_NoDuplicateAttr,
> -
> +  CXCursor_CUDAConstantAttr              = 412,
> +  CXCursor_CUDADeviceAttr                = 413,
> +  CXCursor_CUDAGlobalAttr                = 414,
> +  CXCursor_CUDAHostAttr                  = 415,
> +  CXCursor_LastAttr                      = CXCursor_CUDAHostAttr,
> +
>    /* Preprocessing */
>    CXCursor_PreprocessingDirective        = 500,
>    CXCursor_MacroDefinition               = 501,
>
> Added: cfe/trunk/test/Index/attributes-cuda.cu
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/attributes-cuda.cu?rev=209767&view=auto
> ==============================================================================
> --- cfe/trunk/test/Index/attributes-cuda.cu (added)
> +++ cfe/trunk/test/Index/attributes-cuda.cu Wed May 28 14:29:58 2014
> @@ -0,0 +1,16 @@
> +// RUN: c-index-test -test-load-source all -x cuda %s | FileCheck %s
> +
> +__attribute__((device)) void f_device();
> +__attribute__((global)) void f_global();
> +__attribute__((constant)) int* g_constant;
> +__attribute__((host)) void f_host();
> +
> +
> +// CHECK:       attributes-cuda.cu:3:30: FunctionDecl=f_device:3:30
> +// CHECK-NEXT:  attributes-cuda.cu:3:16: attribute(device)
> +// CHECK:       attributes-cuda.cu:4:30: FunctionDecl=f_global:4:30
> +// CHECK-NEXT:  attributes-cuda.cu:4:16: attribute(global)
> +// CHECK:       attributes-cuda.cu:5:32: VarDecl=g_constant:5:32 (Definition)
> +// CHECK-NEXT:  attributes-cuda.cu:5:16: attribute(constant)
> +// CHECK:       attributes-cuda.cu:6:28: FunctionDecl=f_host:6:28
> +// CHECK-NEXT:  attributes-cuda.cu:6:16: attribute(host)
>
> Modified: cfe/trunk/tools/libclang/CIndex.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=209767&r1=209766&r2=209767&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/CIndex.cpp (original)
> +++ cfe/trunk/tools/libclang/CIndex.cpp Wed May 28 14:29:58 2014
> @@ -3879,6 +3879,14 @@ CXString clang_getCursorKindSpelling(enu
>      return cxstring::createRef("attribute(const)");
>    case CXCursor_NoDuplicateAttr:
>      return cxstring::createRef("attribute(noduplicate)");
> +  case CXCursor_CUDAConstantAttr:
> +    return cxstring::createRef("attribute(constant)");
> +  case CXCursor_CUDADeviceAttr:
> +    return cxstring::createRef("attribute(device)");
> +  case CXCursor_CUDAGlobalAttr:
> +    return cxstring::createRef("attribute(global)");
> +  case CXCursor_CUDAHostAttr:
> +    return cxstring::createRef("attribute(host)");
>    case CXCursor_PreprocessingDirective:
>      return cxstring::createRef("preprocessing directive");
>    case CXCursor_MacroDefinition:
>
> Modified: cfe/trunk/tools/libclang/CXCursor.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CXCursor.cpp?rev=209767&r1=209766&r2=209767&view=diff
> ==============================================================================
> --- cfe/trunk/tools/libclang/CXCursor.cpp (original)
> +++ cfe/trunk/tools/libclang/CXCursor.cpp Wed May 28 14:29:58 2014
> @@ -53,6 +53,10 @@ static CXCursorKind GetCursorKind(const
>      case attr::Pure: return CXCursor_PureAttr;
>      case attr::Const: return CXCursor_ConstAttr;
>      case attr::NoDuplicate: return CXCursor_NoDuplicateAttr;
> +    case attr::CUDAConstant: return CXCursor_CUDAConstantAttr;
> +    case attr::CUDADevice: return CXCursor_CUDADeviceAttr;
> +    case attr::CUDAGlobal: return CXCursor_CUDAGlobalAttr;
> +    case attr::CUDAHost: return CXCursor_CUDAHostAttr;
>    }
>
>    return CXCursor_UnexposedAttr;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list