<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:PMingLiU;
        panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@PMingLiU";
        panose-1:2 1 6 1 0 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">My bad, the original commit lead to tests failure on Windows build and the author contacted me for the revert.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Chi Chun<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Roman Lebedev <lebedev.ri@gmail.com><br>
<b>Date: </b>Friday, December 9, 2022 at 11:08 AM<br>
<b>To: </b>Chen, Chi Chun <chichun.chen@hpe.com>, Chi Chun Chen <llvmlistbot@llvm.org><br>
<b>Cc: </b>cfe-commits@lists.llvm.org <cfe-commits@lists.llvm.org><br>
<b>Subject: </b>Re: [clang] e0fd86d - Revert "[OpenMP] Clang Support for taskwait nowait clause"<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal">Reminder to please always mention the reason for the revert in the<br>
commit message.<br>
<br>
On Fri, Dec 9, 2022 at 8:07 PM Chi Chun Chen via cfe-commits<br>
<cfe-commits@lists.llvm.org> wrote:<br>
><br>
><br>
> Author: Chi Chun Chen<br>
> Date: 2022-12-09T11:06:45-06:00<br>
> New Revision: e0fd86db09a87f25df0eff6c1c755d86434dea0b<br>
><br>
> URL: <a href="https://github.com/llvm/llvm-project/commit/e0fd86db09a87f25df0eff6c1c755d86434dea0b">https://github.com/llvm/llvm-project/commit/e0fd86db09a87f25df0eff6c1c755d86434dea0b</a><br>
> DIFF: <a href="https://github.com/llvm/llvm-project/commit/e0fd86db09a87f25df0eff6c1c755d86434dea0b.diff">https://github.com/llvm/llvm-project/commit/e0fd86db09a87f25df0eff6c1c755d86434dea0b.diff</a><br>
><br>
> LOG: Revert "[OpenMP] Clang Support for taskwait nowait clause"<br>
><br>
> This reverts commit 100dfe7a8ad3789a98df623482b88d9a3a02e176.<br>
><br>
> Added:<br>
><br>
><br>
> Modified:<br>
>     clang/lib/CodeGen/CGOpenMPRuntime.cpp<br>
>     clang/lib/CodeGen/CGOpenMPRuntime.h<br>
>     clang/lib/CodeGen/CGStmtOpenMP.cpp<br>
>     clang/test/OpenMP/target_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_enter_data_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_exit_data_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_parallel_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_parallel_for_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_simd_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_teams_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp<br>
>     clang/test/OpenMP/target_update_depend_codegen.cpp<br>
>     clang/test/OpenMP/task_codegen.cpp<br>
>     clang/test/OpenMP/task_if_codegen.cpp<br>
>     clang/test/OpenMP/taskwait_ast_print.cpp<br>
>     clang/test/OpenMP/taskwait_codegen.cpp<br>
>     clang/test/OpenMP/taskwait_depend_codegen.cpp<br>
>     llvm/include/llvm/Frontend/OpenMP/OMP.td<br>
>     llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h<br>
>     llvm/include/llvm/Frontend/OpenMP/OMPKinds.def<br>
>     llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp<br>
>     mlir/test/Target/LLVMIR/openmp-llvm.mlir<br>
>     openmp/runtime/src/dllexports<br>
>     openmp/runtime/src/kmp.h<br>
>     openmp/runtime/src/kmp_taskdeps.cpp<br>
>     openmp/runtime/src/kmp_tasking.cpp<br>
><br>
> Removed:<br>
>     clang/test/OpenMP/taskwait_depend_nowait_codegen.cpp<br>
>     clang/test/OpenMP/taskwait_nowait_codegen.cpp<br>
><br>
><br>
> ################################################################################<br>
> diff  --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp<br>
> index 396075183102d..a75e31f40e074 100644<br>
> --- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp<br>
> +++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp<br>
> @@ -4756,7 +4756,7 @@ void CGOpenMPRuntime::emitTaskCall(CodeGenFunction &CGF, SourceLocation Loc,<br>
>        Region->emitUntiedSwitch(CGF);<br>
>    };<br>
><br>
> -  llvm::Value *DepWaitTaskArgs[7];<br>
> +  llvm::Value *DepWaitTaskArgs[6];<br>
>    if (!Data.Dependences.empty()) {<br>
>      DepWaitTaskArgs[0] = UpLoc;<br>
>      DepWaitTaskArgs[1] = ThreadID;<br>
> @@ -4764,8 +4764,6 @@ void CGOpenMPRuntime::emitTaskCall(CodeGenFunction &CGF, SourceLocation Loc,<br>
>      DepWaitTaskArgs[3] = DependenciesArray.getPointer();<br>
>      DepWaitTaskArgs[4] = CGF.Builder.getInt32(0);<br>
>      DepWaitTaskArgs[5] = llvm::ConstantPointerNull::get(CGF.VoidPtrTy);<br>
> -    DepWaitTaskArgs[6] =<br>
> -        llvm::ConstantInt::get(CGF.Int32Ty, Data.HasNowaitClause);<br>
>    }<br>
>    auto &M = CGM.getModule();<br>
>    auto &&ElseCodeGen = [this, &M, &TaskArgs, ThreadID, NewTaskNewTaskTTy,<br>
> @@ -4777,9 +4775,9 @@ void CGOpenMPRuntime::emitTaskCall(CodeGenFunction &CGF, SourceLocation Loc,<br>
>      // ndeps_noalias, kmp_depend_info_t *noalias_dep_list); if dependence info<br>
>      // is specified.<br>
>      if (!Data.Dependences.empty())<br>
> -      CGF.EmitRuntimeCall(OMPBuilder.getOrCreateRuntimeFunction(<br>
> -                              M, OMPRTL___kmpc_omp_taskwait_deps_51),<br>
> -                          DepWaitTaskArgs);<br>
> +      CGF.EmitRuntimeCall(<br>
> +          OMPBuilder.getOrCreateRuntimeFunction(M, OMPRTL___kmpc_omp_wait_deps),<br>
> +          DepWaitTaskArgs);<br>
>      // Call proxy_task_entry(gtid, new_task);<br>
>      auto &&CodeGen = [TaskEntry, ThreadID, NewTaskNewTaskTTy,<br>
>                        Loc](CodeGenFunction &CGF, PrePostActionTy &Action) {<br>
> @@ -5818,7 +5816,7 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc,<br>
><br>
>    if (CGF.CGM.getLangOpts().OpenMPIRBuilder && Data.Dependences.empty()) {<br>
>      // TODO: Need to support taskwait with dependences in the OpenMPIRBuilder.<br>
> -    OMPBuilder.createTaskwait(CGF.Builder, Data.HasNowaitClause);<br>
> +    OMPBuilder.createTaskwait(CGF.Builder);<br>
>    } else {<br>
>      llvm::Value *ThreadID = getThreadID(CGF, Loc);<br>
>      llvm::Value *UpLoc = emitUpdateLocation(CGF, Loc);<br>
> @@ -5827,38 +5825,34 @@ void CGOpenMPRuntime::emitTaskwaitCall(CodeGenFunction &CGF, SourceLocation Loc,<br>
>      llvm::Value *NumOfElements;<br>
>      std::tie(NumOfElements, DependenciesArray) =<br>
>          emitDependClause(CGF, Data.Dependences, Loc);<br>
> +    llvm::Value *DepWaitTaskArgs[6];<br>
>      if (!Data.Dependences.empty()) {<br>
> -      llvm::Value *DepWaitTaskArgs[7];<br>
>        DepWaitTaskArgs[0] = UpLoc;<br>
>        DepWaitTaskArgs[1] = ThreadID;<br>
>        DepWaitTaskArgs[2] = NumOfElements;<br>
>        DepWaitTaskArgs[3] = DependenciesArray.getPointer();<br>
>        DepWaitTaskArgs[4] = CGF.Builder.getInt32(0);<br>
>        DepWaitTaskArgs[5] = llvm::ConstantPointerNull::get(CGF.VoidPtrTy);<br>
> -      DepWaitTaskArgs[6] =<br>
> -          llvm::ConstantInt::get(CGF.Int32Ty, Data.HasNowaitClause);<br>
><br>
>        CodeGenFunction::RunCleanupsScope LocalScope(CGF);<br>
><br>
> -      // Build void __kmpc_omp_taskwait_deps_51(ident_t *, kmp_int32 gtid,<br>
> +      // Build void __kmpc_omp_wait_deps(ident_t *, kmp_int32 gtid,<br>
>        // kmp_int32 ndeps, kmp_depend_info_t *dep_list, kmp_int32<br>
> -      // ndeps_noalias, kmp_depend_info_t *noalias_dep_list,<br>
> -      // kmp_int32 has_no_wait); if dependence info is specified.<br>
> -      CGF.EmitRuntimeCall(OMPBuilder.getOrCreateRuntimeFunction(<br>
> -                              M, OMPRTL___kmpc_omp_taskwait_deps_51),<br>
> -                          DepWaitTaskArgs);<br>
> +      // ndeps_noalias, kmp_depend_info_t *noalias_dep_list); if dependence info<br>
> +      // is specified.<br>
> +      CGF.EmitRuntimeCall(<br>
> +          OMPBuilder.getOrCreateRuntimeFunction(M, OMPRTL___kmpc_omp_wait_deps),<br>
> +          DepWaitTaskArgs);<br>
><br>
>      } else {<br>
><br>
>        // Build call kmp_int32 __kmpc_omp_taskwait(ident_t *loc, kmp_int32<br>
>        // global_tid);<br>
> -      llvm::Value *HasNowaitClauseVal =<br>
> -          llvm::ConstantInt::get(CGF.IntTy, Data.HasNowaitClause);<br>
> -      llvm::Value *Args[3] = {UpLoc, ThreadID, HasNowaitClauseVal};<br>
> +      llvm::Value *Args[] = {UpLoc, ThreadID};<br>
>        // Ignore return result until untied tasks are supported.<br>
> -      CGF.EmitRuntimeCall(OMPBuilder.getOrCreateRuntimeFunction(<br>
> -                              M, OMPRTL___kmpc_omp_taskwait_51),<br>
> -                          Args);<br>
> +      CGF.EmitRuntimeCall(<br>
> +          OMPBuilder.getOrCreateRuntimeFunction(M, OMPRTL___kmpc_omp_taskwait),<br>
> +          Args);<br>
>      }<br>
>    }<br>
><br>
><br>
> diff  --git a/clang/lib/CodeGen/CGOpenMPRuntime.h b/clang/lib/CodeGen/CGOpenMPRuntime.h<br>
> index e7c1a098c7689..b51fd58a3a0ac 100644<br>
> --- a/clang/lib/CodeGen/CGOpenMPRuntime.h<br>
> +++ b/clang/lib/CodeGen/CGOpenMPRuntime.h<br>
> @@ -121,7 +121,6 @@ struct OMPTaskDataTy final {<br>
>    bool Nogroup = false;<br>
>    bool IsReductionWithTaskMod = false;<br>
>    bool IsWorksharingReduction = false;<br>
> -  bool HasNowaitClause = false;<br>
>  };<br>
><br>
>  /// Class intended to support codegen of all kind of the reduction clauses.<br>
><br>
> diff  --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp<br>
> index cf9b704e0ae6f..2e29a8d1e6e4f 100644<br>
> --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp<br>
> +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp<br>
> @@ -5263,7 +5263,6 @@ void CodeGenFunction::EmitOMPTaskwaitDirective(const OMPTaskwaitDirective &S) {<br>
>    OMPTaskDataTy Data;<br>
>    // Build list of dependences<br>
>    buildDependences(S, Data);<br>
> -  Data.HasNowaitClause = S.hasClausesOfKind<OMPNowaitClause>();<br>
>    CGM.getOpenMPRuntime().emitTaskwaitCall(*this, S.getBeginLoc(), Data);<br>
>  }<br>
><br>
><br>
> diff  --git a/clang/test/OpenMP/target_depend_codegen.cpp b/clang/test/OpenMP/target_depend_codegen.cpp<br>
> index 3b09a2ed13444..a9136b6d55a24 100644<br>
> --- a/clang/test/OpenMP/target_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_depend_codegen.cpp<br>
> @@ -89,7 +89,7 @@ int foo(int n) {<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP_START]], i[[SZ]] 2<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP_START]], i[[SZ]] 3<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* [[DEP_START]] to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
> @@ -209,7 +209,7 @@ int foo(int n) {<br>
>  // CHECK:       [[TASK:%.+]] = call i8* @__kmpc_omp_task_alloc(%struct.ident_t* @1, i32 [[GTID]], i32 1, i[[SZ]] {{48|24}}, i[[SZ]] 4, i32 (i32, i8*)* bitcast (i32 (i32, %{{.+}}*)* [[TASK_ENTRY2:@.+]] to i32 (i32, i8*)*))<br>
>  // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_enter_data_depend_codegen.cpp b/clang/test/OpenMP/target_enter_data_depend_codegen.cpp<br>
> index b29bf4f50798d..2c8a21fe973ea 100644<br>
> --- a/clang/test/OpenMP/target_enter_data_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_enter_data_depend_codegen.cpp<br>
> @@ -184,7 +184,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY2]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -273,7 +273,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY3]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -371,7 +371,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 1, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY4]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_exit_data_depend_codegen.cpp b/clang/test/OpenMP/target_exit_data_depend_codegen.cpp<br>
> index d562146e7e95d..d40bbf7fbf9f3 100644<br>
> --- a/clang/test/OpenMP/target_exit_data_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_exit_data_depend_codegen.cpp<br>
> @@ -184,7 +184,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY2]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -273,7 +273,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY3]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -371,7 +371,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 1, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY4]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_parallel_depend_codegen.cpp b/clang/test/OpenMP/target_parallel_depend_codegen.cpp<br>
> index 49cb76f61dc03..9a4b8923dcee6 100644<br>
> --- a/clang/test/OpenMP/target_parallel_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_parallel_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
> @@ -164,7 +164,7 @@ int foo(int n) {<br>
>  // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_parallel_for_depend_codegen.cpp b/clang/test/OpenMP/target_parallel_for_depend_codegen.cpp<br>
> index d243bbca6a77e..193d2c5500523 100644<br>
> --- a/clang/test/OpenMP/target_parallel_for_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_parallel_for_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[IN]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[IN]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -160,7 +160,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[IN]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[IN]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp b/clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp<br>
> index 4a13c711948fb..60c77d9121072 100644<br>
> --- a/clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[IN]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[IN]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -160,7 +160,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[IN]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[IN]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[IN]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_simd_depend_codegen.cpp b/clang/test/OpenMP/target_simd_depend_codegen.cpp<br>
> index fa7d87c647d5b..aad4f4817c143 100644<br>
> --- a/clang/test/OpenMP/target_simd_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_simd_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
> @@ -163,7 +163,7 @@ int foo(int n) {<br>
>  // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_teams_depend_codegen.cpp b/clang/test/OpenMP/target_teams_depend_codegen.cpp<br>
> index cdd220a1023af..7011d27fc4907 100644<br>
> --- a/clang/test/OpenMP/target_teams_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_teams_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
> @@ -163,7 +163,7 @@ int foo(int n) {<br>
>  // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>  // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>  // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -// CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +// CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* @1, i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>  // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
>  // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>  // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @1, i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp b/clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp<br>
> index 56d28b2f4ce4e..d0d3f726ed7b4 100644<br>
> --- a/clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -160,7 +160,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp<br>
> index 5cb55b6204795..67fcde3b66f27 100644<br>
> --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -160,7 +160,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp<br>
> index 1c9ebfaea8592..92668b110f935 100644<br>
> --- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp<br>
> @@ -87,7 +87,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -160,7 +160,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp b/clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp<br>
> index 0076db7750e20..14ae36c5bf426 100644<br>
> --- a/clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp<br>
> @@ -101,7 +101,7 @@ int foo(int n) {<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 2<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 3<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 4, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY0]](i32 [[GTID]], [[TASK_TY0]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
> @@ -199,7 +199,7 @@ int foo(int n) {<br>
>    // CHECK:       [[BC_TASK:%.+]] = bitcast i8* [[TASK]] to [[TASK_TY2:%.+]]*<br>
>    // CHECK:       getelementptr %struct.kmp_depend_info, %struct.kmp_depend_info* %{{.+}}, i[[SZ]] 0<br>
>    // CHECK:       [[DEP:%.+]] = bitcast %struct.kmp_depend_info* %{{.+}} to i8*<br>
> -  // CHECK:       call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null, i32 0)<br>
> +  // CHECK:       call void @__kmpc_omp_wait_deps(%struct.ident_t* [[ID]], i32 [[GTID]], i32 1, i8* [[DEP]], i32 0, i8* null)<br>
>    // CHECK:       call void @__kmpc_omp_task_begin_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
>    // CHECK:       call i32 [[TASK_ENTRY2]](i32 [[GTID]], [[TASK_TY2]]* [[BC_TASK]])<br>
>    // CHECK:       call void @__kmpc_omp_task_complete_if0(%struct.ident_t* [[ID]], i32 [[GTID]], i8* [[TASK]])<br>
><br>
> diff  --git a/clang/test/OpenMP/target_update_depend_codegen.cpp b/clang/test/OpenMP/target_update_depend_codegen.cpp<br>
> index da0207017cd7f..bdcbb02fdbdeb 100644<br>
> --- a/clang/test/OpenMP/target_update_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/target_update_depend_codegen.cpp<br>
> @@ -184,7 +184,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 3, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY2]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -273,7 +273,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 3, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 4, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY3]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
> @@ -371,7 +371,7 @@ void foo(int arg) {<br>
>    // CK1: [[DEP_ATTRS:%.+]] = getelementptr inbounds %struct.kmp_depend_info, %struct.kmp_depend_info* [[DEP]], i32 0, i32 2<br>
>    // CK1: store i8 1, i8* [[DEP_ATTRS]]<br>
>    // CK1: [[BC:%.+]] = bitcast %struct.kmp_depend_info* [[MAIN_DEP]] to i8*<br>
> -  // CK1: call void @__kmpc_omp_taskwait_deps_51(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null, i32 0)<br>
> +  // CK1: call void @__kmpc_omp_wait_deps(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i32 5, i8* [[BC]], i32 0, i8* null)<br>
>    // CK1: call void @__kmpc_omp_task_begin_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
>    // CK1: = call i32 [[TASK_ENTRY4]](i32 %{{.+}}, %struct.kmp_task_t_with_privates{{.+}}* [[RES_BC]])<br>
>    // CK1: call void @__kmpc_omp_task_complete_if0(%struct.ident_t* @{{.+}}, i32 %{{.+}}, i8* [[RES]])<br>
><br>
> diff  --git a/clang/test/OpenMP/task_codegen.cpp b/clang/test/OpenMP/task_codegen.cpp<br>
> index 8eb642d27e69b..d9d838bfdbf92 100644<br>
> --- a/clang/test/OpenMP/task_codegen.cpp<br>
> +++ b/clang/test/OpenMP/task_codegen.cpp<br>
> @@ -1093,7 +1093,7 @@ void test_omp_all_memory()<br>
>  // CHECK1-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK1-NEXT:    store i32 10, ptr [[TMP15]], align 4<br>
>  // CHECK1-NEXT:    [[TMP43:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !112<br>
> -// CHECK1-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[TMP43]], i32 0)<br>
> +// CHECK1-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[TMP43]])<br>
>  // CHECK1-NEXT:    [[TMP45:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !112<br>
>  // CHECK1-NEXT:    store i32 5, ptr [[TMP45]], align 4<br>
>  // CHECK1-NEXT:    [[TMP46:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !112<br>
> @@ -2213,7 +2213,7 @@ void test_omp_all_memory()<br>
>  // CHECK2-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK2-NEXT:    store i32 10, ptr [[TMP15]], align 4<br>
>  // CHECK2-NEXT:    [[TMP43:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !112<br>
> -// CHECK2-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[TMP43]], i32 0)<br>
> +// CHECK2-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[TMP43]])<br>
>  // CHECK2-NEXT:    [[TMP45:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !112<br>
>  // CHECK2-NEXT:    store i32 5, ptr [[TMP45]], align 4<br>
>  // CHECK2-NEXT:    [[TMP46:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !112<br>
> @@ -3415,7 +3415,7 @@ void test_omp_all_memory()<br>
>  // CHECK2-51-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK2-51-NEXT:    store i32 10, ptr [[TMP15]], align 4<br>
>  // CHECK2-51-NEXT:    [[TMP43:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !122<br>
> -// CHECK2-51-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[TMP43]], i32 0)<br>
> +// CHECK2-51-NEXT:    [[TMP44:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[TMP43]])<br>
>  // CHECK2-51-NEXT:    [[TMP45:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !122<br>
>  // CHECK2-51-NEXT:    store i32 5, ptr [[TMP45]], align 4<br>
>  // CHECK2-51-NEXT:    [[TMP46:%.*]] = load i32, ptr [[DOTGLOBAL_TID__ADDR_I]], align 4, !noalias !122<br>
> @@ -4953,7 +4953,7 @@ void test_omp_all_memory()<br>
>  // CHECK3-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK3-NEXT:    store i32 10, ptr [[S2_I]], align 4, !noalias !112<br>
>  // CHECK3-NEXT:    [[OMP_GLOBAL_THREAD_NUM13_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])<br>
> -// CHECK3-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]], i32 0)<br>
> +// CHECK3-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]])<br>
>  // CHECK3-NEXT:    [[TMP32:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !112<br>
>  // CHECK3-NEXT:    store i32 4, ptr [[TMP32]], align 4<br>
>  // CHECK3-NEXT:    [[OMP_GLOBAL_THREAD_NUM14_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB21]])<br>
> @@ -5969,7 +5969,7 @@ void test_omp_all_memory()<br>
>  // CHECK4-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK4-NEXT:    store i32 10, ptr [[S2_I]], align 4, !noalias !112<br>
>  // CHECK4-NEXT:    [[OMP_GLOBAL_THREAD_NUM13_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])<br>
> -// CHECK4-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]], i32 0)<br>
> +// CHECK4-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]])<br>
>  // CHECK4-NEXT:    [[TMP32:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !112<br>
>  // CHECK4-NEXT:    store i32 4, ptr [[TMP32]], align 4<br>
>  // CHECK4-NEXT:    [[OMP_GLOBAL_THREAD_NUM14_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB21]])<br>
> @@ -7069,7 +7069,7 @@ void test_omp_all_memory()<br>
>  // CHECK3-51-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK3-51-NEXT:    store i32 10, ptr [[S2_I]], align 4, !noalias !122<br>
>  // CHECK3-51-NEXT:    [[OMP_GLOBAL_THREAD_NUM13_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])<br>
> -// CHECK3-51-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]], i32 0)<br>
> +// CHECK3-51-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]])<br>
>  // CHECK3-51-NEXT:    [[TMP32:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !122<br>
>  // CHECK3-51-NEXT:    store i32 4, ptr [[TMP32]], align 4<br>
>  // CHECK3-51-NEXT:    [[OMP_GLOBAL_THREAD_NUM14_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB23]])<br>
> @@ -8503,7 +8503,7 @@ void test_omp_all_memory()<br>
>  // CHECK4-51-NEXT:    call void @_ZN1SD1Ev(ptr noundef nonnull align 4 dereferenceable(4) [[REF_TMP_I]]) #[[ATTR4]]<br>
>  // CHECK4-51-NEXT:    store i32 10, ptr [[S2_I]], align 4, !noalias !112<br>
>  // CHECK4-51-NEXT:    [[OMP_GLOBAL_THREAD_NUM13_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB1]])<br>
> -// CHECK4-51-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]], i32 0)<br>
> +// CHECK4-51-NEXT:    [[TMP31:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @[[GLOB1]], i32 [[OMP_GLOBAL_THREAD_NUM13_I]])<br>
>  // CHECK4-51-NEXT:    [[TMP32:%.*]] = load ptr, ptr [[DOTPART_ID__ADDR_I]], align 8, !noalias !112<br>
>  // CHECK4-51-NEXT:    store i32 4, ptr [[TMP32]], align 4<br>
>  // CHECK4-51-NEXT:    [[OMP_GLOBAL_THREAD_NUM14_I:%.*]] = call i32 @__kmpc_global_thread_num(ptr @[[GLOB21]])<br>
><br>
> diff  --git a/clang/test/OpenMP/task_if_codegen.cpp b/clang/test/OpenMP/task_if_codegen.cpp<br>
> index 1809951e9379b..742833d7e3665 100644<br>
> --- a/clang/test/OpenMP/task_if_codegen.cpp<br>
> +++ b/clang/test/OpenMP/task_if_codegen.cpp<br>
> @@ -198,7 +198,7 @@ int main() {<br>
>  // CHECK1-NEXT:    [[TMP25:%.*]] = call i32 @__kmpc_omp_task_with_deps(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]], i32 1, ptr [[TMP18]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    br label [[OMP_IF_END7:%.*]]<br>
>  // CHECK1:       omp_if.else6:<br>
> -// CHECK1-NEXT:    call void @__kmpc_omp_taskwait_deps_51(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP18]], i32 0, ptr null, i32 0)<br>
> +// CHECK1-NEXT:    call void @__kmpc_omp_wait_deps(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP18]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_begin_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]])<br>
>  // CHECK1-NEXT:    [[TMP26:%.*]] = call i32 @.omp_task_entry..9(i32 [[TMP0]], ptr [[TMP15]]) #[[ATTR3]]<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_complete_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]])<br>
> @@ -404,7 +404,7 @@ int main() {<br>
>  // CHECK1-NEXT:    [[TMP26:%.*]] = call i32 @__kmpc_omp_task_with_deps(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]], i32 1, ptr [[TMP18]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    br label [[OMP_IF_END7:%.*]]<br>
>  // CHECK1:       omp_if.else6:<br>
> -// CHECK1-NEXT:    call void @__kmpc_omp_taskwait_deps_51(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP18]], i32 0, ptr null, i32 0)<br>
> +// CHECK1-NEXT:    call void @__kmpc_omp_wait_deps(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP18]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_begin_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]])<br>
>  // CHECK1-NEXT:    [[TMP27:%.*]] = call i32 @.omp_task_entry..17(i32 [[TMP0]], ptr [[TMP15]]) #[[ATTR3]]<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_complete_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP15]])<br>
> @@ -429,7 +429,7 @@ int main() {<br>
>  // CHECK1-NEXT:    [[TMP39:%.*]] = call i32 @__kmpc_omp_task_with_deps(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP28]], i32 1, ptr [[TMP31]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    br label [[OMP_IF_END14:%.*]]<br>
>  // CHECK1:       omp_if.else13:<br>
> -// CHECK1-NEXT:    call void @__kmpc_omp_taskwait_deps_51(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP31]], i32 0, ptr null, i32 0)<br>
> +// CHECK1-NEXT:    call void @__kmpc_omp_wait_deps(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP31]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_begin_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP28]])<br>
>  // CHECK1-NEXT:    [[TMP40:%.*]] = call i32 @.omp_task_entry..19(i32 [[TMP0]], ptr [[TMP28]]) #[[ATTR3]]<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_complete_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP28]])<br>
> @@ -454,7 +454,7 @@ int main() {<br>
>  // CHECK1-NEXT:    [[TMP52:%.*]] = call i32 @__kmpc_omp_task_with_deps(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP41]], i32 1, ptr [[TMP44]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    br label [[OMP_IF_END21:%.*]]<br>
>  // CHECK1:       omp_if.else20:<br>
> -// CHECK1-NEXT:    call void @__kmpc_omp_taskwait_deps_51(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP44]], i32 0, ptr null, i32 0)<br>
> +// CHECK1-NEXT:    call void @__kmpc_omp_wait_deps(ptr @[[GLOB1]], i32 [[TMP0]], i32 1, ptr [[TMP44]], i32 0, ptr null)<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_begin_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP41]])<br>
>  // CHECK1-NEXT:    [[TMP53:%.*]] = call i32 @.omp_task_entry..21(i32 [[TMP0]], ptr [[TMP41]]) #[[ATTR3]]<br>
>  // CHECK1-NEXT:    call void @__kmpc_omp_task_complete_if0(ptr @[[GLOB1]], i32 [[TMP0]], ptr [[TMP41]])<br>
><br>
> diff  --git a/clang/test/OpenMP/taskwait_ast_print.cpp b/clang/test/OpenMP/taskwait_ast_print.cpp<br>
> index 6392356a6082b..5b40242ece1cb 100644<br>
> --- a/clang/test/OpenMP/taskwait_ast_print.cpp<br>
> +++ b/clang/test/OpenMP/taskwait_ast_print.cpp<br>
> @@ -1,10 +1,10 @@<br>
> -// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -ast-print %s | FileCheck %s<br>
> -// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -x c++ -std=c++11 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s<br>
> +// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=50 -ast-print %s | FileCheck %s<br>
> +// RUN: %clang_cc1 -fopenmp -fopenmp-version=50 -x c++ -std=c++11 -emit-pch -o %t %s<br>
> +// RUN: %clang_cc1 -fopenmp -fopenmp-version=50 -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s<br>
><br>
> -// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=51 -ast-print %s | FileCheck %s<br>
> -// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -x c++ -std=c++11 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s<br>
> +// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=50 -ast-print %s | FileCheck %s<br>
> +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=50 -x c++ -std=c++11 -emit-pch -o %t %s<br>
> +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=50 -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s<br>
>  // expected-no-diagnostics<br>
><br>
>  #ifndef HEADER<br>
> @@ -19,23 +19,6 @@ T tmain(T argc) {<br>
>  #pragma omp taskwait depend(in:a, argc)<br>
>    return a + argc;<br>
>  }<br>
> -<br>
> -template <class T><br>
> -T nmain(T argc) {<br>
> -  static T a;<br>
> -#pragma omp taskwait<br>
> -#pragma omp taskwait nowait<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
> -template <class T><br>
> -T ndmain(T argc) {<br>
> -  static T a;<br>
> -#pragma omp taskwait<br>
> -#pragma omp taskwait depend(in:a, argc) nowait<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
>  // CHECK:      static T a;<br>
>  // CHECK-NEXT: #pragma omp taskwait{{$}}<br>
>  // CHECK-NEXT: #pragma omp taskwait depend(in : a,argc){{$}}<br>
> @@ -46,26 +29,6 @@ T ndmain(T argc) {<br>
>  // CHECK-NEXT: #pragma omp taskwait<br>
>  // CHECK-NEXT: #pragma omp taskwait depend(in : a,argc){{$}}<br>
><br>
> -// CHECK:      static T a;<br>
> -// CHECK-NEXT: #pragma omp taskwait{{$}}<br>
> -// CHECK-NEXT: #pragma omp taskwait nowait{{$}}<br>
> -// CHECK:      static int a;<br>
> -// CHECK-NEXT: #pragma omp taskwait<br>
> -// CHECK-NEXT: #pragma omp taskwait nowait{{$}}<br>
> -// CHECK:      static char a;<br>
> -// CHECK-NEXT: #pragma omp taskwait<br>
> -// CHECK-NEXT: #pragma omp taskwait nowait{{$}}<br>
> -<br>
> -// CHECK:      static T a;<br>
> -// CHECK-NEXT: #pragma omp taskwait{{$}}<br>
> -// CHECK-NEXT: #pragma omp taskwait depend(in : a,argc) nowait{{$}}<br>
> -// CHECK:      static int a;<br>
> -// CHECK-NEXT: #pragma omp taskwait<br>
> -// CHECK-NEXT: #pragma omp taskwait depend(in : a,argc) nowait{{$}}<br>
> -// CHECK:      static char a;<br>
> -// CHECK-NEXT: #pragma omp taskwait<br>
> -// CHECK-NEXT: #pragma omp taskwait depend(in : a,argc) nowait{{$}}<br>
> -<br>
>  int main(int argc, char **argv) {<br>
>    static int a;<br>
>  // CHECK: static int a;<br>
> @@ -73,7 +36,7 @@ int main(int argc, char **argv) {<br>
>  #pragma omp taskwait depend(out:a, argc)<br>
>    // CHECK-NEXT: #pragma omp taskwait<br>
>    // CHECK-NEXT: #pragma omp taskwait depend(out : a,argc)<br>
> -  return tmain(argc) + tmain(argv[0][0]) + a + nmain(argc) + nmain(argv[0][0]) + ndmain(argc) + ndmain(argv[0][0]);<br>
> +  return tmain(argc) + tmain(argv[0][0]) + a;<br>
>  }<br>
><br>
>  #endif<br>
><br>
> diff  --git a/clang/test/OpenMP/taskwait_codegen.cpp b/clang/test/OpenMP/taskwait_codegen.cpp<br>
> index 888a59e1d2867..4ea8af9afc309 100644<br>
> --- a/clang/test/OpenMP/taskwait_codegen.cpp<br>
> +++ b/clang/test/OpenMP/taskwait_codegen.cpp<br>
> @@ -29,11 +29,11 @@ int main(int argc, char **argv) {<br>
><br>
>  // CHECK-LABEL: @main<br>
>  // CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(ptr @{{.+}})<br>
> -// CHECK: call i32 @__kmpc_omp_taskwait_51(ptr @{{.+}}, i32 [[GTID]], i32 0)<br>
> +// CHECK: call i32 @__kmpc_omp_taskwait(ptr @{{.+}}, i32 [[GTID]])<br>
><br>
>  // CHECK-LABEL: tmain<br>
>  // CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(ptr @{{.+}})<br>
> -// CHECK: call i32 @__kmpc_omp_taskwait_51(ptr @{{.+}}, i32 [[GTID]], i32 0)<br>
> +// CHECK: call i32 @__kmpc_omp_taskwait(ptr @{{.+}}, i32 [[GTID]])<br>
><br>
><br>
>  #endif<br>
><br>
> diff  --git a/clang/test/OpenMP/taskwait_depend_codegen.cpp b/clang/test/OpenMP/taskwait_depend_codegen.cpp<br>
> index 81b4dce29c783..e68fbc1debb3f 100644<br>
> --- a/clang/test/OpenMP/taskwait_depend_codegen.cpp<br>
> +++ b/clang/test/OpenMP/taskwait_depend_codegen.cpp<br>
> @@ -32,7 +32,7 @@ int main(int argc, char **argv) {<br>
><br>
>  // CHECK-LABEL: tmain<br>
>  // CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(ptr @{{.+}})<br>
> -// CHECK: call void @__kmpc_omp_taskwait_deps_51(ptr @{{.+}}, i32 [[GTID]], i32 1, ptr %{{.}}, i32 0, ptr null, i32 0)<br>
> +// CHECK: call void @__kmpc_omp_wait_deps(ptr @{{.+}}, i32 [[GTID]], i32 1, ptr %{{.}}, i32 0, ptr null)<br>
><br>
><br>
>  #endif<br>
><br>
> diff  --git a/clang/test/OpenMP/taskwait_depend_nowait_codegen.cpp b/clang/test/OpenMP/taskwait_depend_nowait_codegen.cpp<br>
> deleted file mode 100644<br>
> index 2c08b83516fad..0000000000000<br>
> --- a/clang/test/OpenMP/taskwait_depend_nowait_codegen.cpp<br>
> +++ /dev/null<br>
> @@ -1,50 +0,0 @@<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -fopenmp -fopenmp-version=51 -x c++ -emit-llvm %s -o - | FileCheck %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br>
> -<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -fopenmp-simd -fopenmp-version=51 -x c++ -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s<br>
> -// SIMD-ONLY0-NOT: {{__kmpc|__tgt}}<br>
> -// expected-no-diagnostics<br>
> -#ifndef HEADER<br>
> -#define HEADER<br>
> -<br>
> -void foo() {}<br>
> -<br>
> -template <class T><br>
> -T tmain(T &argc) {<br>
> -  static T a;<br>
> -  #pragma omp taskwait depend(in:argc)<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
> -template <class T><br>
> -T nmain(T &argc) {<br>
> -  static T a;<br>
> -  #pragma omp taskwait depend(in:argc) nowait<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
> -int main(int argc, char **argv) {<br>
> -  int n = 0;<br>
> -  #pragma omp task shared(n,argc) depend(out:n)<br>
> -     n = argc;<br>
> -  return tmain(n) + nmain(n);<br>
> -}<br>
> -<br>
> -// CHECK-LABEL: @main<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: [[ALLOC:%.+]] = call i8* @__kmpc_omp_task_alloc(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 1, i64 40, i64 16, i32 (i32, i8*)* bitcast (i32 (i32, %{{.+}}*)* @{{.+}} to i32 (i32, i8*)*))<br>
> -// CHECK: %{{.+}} = call i32 @__kmpc_omp_task_with_deps(%{{.+}}* @{{.+}}, i32 [[GTID]], i8* [[ALLOC]], i32 1, i8* %{{[0-9]*}}, i32 0, i8* null)<br>
> -<br>
> -// CHECK-LABEL: define {{.*}} @{{.*}}tmain{{.*}}<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: call void @__kmpc_omp_taskwait_deps_51(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 1, i8* %{{.}}, i32 0, i8* null, i32 0)<br>
> -<br>
> -// CHECK-LABEL: define {{.*}} @{{.*}}nmain{{.*}}<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: call void @__kmpc_omp_taskwait_deps_51(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 1, i8* %{{.}}, i32 0, i8* null, i32 1)<br>
> -<br>
> -<br>
> -#endif<br>
><br>
> diff  --git a/clang/test/OpenMP/taskwait_nowait_codegen.cpp b/clang/test/OpenMP/taskwait_nowait_codegen.cpp<br>
> deleted file mode 100644<br>
> index af843a9363c05..0000000000000<br>
> --- a/clang/test/OpenMP/taskwait_nowait_codegen.cpp<br>
> +++ /dev/null<br>
> @@ -1,51 +0,0 @@<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -fopenmp -fopenmp-version=51 -x c++ -emit-llvm %s -o - | FileCheck %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br>
> -//<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -o - | FileCheck %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s<br>
> -<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -verify -triple x86_64-apple-darwin10 -fopenmp-simd -fopenmp-version=51 -x c++ -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -emit-pch -o %t %s<br>
> -// RUN: %clang_cc1 -no-opaque-pointers -fopenmp-simd -fopenmp-version=51 -x c++ -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s<br>
> -// SIMD-ONLY0-NOT: {{__kmpc|__tgt}}<br>
> -// expected-no-diagnostics<br>
> -#ifndef HEADER<br>
> -#define HEADER<br>
> -<br>
> -void foo() {}<br>
> -<br>
> -template <class T><br>
> -T tmain(T argc) {<br>
> -  static T a;<br>
> -#pragma omp taskwait<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
> -template <class T><br>
> -T no_wait(T argc) {<br>
> -  static T a;<br>
> -#pragma omp taskwait nowait<br>
> -  return a + argc;<br>
> -}<br>
> -<br>
> -int main(int argc, char **argv) {<br>
> -#pragma omp taskwait<br>
> -  return tmain(argc)+no_wait(argc);<br>
> -}<br>
> -<br>
> -// CHECK-LABEL: @main<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: call i32 @__kmpc_omp_taskwait_51(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 0)<br>
> -<br>
> -// CHECK-LABEL: define {{.*}} @{{.*}}tmain{{.*}}<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: call i32 @__kmpc_omp_taskwait_51(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 0)<br>
> -//<br>
> -// CHECK-LABEL: define {{.*}} @{{.*}}no_wait{{.*}}<br>
> -// CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num(%{{.+}}* @{{.+}})<br>
> -// CHECK: call i32 @__kmpc_omp_taskwait_51(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 1)<br>
> -<br>
> -<br>
> -#endif<br>
><br>
> diff  --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td b/llvm/include/llvm/Frontend/OpenMP/OMP.td<br>
> index f2bd5b4c9eb88..a43e9f6cd68f3 100644<br>
> --- a/llvm/include/llvm/Frontend/OpenMP/OMP.td<br>
> +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td<br>
> @@ -563,8 +563,7 @@ def OMP_Error : Directive<"error"> {<br>
>  }<br>
>  def OMP_TaskWait : Directive<"taskwait"> {<br>
>    let allowedClauses = [<br>
> -    VersionedClause<OMPC_Depend, 50>,<br>
> -    VersionedClause<OMPC_NoWait, 51><br>
> +    VersionedClause<OMPC_Depend, 50><br>
>    ];<br>
>  }<br>
>  def OMP_TaskGroup : Directive<"taskgroup"> {<br>
><br>
> diff  --git a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h<br>
> index 507d11ececfca..f029e32e85f95 100644<br>
> --- a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h<br>
> +++ b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h<br>
> @@ -729,8 +729,7 @@ class OpenMPIRBuilder {<br>
>    /// Generator for '#omp taskwait'<br>
>    ///<br>
>    /// \param Loc The location where the taskwait directive was encountered.<br>
> -  void createTaskwait(const LocationDescription &Loc,<br>
> -                      bool HasNowaitClause = false);<br>
> +  void createTaskwait(const LocationDescription &Loc);<br>
><br>
>    /// Generator for '#omp taskyield'<br>
>    ///<br>
> @@ -1019,8 +1018,7 @@ class OpenMPIRBuilder {<br>
>    /// Generate a taskwait runtime call.<br>
>    ///<br>
>    /// \param Loc The location at which the request originated and is fulfilled.<br>
> -  void emitTaskwaitImpl(const LocationDescription &Loc,<br>
> -                        bool HasNowaitClause = false);<br>
> +  void emitTaskwaitImpl(const LocationDescription &Loc);<br>
><br>
>    /// Generate a taskyield runtime call.<br>
>    ///<br>
><br>
> diff  --git a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def<br>
> index bef838afb9f8e..8ff66f41b7b86 100644<br>
> --- a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def<br>
> +++ b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def<br>
> @@ -206,7 +206,6 @@ __OMP_RTL(__kmpc_fork_call, true, Void, IdentPtr, Int32, ParallelTaskPtr)<br>
>  __OMP_RTL(__kmpc_fork_call_if, false, Void, IdentPtr, Int32, ParallelTaskPtr,<br>
>            Int32, VoidPtr)<br>
>  __OMP_RTL(__kmpc_omp_taskwait, false, Int32, IdentPtr, Int32)<br>
> -__OMP_RTL(__kmpc_omp_taskwait_51, false, Int32, IdentPtr, Int32, Int32)<br>
>  __OMP_RTL(__kmpc_omp_taskyield, false, Int32, IdentPtr, Int32, /* Int */ Int32)<br>
>  __OMP_RTL(__kmpc_push_num_threads, false, Void, IdentPtr, Int32,<br>
>            /* Int */ Int32)<br>
> @@ -374,8 +373,6 @@ __OMP_RTL(__kmpc_proxy_task_completed_ooo, false, Void, VoidPtr)<br>
><br>
>  __OMP_RTL(__kmpc_omp_wait_deps, false, Void, IdentPtr, Int32, Int32,<br>
>            /* kmp_depend_info_t */ VoidPtr, Int32, VoidPtr)<br>
> -__OMP_RTL(__kmpc_omp_taskwait_deps_51, false, Void, IdentPtr, Int32, Int32,<br>
> -          /* kmp_depend_info_t */ VoidPtr, Int32, VoidPtr, Int32)<br>
>  __OMP_RTL(__kmpc_cancellationpoint, false, Int32, IdentPtr, Int32, Int32)<br>
><br>
>  __OMP_RTL(__kmpc_fork_teams, true, Void, IdentPtr, Int32, ParallelTaskPtr)<br>
> @@ -639,8 +636,6 @@ __OMP_RTL_ATTRS(__kmpc_fork_call, ForkAttrs, AttributeSet(),<br>
>                  ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), ReadOnlyPtrAttrs))<br>
>  __OMP_RTL_ATTRS(__kmpc_omp_taskwait, BarrierAttrs, AttributeSet(),<br>
>                  ParamAttrs(ReadOnlyPtrAttrs))<br>
> -__OMP_RTL_ATTRS(__kmpc_omp_taskwait_51, BarrierAttrs, AttributeSet(),<br>
> -                ParamAttrs(ReadOnlyPtrAttrs))<br>
>  __OMP_RTL_ATTRS(__kmpc_omp_taskyield, InaccessibleArgOnlyAttrs, AttributeSet(),<br>
>                  ParamAttrs(ReadOnlyPtrAttrs))<br>
>  __OMP_RTL_ATTRS(__kmpc_push_num_threads, InaccessibleArgOnlyAttrs,<br>
> @@ -903,9 +898,6 @@ __OMP_RTL_ATTRS(__kmpc_proxy_task_completed_ooo, DefaultAttrs, AttributeSet(),<br>
>  __OMP_RTL_ATTRS(__kmpc_omp_wait_deps, BarrierAttrs, AttributeSet(),<br>
>                  ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(),<br>
>                             ReadOnlyPtrAttrs))<br>
> -__OMP_RTL_ATTRS(__kmpc_omp_taskwait_deps_51, BarrierAttrs, AttributeSet(),<br>
> -                ParamAttrs(ReadOnlyPtrAttrs, AttributeSet(), AttributeSet(),<br>
> -                           ReadOnlyPtrAttrs))<br>
>  __OMP_RTL_ATTRS(__kmpc_cancellationpoint, DefaultAttrs, AttributeSet(),<br>
>                  ParamAttrs(ReadOnlyPtrAttrs))<br>
><br>
><br>
> diff  --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp<br>
> index f002644739185..91d235e109ee3 100644<br>
> --- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp<br>
> +++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp<br>
> @@ -1228,26 +1228,23 @@ void OpenMPIRBuilder::createFlush(const LocationDescription &Loc) {<br>
>    emitFlush(Loc);<br>
>  }<br>
><br>
> -void OpenMPIRBuilder::emitTaskwaitImpl(const LocationDescription &Loc,<br>
> -                                       bool HasNowaitClause) {<br>
> +void OpenMPIRBuilder::emitTaskwaitImpl(const LocationDescription &Loc) {<br>
>    // Build call kmp_int32 __kmpc_omp_taskwait(ident_t *loc, kmp_int32<br>
>    // global_tid);<br>
>    uint32_t SrcLocStrSize;<br>
>    Constant *SrcLocStr = getOrCreateSrcLocStr(Loc, SrcLocStrSize);<br>
>    Value *Ident = getOrCreateIdent(SrcLocStr, SrcLocStrSize);<br>
> -  Value *NowaitClauseValue = ConstantInt::get(Int32, HasNowaitClause);<br>
> -  Value *Args[] = {Ident, getOrCreateThreadID(Ident), NowaitClauseValue};<br>
> +  Value *Args[] = {Ident, getOrCreateThreadID(Ident)};<br>
><br>
>    // Ignore return result until untied tasks are supported.<br>
> -  Builder.CreateCall(<br>
> -      getOrCreateRuntimeFunctionPtr(OMPRTL___kmpc_omp_taskwait_51), Args);<br>
> +  Builder.CreateCall(getOrCreateRuntimeFunctionPtr(OMPRTL___kmpc_omp_taskwait),<br>
> +                     Args);<br>
>  }<br>
><br>
> -void OpenMPIRBuilder::createTaskwait(const LocationDescription &Loc,<br>
> -                                     bool HasNowaitClause) {<br>
> +void OpenMPIRBuilder::createTaskwait(const LocationDescription &Loc) {<br>
>    if (!updateToLocation(Loc))<br>
>      return;<br>
> -  emitTaskwaitImpl(Loc, HasNowaitClause);<br>
> +  emitTaskwaitImpl(Loc);<br>
>  }<br>
><br>
>  void OpenMPIRBuilder::emitTaskyieldImpl(const LocationDescription &Loc) {<br>
> @@ -2370,7 +2367,7 @@ OpenMPIRBuilder::InsertPointTy OpenMPIRBuilder::applyWorkshareLoop(<br>
>    case OMPScheduleType::BaseRuntimeSimd:<br>
>      assert(!ChunkSize &&<br>
>             "schedule type does not support user-defined chunk sizes");<br>
> -    LLVM_FALLTHROUGH;<br>
> +    [[fallthrough]];<br>
>    case OMPScheduleType::BaseDynamicChunked:<br>
>    case OMPScheduleType::BaseGuidedChunked:<br>
>    case OMPScheduleType::BaseGuidedIterativeChunked:<br>
><br>
> diff  --git a/mlir/test/Target/LLVMIR/openmp-llvm.mlir b/mlir/test/Target/LLVMIR/openmp-llvm.mlir<br>
> index 94e37c1e035ff..31009e4a02ea0 100644<br>
> --- a/mlir/test/Target/LLVMIR/openmp-llvm.mlir<br>
> +++ b/mlir/test/Target/LLVMIR/openmp-llvm.mlir<br>
> @@ -7,7 +7,7 @@ llvm.func @test_stand_alone_directives() {<br>
>    omp.barrier<br>
><br>
>    // CHECK: [[OMP_THREAD1:%.*]] = call i32 @__kmpc_global_thread_num(ptr @{{[0-9]+}})<br>
> -  // CHECK-NEXT:  [[RET_VAL:%.*]] = call i32 @__kmpc_omp_taskwait_51(ptr @{{[0-9]+}}, i32 [[OMP_THREAD1]], i32 0)<br>
> +  // CHECK-NEXT:  [[RET_VAL:%.*]] = call i32 @__kmpc_omp_taskwait(ptr @{{[0-9]+}}, i32 [[OMP_THREAD1]])<br>
>    omp.taskwait<br>
><br>
>    // CHECK: [[OMP_THREAD2:%.*]] = call i32 @__kmpc_global_thread_num(ptr @{{[0-9]+}})<br>
><br>
> diff  --git a/openmp/runtime/src/dllexports b/openmp/runtime/src/dllexports<br>
> index 28d8371795ede..0699e75968410 100644<br>
> --- a/openmp/runtime/src/dllexports<br>
> +++ b/openmp/runtime/src/dllexports<br>
> @@ -345,7 +345,6 @@ kmpc_set_defaults                           224<br>
>          __kmpc_fork_teams                   241<br>
>          __kmpc_omp_task_with_deps           242<br>
>          __kmpc_omp_wait_deps                243<br>
> -        __kmpc_omp_taskwait_deps_51         292<br>
>          __kmpc_cancel                       244<br>
>          __kmpc_cancellationpoint            245<br>
>          __kmpc_cancel_barrier               246<br>
><br>
> diff  --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h<br>
> index 99bd39b916142..e38ef81c0feb7 100644<br>
> --- a/openmp/runtime/src/kmp.h<br>
> +++ b/openmp/runtime/src/kmp.h<br>
> @@ -3976,10 +3976,6 @@ KMP_EXPORT void __kmpc_omp_task_complete_if0(ident_t *loc_ref, kmp_int32 gtid,<br>
>  KMP_EXPORT kmp_int32 __kmpc_omp_task_parts(ident_t *loc_ref, kmp_int32 gtid,<br>
>                                             kmp_task_t *new_task);<br>
>  KMP_EXPORT kmp_int32 __kmpc_omp_taskwait(ident_t *loc_ref, kmp_int32 gtid);<br>
> -/* __kmpc_omp_taskwait_51 : Function for OpenMP 5.1 nowait clause.<br>
> - *                          Placeholder for taskwait with nowait clause.*/<br>
> -KMP_EXPORT kmp_int32 __kmpc_omp_taskwait_51(ident_t *loc_ref, kmp_int32 gtid,<br>
> -                                            kmp_int32 has_no_wait);<br>
><br>
>  KMP_EXPORT kmp_int32 __kmpc_omp_taskyield(ident_t *loc_ref, kmp_int32 gtid,<br>
>                                            int end_part);<br>
> @@ -4004,15 +4000,6 @@ KMP_EXPORT void __kmpc_omp_wait_deps(ident_t *loc_ref, kmp_int32 gtid,<br>
>                                       kmp_depend_info_t *dep_list,<br>
>                                       kmp_int32 ndeps_noalias,<br>
>                                       kmp_depend_info_t *noalias_dep_list);<br>
> -/* __kmpc_omp_taskwait_deps_51 : Function for OpenMP 5.1 nowait clause.<br>
> - *                               Placeholder for taskwait with nowait clause.*/<br>
> -KMP_EXPORT void __kmpc_omp_taskwait_deps_51(ident_t *loc_ref, kmp_int32 gtid,<br>
> -                                            kmp_int32 ndeps,<br>
> -                                            kmp_depend_info_t *dep_list,<br>
> -                                            kmp_int32 ndeps_noalias,<br>
> -                                            kmp_depend_info_t *noalias_dep_list,<br>
> -                                            kmp_int32 has_no_wait);<br>
> -<br>
>  extern kmp_int32 __kmp_omp_task(kmp_int32 gtid, kmp_task_t *new_task,<br>
>                                  bool serialize_immediate);<br>
><br>
><br>
> diff  --git a/openmp/runtime/src/kmp_taskdeps.cpp b/openmp/runtime/src/kmp_taskdeps.cpp<br>
> index 5fcb84d0befa7..6c1d93a89183c 100644<br>
> --- a/openmp/runtime/src/kmp_taskdeps.cpp<br>
> +++ b/openmp/runtime/src/kmp_taskdeps.cpp<br>
> @@ -744,24 +744,10 @@ Blocks the current task until all specifies dependences have been fulfilled.<br>
>  void __kmpc_omp_wait_deps(ident_t *loc_ref, kmp_int32 gtid, kmp_int32 ndeps,<br>
>                            kmp_depend_info_t *dep_list, kmp_int32 ndeps_noalias,<br>
>                            kmp_depend_info_t *noalias_dep_list) {<br>
> -  __kmpc_omp_taskwait_deps_51(loc_ref, gtid, ndeps, dep_list, ndeps_noalias,<br>
> -                              noalias_dep_list, false);<br>
> -}<br>
> +  KA_TRACE(10, ("__kmpc_omp_wait_deps(enter): T#%d loc=%p\n", gtid, loc_ref));<br>
><br>
> -/* __kmpc_omp_taskwait_deps_51 : Function for OpenMP 5.1 nowait clause.<br>
> -                                 Placeholder for taskwait with nowait clause.<br>
> -                                 Earlier code of __kmpc_omp_wait_deps() is now<br>
> -                                 in this function.<br>
> -*/<br>
> -void __kmpc_omp_taskwait_deps_51(ident_t *loc_ref, kmp_int32 gtid,<br>
> -                                 kmp_int32 ndeps, kmp_depend_info_t *dep_list,<br>
> -                                 kmp_int32 ndeps_noalias,<br>
> -                                 kmp_depend_info_t *noalias_dep_list,<br>
> -                                 kmp_int32 has_no_wait) {<br>
> -  KA_TRACE(10, ("__kmpc_omp_taskwait_deps(enter): T#%d loc=%p nowait#%d\n",<br>
> -                gtid, loc_ref, has_no_wait));<br>
>    if (ndeps == 0 && ndeps_noalias == 0) {<br>
> -    KA_TRACE(10, ("__kmpc_omp_taskwait_deps(exit): T#%d has no dependences to "<br>
> +    KA_TRACE(10, ("__kmpc_omp_wait_deps(exit): T#%d has no dependences to "<br>
>                    "wait upon : loc=%p\n",<br>
>                    gtid, loc_ref));<br>
>      return;<br>
> @@ -853,7 +839,7 @@ void __kmpc_omp_taskwait_deps_51(ident_t *loc_ref, kmp_int32 gtid,<br>
>    ignore = ignore || current_task->td_dephash == NULL;<br>
><br>
>    if (ignore) {<br>
> -    KA_TRACE(10, ("__kmpc_omp_taskwait_deps(exit): T#%d has no blocking "<br>
> +    KA_TRACE(10, ("__kmpc_omp_wait_deps(exit): T#%d has no blocking "<br>
>                    "dependences : loc=%p\n",<br>
>                    gtid, loc_ref));<br>
>  #if OMPT_SUPPORT<br>
> @@ -868,7 +854,7 @@ void __kmpc_omp_taskwait_deps_51(ident_t *loc_ref, kmp_int32 gtid,<br>
>    if (!__kmp_check_deps(gtid, &node, NULL, &current_task->td_dephash,<br>
>                          DEP_BARRIER, ndeps, dep_list, ndeps_noalias,<br>
>                          noalias_dep_list)) {<br>
> -    KA_TRACE(10, ("__kmpc_omp_taskwait_deps(exit): T#%d has no blocking "<br>
> +    KA_TRACE(10, ("__kmpc_omp_wait_deps(exit): T#%d has no blocking "<br>
>                    "dependences : loc=%p\n",<br>
>                    gtid, loc_ref));<br>
>  #if OMPT_SUPPORT<br>
> @@ -889,7 +875,6 @@ void __kmpc_omp_taskwait_deps_51(ident_t *loc_ref, kmp_int32 gtid,<br>
>  #if OMPT_SUPPORT<br>
>    __ompt_taskwait_dep_finish(current_task, taskwait_task_data);<br>
>  #endif /* OMPT_SUPPORT */<br>
> -  KA_TRACE(10, ("__kmpc_omp_taskwait_deps(exit): T#%d finished waiting : loc=%p\<br>
> -                \n",<br>
> +  KA_TRACE(10, ("__kmpc_omp_wait_deps(exit): T#%d finished waiting : loc=%p\n",<br>
>                  gtid, loc_ref));<br>
>  }<br>
><br>
> diff  --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp<br>
> index 90e59b1067339..1622c6aea10d7 100644<br>
> --- a/openmp/runtime/src/kmp_tasking.cpp<br>
> +++ b/openmp/runtime/src/kmp_tasking.cpp<br>
> @@ -2049,8 +2049,7 @@ kmp_int32 __kmp_omp_taskloop_task(ident_t *loc_ref, kmp_int32 gtid,<br>
>  template <bool ompt><br>
>  static kmp_int32 __kmpc_omp_taskwait_template(ident_t *loc_ref, kmp_int32 gtid,<br>
>                                                void *frame_address,<br>
> -                                              void *return_address,<br>
> -                                              kmp_int32 has_no_wait) {<br>
> +                                              void *return_address) {<br>
>    kmp_taskdata_t *taskdata = nullptr;<br>
>    kmp_info_t *thread;<br>
>    int thread_finished = FALSE;<br>
> @@ -2163,34 +2162,23 @@ static kmp_int32 __kmpc_omp_taskwait_template(ident_t *loc_ref, kmp_int32 gtid,<br>
>  OMPT_NOINLINE<br>
>  static kmp_int32 __kmpc_omp_taskwait_ompt(ident_t *loc_ref, kmp_int32 gtid,<br>
>                                            void *frame_address,<br>
> -                                          void *return_address,<br>
> -                                          kmp_int32 has_no_wait) {<br>
> +                                          void *return_address) {<br>
>    return __kmpc_omp_taskwait_template<true>(loc_ref, gtid, frame_address,<br>
> -                                            return_address, has_no_wait);<br>
> +                                            return_address);<br>
>  }<br>
>  #endif // OMPT_SUPPORT && OMPT_OPTIONAL<br>
><br>
>  // __kmpc_omp_taskwait: Wait until all tasks generated by the current task are<br>
>  // complete<br>
>  kmp_int32 __kmpc_omp_taskwait(ident_t *loc_ref, kmp_int32 gtid) {<br>
> -  return __kmpc_omp_taskwait_51(loc_ref, gtid, false);<br>
> -}<br>
> -<br>
> -/* __kmpc_omp_taskwait_51 : Function for OpenMP 5.1 nowait clause.<br>
> - *                          Placeholder for taskwait with nowait clause.<br>
> - *                          The code is a copy of __kmpc_omp_taskwait.*/<br>
> -kmp_int32 __kmpc_omp_taskwait_51(ident_t *loc_ref, kmp_int32 gtid,<br>
> -                                 kmp_int32 has_no_wait) {<br>
>  #if OMPT_SUPPORT && OMPT_OPTIONAL<br>
>    if (UNLIKELY(ompt_enabled.enabled)) {<br>
>      OMPT_STORE_RETURN_ADDRESS(gtid);<br>
>      return __kmpc_omp_taskwait_ompt(loc_ref, gtid, OMPT_GET_FRAME_ADDRESS(0),<br>
> -                                    OMPT_LOAD_RETURN_ADDRESS(gtid),<br>
> -                                    has_no_wait);<br>
> +                                    OMPT_LOAD_RETURN_ADDRESS(gtid));<br>
>    }<br>
>  #endif<br>
> -  return __kmpc_omp_taskwait_template<false>(loc_ref, gtid, NULL, NULL,<br>
> -                                             has_no_wait);<br>
> +  return __kmpc_omp_taskwait_template<false>(loc_ref, gtid, NULL, NULL);<br>
>  }<br>
><br>
>  // __kmpc_omp_taskyield: switch to a<br>
> diff erent task<br>
><br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> cfe-commits@lists.llvm.org<br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a>
<o:p></o:p></p>
</div>
</div>
</body>
</html>