[llvm-branch-commits] [cfe-branch] r318315 - Merging r315578:
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Nov 15 09:51:09 PST 2017
Author: tstellar
Date: Wed Nov 15 09:51:08 2017
New Revision: 318315
URL: http://llvm.org/viewvc/llvm-project?rev=318315&view=rev
Log:
Merging r315578:
------------------------------------------------------------------------
r315578 | abataev | 2017-10-12 06:51:32 -0700 (Thu, 12 Oct 2017) | 7 lines
[OPENMP] Fix PR34925: Fix getting thread_id lvalue for inlined regions
in C.
If we try to get the lvalue for thread_id variables in inlined regions,
we did not use the correct version of function. Fixed this bug by adding
overrided version of the function getThreadIDVariableLValue for inlined
regions.
------------------------------------------------------------------------
Added:
cfe/branches/release_50/test/OpenMP/task_codegen.c
Modified:
cfe/branches/release_50/lib/CodeGen/CGOpenMPRuntime.cpp
Modified: cfe/branches/release_50/lib/CodeGen/CGOpenMPRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/CodeGen/CGOpenMPRuntime.cpp?rev=318315&r1=318314&r2=318315&view=diff
==============================================================================
--- cfe/branches/release_50/lib/CodeGen/CGOpenMPRuntime.cpp (original)
+++ cfe/branches/release_50/lib/CodeGen/CGOpenMPRuntime.cpp Wed Nov 15 09:51:08 2017
@@ -264,6 +264,13 @@ public:
return nullptr;
}
+ /// \brief Get an LValue for the current ThreadID variable.
+ LValue getThreadIDVariableLValue(CodeGenFunction &CGF) override {
+ if (OuterRegionInfo)
+ return OuterRegionInfo->getThreadIDVariableLValue(CGF);
+ llvm_unreachable("No LValue for inlined OpenMP construct");
+ }
+
/// \brief Get the name of the capture helper.
StringRef getHelperName() const override {
if (auto *OuterRegionInfo = getOldCSI())
Added: cfe/branches/release_50/test/OpenMP/task_codegen.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/OpenMP/task_codegen.c?rev=318315&view=auto
==============================================================================
--- cfe/branches/release_50/test/OpenMP/task_codegen.c (added)
+++ cfe/branches/release_50/test/OpenMP/task_codegen.c Wed Nov 15 09:51:08 2017
@@ -0,0 +1,30 @@
+// RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -x c -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang_cc1 -fopenmp -x c -triple x86_64-apple-darwin10 -emit-pch -o %t %s
+// RUN: %clang_cc1 -fopenmp -x c -triple x86_64-apple-darwin10 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
+// expected-no-diagnostics
+#ifndef HEADER
+#define HEADER
+
+void foo();
+
+// CHECK-LABEL: @main
+int main() {
+ // CHECK: call i32 @__kmpc_global_thread_num(
+ // CHECK: call i8* @__kmpc_omp_task_alloc(
+ // CHECK: call i32 @__kmpc_omp_task(
+#pragma omp task
+ {
+#pragma omp taskgroup
+ {
+#pragma omp task
+ foo();
+ }
+ }
+ // CHECK: ret i32 0
+ return 0;
+}
+// CHECK: call void @__kmpc_taskgroup(
+// CHECK: call i8* @__kmpc_omp_task_alloc(
+// CHECK: call i32 @__kmpc_omp_task(
+// CHECK: call void @__kmpc_end_taskgroup(
+#endif
More information about the llvm-branch-commits
mailing list