|
@@ -601,49 +601,53 @@ def Constructor : InheritableAttr {
|
|
|
let Documentation = [Undocumented];
|
|
|
}
|
|
|
|
|
|
+// CUDA attributes are spelled __attribute__((attr)) or __declspec(__attr__).
|
|
|
+
|
|
|
def CUDAConstant : InheritableAttr {
|
|
|
- let Spellings = [GNU<"constant">];
|
|
|
+ let Spellings = [GNU<"constant">, Declspec<"__constant__">];
|
|
|
let Subjects = SubjectList<[Var]>;
|
|
|
let LangOpts = [CUDA];
|
|
|
let Documentation = [Undocumented];
|
|
|
}
|
|
|
|
|
|
def CUDACudartBuiltin : IgnoredAttr {
|
|
|
- let Spellings = [GNU<"cudart_builtin">];
|
|
|
+ let Spellings = [GNU<"cudart_builtin">, Declspec<"__cudart_builtin__">];
|
|
|
let LangOpts = [CUDA];
|
|
|
}
|
|
|
|
|
|
def CUDADevice : InheritableAttr {
|
|
|
- let Spellings = [GNU<"device">];
|
|
|
+ let Spellings = [GNU<"device">, Declspec<"__device__">];
|
|
|
let Subjects = SubjectList<[Function, Var]>;
|
|
|
let LangOpts = [CUDA];
|
|
|
let Documentation = [Undocumented];
|
|
|
}
|
|
|
|
|
|
def CUDADeviceBuiltin : IgnoredAttr {
|
|
|
- let Spellings = [GNU<"device_builtin">];
|
|
|
+ let Spellings = [GNU<"device_builtin">, Declspec<"__device_builtin__">];
|
|
|
let LangOpts = [CUDA];
|
|
|
}
|
|
|
|
|
|
def CUDADeviceBuiltinSurfaceType : IgnoredAttr {
|
|
|
- let Spellings = [GNU<"device_builtin_surface_type">];
|
|
|
+ let Spellings = [GNU<"device_builtin_surface_type">,
|
|
|
+ Declspec<"__device_builtin_surface_type__">];
|
|
|
let LangOpts = [CUDA];
|
|
|
}
|
|
|
|
|
|
def CUDADeviceBuiltinTextureType : IgnoredAttr {
|
|
|
- let Spellings = [GNU<"device_builtin_texture_type">];
|
|
|
+ let Spellings = [GNU<"device_builtin_texture_type">,
|
|
|
+ Declspec<"__device_builtin_texture_type__">];
|
|
|
let LangOpts = [CUDA];
|
|
|
}
|
|
|
|
|
|
def CUDAGlobal : InheritableAttr {
|
|
|
- let Spellings = [GNU<"global">];
|
|
|
+ let Spellings = [GNU<"global">, Declspec<"__global__">];
|
|
|
let Subjects = SubjectList<[Function]>;
|
|
|
let LangOpts = [CUDA];
|
|
|
let Documentation = [Undocumented];
|
|
|
}
|
|
|
|
|
|
def CUDAHost : InheritableAttr {
|
|
|
- let Spellings = [GNU<"host">];
|
|
|
+ let Spellings = [GNU<"host">, Declspec<"__host__">];
|
|
|
let Subjects = SubjectList<[Function]>;
|
|
|
let LangOpts = [CUDA];
|
|
|
let Documentation = [Undocumented];
|
|
@@ -657,7 +661,7 @@ def CUDAInvalidTarget : InheritableAttr {
|
|
|
}
|
|
|
|
|
|
def CUDALaunchBounds : InheritableAttr {
|
|
|
- let Spellings = [GNU<"launch_bounds">];
|
|
|
+ let Spellings = [GNU<"launch_bounds">, Declspec<"__launch_bounds__">];
|
|
|
let Args = [ExprArgument<"MaxThreads">, ExprArgument<"MinBlocks", 1>];
|
|
|
let LangOpts = [CUDA];
|
|
|
let Subjects = SubjectList<[ObjCMethod, FunctionLike], WarnDiag,
|
|
@@ -669,7 +673,7 @@ def CUDALaunchBounds : InheritableAttr {
|
|
|
}
|
|
|
|
|
|
def CUDAShared : InheritableAttr {
|
|
|
- let Spellings = [GNU<"shared">];
|
|
|
+ let Spellings = [GNU<"shared">, Declspec<"__shared__">];
|
|
|
let Subjects = SubjectList<[Var]>;
|
|
|
let LangOpts = [CUDA];
|
|
|
let Documentation = [Undocumented];
|
|
@@ -1195,6 +1199,8 @@ def NoThrow : InheritableAttr {
|
|
|
}
|
|
|
|
|
|
def NvWeak : IgnoredAttr {
|
|
|
+ // No Declspec spelling of this attribute; the CUDA headers use
|
|
|
+ // __attribute__((nv_weak)) unconditionally.
|
|
|
let Spellings = [GNU<"nv_weak">];
|
|
|
let LangOpts = [CUDA];
|
|
|
}
|