Lines Matching refs:CUDAFunctionTarget
71 CUDAFunctionTarget SemaCUDA::IdentifyTarget(const ParsedAttributesView &Attrs) { in IdentifyTarget()
96 return CUDAFunctionTarget::InvalidTarget; in IdentifyTarget()
99 return CUDAFunctionTarget::Global; in IdentifyTarget()
102 return CUDAFunctionTarget::HostDevice; in IdentifyTarget()
105 return CUDAFunctionTarget::Device; in IdentifyTarget()
107 return CUDAFunctionTarget::Host; in IdentifyTarget()
125 auto Target = CUDAFunctionTarget::Host; in CUDATargetContextRAII()
130 Target = CUDAFunctionTarget::Device; in CUDATargetContextRAII()
136 CUDAFunctionTarget SemaCUDA::IdentifyTarget(const FunctionDecl *D, in IdentifyTarget()
143 return CUDAFunctionTarget::InvalidTarget; in IdentifyTarget()
146 return CUDAFunctionTarget::Global; in IdentifyTarget()
150 return CUDAFunctionTarget::HostDevice; in IdentifyTarget()
151 return CUDAFunctionTarget::Device; in IdentifyTarget()
153 return CUDAFunctionTarget::Host; in IdentifyTarget()
158 return CUDAFunctionTarget::HostDevice; in IdentifyTarget()
161 return CUDAFunctionTarget::Host; in IdentifyTarget()
186 case CUDAFunctionTarget::HostDevice: in IdentifyTarget()
188 case CUDAFunctionTarget::Device: in IdentifyTarget()
189 case CUDAFunctionTarget::Global: in IdentifyTarget()
235 CurCUDATargetCtx.Target == CUDAFunctionTarget::Device && in IdentifyPreference()
239 CUDAFunctionTarget CallerTarget = IdentifyTarget(Caller); in IdentifyPreference()
240 CUDAFunctionTarget CalleeTarget = IdentifyTarget(Callee); in IdentifyPreference()
244 if (CallerTarget == CUDAFunctionTarget::InvalidTarget || in IdentifyPreference()
245 CalleeTarget == CUDAFunctionTarget::InvalidTarget) in IdentifyPreference()
250 if (CalleeTarget == CUDAFunctionTarget::Global && in IdentifyPreference()
251 (CallerTarget == CUDAFunctionTarget::Global || in IdentifyPreference()
252 CallerTarget == CUDAFunctionTarget::Device)) in IdentifyPreference()
256 if (CalleeTarget == CUDAFunctionTarget::HostDevice) in IdentifyPreference()
261 (CallerTarget == CUDAFunctionTarget::Host && in IdentifyPreference()
262 CalleeTarget == CUDAFunctionTarget::Global) || in IdentifyPreference()
263 (CallerTarget == CUDAFunctionTarget::Global && in IdentifyPreference()
264 CalleeTarget == CUDAFunctionTarget::Device)) in IdentifyPreference()
271 (CallerTarget == CUDAFunctionTarget::Global || in IdentifyPreference()
272 CallerTarget == CUDAFunctionTarget::Device || in IdentifyPreference()
273 CallerTarget == CUDAFunctionTarget::HostDevice) && in IdentifyPreference()
274 CalleeTarget == CUDAFunctionTarget::Host) in IdentifyPreference()
278 if (CallerTarget == CUDAFunctionTarget::HostDevice) { in IdentifyPreference()
281 CalleeTarget == CUDAFunctionTarget::Device) || in IdentifyPreference()
283 (CalleeTarget == CUDAFunctionTarget::Host || in IdentifyPreference()
284 CalleeTarget == CUDAFunctionTarget::Global))) in IdentifyPreference()
295 if ((CallerTarget == CUDAFunctionTarget::Host && in IdentifyPreference()
296 CalleeTarget == CUDAFunctionTarget::Device) || in IdentifyPreference()
297 (CallerTarget == CUDAFunctionTarget::Device && in IdentifyPreference()
298 CalleeTarget == CUDAFunctionTarget::Host) || in IdentifyPreference()
299 (CallerTarget == CUDAFunctionTarget::Global && in IdentifyPreference()
300 CalleeTarget == CUDAFunctionTarget::Host)) in IdentifyPreference()
352 resolveCalleeCUDATargetConflict(CUDAFunctionTarget Target1, in resolveCalleeCUDATargetConflict()
353 CUDAFunctionTarget Target2, in resolveCalleeCUDATargetConflict()
354 CUDAFunctionTarget *ResolvedTarget) { in resolveCalleeCUDATargetConflict()
356 assert(Target1 != CUDAFunctionTarget::Global); in resolveCalleeCUDATargetConflict()
357 assert(Target2 != CUDAFunctionTarget::Global); in resolveCalleeCUDATargetConflict()
359 if (Target1 == CUDAFunctionTarget::HostDevice) { in resolveCalleeCUDATargetConflict()
361 } else if (Target2 == CUDAFunctionTarget::HostDevice) { in resolveCalleeCUDATargetConflict()
389 std::optional<CUDAFunctionTarget> InferredTarget; in inferTargetForImplicitSpecialMember()
427 CUDAFunctionTarget BaseMethodTarget = IdentifyTarget(SMOR.getMethod()); in inferTargetForImplicitSpecialMember()
471 CUDAFunctionTarget FieldMethodTarget = IdentifyTarget(SMOR.getMethod()); in inferTargetForImplicitSpecialMember()
496 if (*InferredTarget == CUDAFunctionTarget::Device) in inferTargetForImplicitSpecialMember()
498 else if (*InferredTarget == CUDAFunctionTarget::Host) in inferTargetForImplicitSpecialMember()
694 CUDAFunctionTarget InitFnTarget = IdentifyTarget(InitFn); in checkAllowedInitializer()
695 if (InitFnTarget != CUDAFunctionTarget::Host && in checkAllowedInitializer()
696 InitFnTarget != CUDAFunctionTarget::HostDevice) { in checkAllowedInitializer()
715 CUDAFunctionTarget CallerTarget = IdentifyTarget(Caller); in RecordImplicitHostDeviceFuncUsedByDevice()
718 if (CallerTarget != CUDAFunctionTarget::Device && in RecordImplicitHostDeviceFuncUsedByDevice()
719 CallerTarget != CUDAFunctionTarget::Global && in RecordImplicitHostDeviceFuncUsedByDevice()
720 (CallerTarget != CUDAFunctionTarget::HostDevice || in RecordImplicitHostDeviceFuncUsedByDevice()
828 case CUDAFunctionTarget::Global: in DiagIfDeviceCode()
829 case CUDAFunctionTarget::Device: in DiagIfDeviceCode()
831 case CUDAFunctionTarget::HostDevice: in DiagIfDeviceCode()
860 case CUDAFunctionTarget::Host: in DiagIfHostCode()
862 case CUDAFunctionTarget::HostDevice: in DiagIfHostCode()
1008 CUDAFunctionTarget NewTarget = IdentifyTarget(NewFD); in checkTargetOverload()
1014 CUDAFunctionTarget OldTarget = IdentifyTarget(OldFD); in checkTargetOverload()
1023 if ((NewTarget == CUDAFunctionTarget::HostDevice && in checkTargetOverload()
1026 OldTarget == CUDAFunctionTarget::Device)) || in checkTargetOverload()
1027 (OldTarget == CUDAFunctionTarget::HostDevice && in checkTargetOverload()
1030 NewTarget == CUDAFunctionTarget::Device)) || in checkTargetOverload()
1031 (NewTarget == CUDAFunctionTarget::Global) || in checkTargetOverload()
1032 (OldTarget == CUDAFunctionTarget::Global)) { in checkTargetOverload()
1040 if ((NewTarget == CUDAFunctionTarget::Host && in checkTargetOverload()
1041 OldTarget == CUDAFunctionTarget::Device) || in checkTargetOverload()
1042 (NewTarget == CUDAFunctionTarget::Device && in checkTargetOverload()
1043 OldTarget == CUDAFunctionTarget::Host)) { in checkTargetOverload()