@@ -348,23 +348,25 @@ void TypeInDeclRule::registerMatcher(MatchFinder &MF) {
348348 " cudaGraphicsRegisterFlags" , " cudaExternalMemoryHandleType" ,
349349 " cudaExternalSemaphoreHandleType" , " CUstreamCallback" ,
350350 " cudaHostFn_t" , " __nv_half2" , " __nv_half" , " cudaGraphNodeType" ,
351- " CUsurfref" , " CUdevice_P2PAttribute" , " cudaIpcMemHandle_t" ))))))
351+ " CUsurfref" , " CUdevice_P2PAttribute" , " cudaIpcMemHandle_t" ,
352+ " cudaGraphExecUpdateResultInfo" ))))))
352353 .bind (" cudaTypeDef" ),
353354 this );
354355
355356 MF .addMatcher (
356- typeLoc (loc (qualType (hasDeclaration (namedDecl (hasAnyName (
357- " cooperative_groups::__v1::coalesced_group" ,
358- " cooperative_groups::__v1::grid_group" ,
359- " cooperative_groups::__v1::thread_block_tile" , " cudaGraph_t" ,
360- " cudaGraphExec_t" , " cudaGraphNode_t" , " cudaGraphicsResource" ,
361- " cudaGraphicsResource_t" , " CUgraphicsResource" ,
362- " cudaExternalMemory_t" , " cudaExternalMemoryHandleDesc" ,
363- " cudaExternalMemoryMipmappedArrayDesc" ,
364- " cudaExternalMemoryBufferDesc" , " cudaExternalSemaphore_t" ,
365- " cudaExternalSemaphoreHandleDesc" ,
366- " cudaExternalSemaphoreSignalParams" ,
367- " cudaExternalSemaphoreWaitParams" ))))))
357+ typeLoc (
358+ loc (qualType (hasDeclaration (namedDecl (hasAnyName (
359+ " cooperative_groups::__v1::coalesced_group" ,
360+ " cooperative_groups::__v1::grid_group" ,
361+ " cooperative_groups::__v1::thread_block_tile" , " cudaGraph_t" ,
362+ " cudaGraphExec_t" , " cudaGraphNode_t" , " cudaGraphicsResource" ,
363+ " cudaGraphicsResource_t" , " CUgraphicsResource" ,
364+ " cudaExternalMemory_t" , " cudaExternalMemoryHandleDesc" ,
365+ " cudaExternalMemoryMipmappedArrayDesc" ,
366+ " cudaExternalMemoryBufferDesc" , " cudaExternalSemaphore_t" ,
367+ " cudaExternalSemaphoreHandleDesc" ,
368+ " cudaExternalSemaphoreSignalParams" ,
369+ " cudaExternalSemaphoreWaitParams" , " cudaKernelNodeParams" ))))))
368370 .bind (" cudaTypeDefEA" ),
369371 this );
370372 MF .addMatcher (varDecl (hasType (classTemplateSpecializationDecl (
@@ -937,9 +939,11 @@ void TypeInDeclRule::runRule(const MatchFinder::MatchResult &Result) {
937939 }
938940
939941 if (CanonicalTypeStr == " cudaGraphExecUpdateResult" ) {
940- report (TL ->getBeginLoc (), Diagnostics::API_NOT_MIGRATED , false ,
941- CanonicalTypeStr);
942- return ;
942+ if (!DpctGlobalInfo::useExtGraph ()) {
943+ report (TL ->getBeginLoc (), Diagnostics::TRY_EXPERIMENTAL_FEATURE , false ,
944+ " cudaGraphExecUpdateResult" ,
945+ " --use-experimental-features=graph" );
946+ }
943947 }
944948
945949 if (CanonicalTypeStr == " cudaGraphicsRegisterFlags" ||
@@ -1941,7 +1945,8 @@ void EnumConstantRule::registerMatcher(MatchFinder &MF) {
19411945 " cufftType" , " cudaMemoryType" , " CUctx_flags_enum" ,
19421946 " CUpointer_attribute_enum" , " CUmemorytype_enum" ,
19431947 " cudaGraphicsMapFlags" , " cudaGraphicsRegisterFlags" ,
1944- " cudaGraphNodeType" , " CUdevice_P2PAttribute_enum" ))),
1948+ " cudaGraphNodeType" , " CUdevice_P2PAttribute_enum" ,
1949+ " cudaGraphExecUpdateResult" ))),
19451950 matchesName (" CUDNN_.*" ), matchesName (" CUSOLVER_.*" )))))
19461951 .bind (" EnumConstant" ),
19471952 this );
@@ -2061,7 +2066,16 @@ void EnumConstantRule::runRule(const MatchFinder::MatchResult &Result) {
20612066 EnumName == " cudaGraphNodeTypeMemset" ||
20622067 EnumName == " cudaGraphNodeTypeHost" ||
20632068 EnumName == " cudaGraphNodeTypeGraph" ||
2064- EnumName == " cudaGraphNodeTypeEmpty" )) {
2069+ EnumName == " cudaGraphNodeTypeEmpty" ||
2070+ EnumName == " cudaGraphExecUpdateSuccess" ||
2071+ EnumName == " cudaGraphExecUpdateError" ||
2072+ EnumName == " cudaGraphExecUpdateErrorTopologyChanged" ||
2073+ EnumName == " cudaGraphExecUpdateErrorNodeTypeChanged" ||
2074+ EnumName == " cudaGraphExecUpdateErrorFunctionChanged" ||
2075+ EnumName == " cudaGraphExecUpdateErrorParametersChanged" ||
2076+ EnumName == " cudaGraphExecUpdateErrorNotSupported" ||
2077+ EnumName == " cudaGraphExecUpdateErrorUnsupportedFunctionChange" ||
2078+ EnumName == " cudaGraphExecUpdateErrorAttributesChanged" )) {
20652079 report (E->getBeginLoc (), Diagnostics::TRY_EXPERIMENTAL_FEATURE , false ,
20662080 EnumName, " --use-experimental-features=graph" );
20672081 return ;
@@ -4638,7 +4652,7 @@ void KernelCallRefRule::runRule(
46384652 (OuterFD->getTemplatedKind () ==
46394653 FunctionDecl::TemplatedKind::TK_FunctionTemplate)) {
46404654 std::string TypeRepl;
4641- if (DpctGlobalInfo::isCVersionCUDALaunchUsed ()) {
4655+ if (DpctGlobalInfo::useWrapperRegisterFnPtr ()) {
46424656 if ((IsTemplateRelated &&
46434657 (!DRE ->hasExplicitTemplateArgs () ||
46444658 (DRE ->getNumTemplateArgs () <= TemplateParamNum))) ||
@@ -4647,7 +4661,7 @@ void KernelCallRefRule::runRule(
46474661 }
46484662 }
46494663 insertWrapperPostfix<DeclRefExpr>(
4650- DRE , std::move (TypeRepl), DpctGlobalInfo::isCVersionCUDALaunchUsed ());
4664+ DRE , std::move (TypeRepl), DpctGlobalInfo::useWrapperRegisterFnPtr ());
46514665 }
46524666 }
46534667 if (auto ULE =
@@ -4684,7 +4698,7 @@ void KernelCallRefRule::runRule(
46844698 }
46854699 }
46864700 insertWrapperPostfix<UnresolvedLookupExpr>(
4687- ULE , getTypeRepl (ULE ), DpctGlobalInfo::isCVersionCUDALaunchUsed ());
4701+ ULE , getTypeRepl (ULE ), DpctGlobalInfo::useWrapperRegisterFnPtr ());
46884702 }
46894703}
46904704
@@ -4957,7 +4971,7 @@ void KernelCallRule::runRule(
49574971
49584972 if (!getAddressedRef (CalleeDRE)) {
49594973 if (IsFuncTypeErased) {
4960- DpctGlobalInfo::setCVersionCUDALaunchUsed ();
4974+ DpctGlobalInfo::setUseWrapperRegisterFnPtr ();
49614975 }
49624976 std::string ReplStr;
49634977 llvm::raw_string_ostream OS (ReplStr);
0 commit comments