<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body dir="auto">
I see that the next builds passed. Seems to me it wqs some kind of flacky fails.<br>
<br>
<div id="AppleMailSignature" dir="ltr">Best regards,
<div>Alexey Bataev</div>
</div>
<div dir="ltr"><br>
11 марта 2019 г., в 17:56, Azhar Mohammed <<a href="mailto:azhar@apple.com">azhar@apple.com</a>> написал(а):<br>
<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Alexey
<div class=""><br class="">
</div>
<div class="">Looks like this is failing on Darwin, can you please take a look? Refer to
<a href="http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/58951/consoleFull" class="">
http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/58951/consoleFull</a>.</div>
<div class=""><br class="">
</div>
<div class=""><span title="Regression test failed" style="box-sizing: border-box; font-family: monospace; font-size: 15px; white-space: pre-wrap; color: white; background-color: red;" class="">******************** TEST 'Clang :: Modules/builtins.m' FAILED ********************
</span><span style="caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: monospace; font-size: 15px; white-space: pre-wrap;" class="">Script: -- : 'RUN: at line 1'; rm -rf /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp
 : 'RUN: at line 2'; /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/bin/clang -cc1 -internal-isystem /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/lib/clang/9.0.0/include -nostdsysteminc
 -fmodules-cache-path=/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp -fmodules -fimplicit-module-maps -I /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs
 /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/builtins.m -verify : 'RUN: at line 3'; /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/bin/clang -cc1 -internal-isystem /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/lib/clang/9.0.0/include
 -nostdsysteminc -fmodules-cache-path=/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp -fmodules -fimplicit-module-maps -I /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs
 -x c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/builtins.m -verify : 'RUN: at line 4'; /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/bin/clang -cc1 -internal-isystem
 /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/lib/clang/9.0.0/include -nostdsysteminc -fmodules-cache-path=/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp
 -fmodules -fimplicit-module-maps -I /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs -x objective-c++ /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/builtins.m
 -verify : 'RUN: at line 6'; rm -rf /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp.pch.cache : 'RUN: at line 7'; /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/bin/clang
 -cc1 -internal-isystem /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/lib/clang/9.0.0/include -nostdsysteminc -fmodules-cache-path=/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp.pch.cache
 -fmodules -fimplicit-module-maps -I /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs -emit-pch -o /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp.pch
 -x objective-c-header /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs/use-builtin.h : 'RUN: at line 8'; /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/bin/clang -cc1
 -internal-isystem /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/lib/clang/9.0.0/include -nostdsysteminc -fmodules-cache-path=/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp.pch.cache
 -fmodules -fimplicit-module-maps -I /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/Inputs /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/builtins.m -include-pch
 /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/clang-build/tools/clang/test/Modules/Output/builtins.m.tmp.pch /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/test/Modules/builtins.m -verify -- Exit
 Code: 134 Command Output (stderr): -- </span><a id="-964495996d489585b-5106-414a-ac11-3ff90657619c" style="box-sizing: border-box; word-wrap: break-word; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: monospace; font-size: 15px; white-space: pre-wrap; display: block; position: relative; top: -2em; visibility: hidden;" class=""></a><span title="Assertion failure" style="box-sizing: border-box; font-family: monospace; font-size: 15px; white-space: pre-wrap; color: white; background-color: red;" class="">Assertion
 failed: ((Imported == nullptr || Imported == SuggestedModule.getModule()) && "the imported module is different than the suggested one"), function HandleIncludeDirective, file /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm/tools/clang/lib/Lex/PPDirectives.cpp,
 line 1952.</span><br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Mar 11, 2019, at 12:51 PM, Alexey Bataev via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Author: abataev<br class="">
Date: Mon Mar 11 12:51:42 2019<br class="">
New Revision: 355858<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=355858&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=355858&view=rev</a><br class="">
Log:<br class="">
[OPENMP]Fix codegen for declare target link in target regions.<br class="">
<br class="">
If the declare target link global is used in the target region<br class="">
indirectly (used in the inner parallel, teams, etc. regions), we may<br class="">
miss this variable and it leads to incorrect codegen.<br class="">
<br class="">
Modified:<br class="">
   cfe/trunk/lib/Sema/SemaOpenMP.cpp<br class="">
   cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp<br class="">
<br class="">
Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=355858&r1=355857&r2=355858&view=diff" class="">
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=355858&r1=355857&r2=355858&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)<br class="">
+++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Mon Mar 11 12:51:42 2019<br class="">
@@ -147,6 +147,9 @@ private:<br class="">
    /// Reference to the taskgroup task_reduction reference expression.<br class="">
    Expr *TaskgroupReductionRef = nullptr;<br class="">
    llvm::DenseSet<QualType> MappedClassesQualTypes;<br class="">
+    /// List of globals marked as declare target link in this target region<br class="">
+    /// (isOpenMPTargetExecutionDirective(Directive) == true).<br class="">
+    llvm::SmallVector<DeclRefExpr *, 4> DeclareTargetLinkVarDecls;<br class="">
    SharingMapTy(OpenMPDirectiveKind DKind, DeclarationNameInfo Name,<br class="">
                 Scope *CurScope, SourceLocation Loc)<br class="">
        : Directive(DKind), DirectiveName(Name), CurScope(CurScope),<br class="">
@@ -674,6 +677,31 @@ public:<br class="">
    return StackElem.MappedClassesQualTypes.count(QT) != 0;<br class="">
  }<br class="">
<br class="">
+  /// Adds global declare target to the parent target region.<br class="">
+  void addToParentTargetRegionLinkGlobals(DeclRefExpr *E) {<br class="">
+    assert(*OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration(<br class="">
+               E->getDecl()) == OMPDeclareTargetDeclAttr::MT_Link &&<br class="">
+           "Expected declare target link global.");<br class="">
+    if (isStackEmpty())<br class="">
+      return;<br class="">
+    auto It = Stack.back().first.rbegin();<br class="">
+    while (It != Stack.back().first.rend() &&<br class="">
+           !isOpenMPTargetExecutionDirective(It->Directive))<br class="">
+      ++It;<br class="">
+    if (It != Stack.back().first.rend()) {<br class="">
+      assert(isOpenMPTargetExecutionDirective(It->Directive) &&<br class="">
+             "Expected target executable directive.");<br class="">
+      It->DeclareTargetLinkVarDecls.push_back(E);<br class="">
+    }<br class="">
+  }<br class="">
+<br class="">
+  /// Returns the list of globals with declare target link if current directive<br class="">
+  /// is target.<br class="">
+  ArrayRef<DeclRefExpr *> getLinkGlobals() const {<br class="">
+    assert(isOpenMPTargetExecutionDirective(getCurrentDirective()) &&<br class="">
+           "Expected target executable directive.");<br class="">
+    return Stack.back().first.back().DeclareTargetLinkVarDecls;<br class="">
+  }<br class="">
};<br class="">
<br class="">
bool isImplicitTaskingRegion(OpenMPDirectiveKind DKind) {<br class="">
@@ -2414,8 +2442,18 @@ public:<br class="">
      // Define implicit data-sharing attributes for task.<br class="">
      DVar = Stack->getImplicitDSA(VD, /*FromParent=*/false);<br class="">
      if (isOpenMPTaskingDirective(DKind) && DVar.CKind != OMPC_shared &&<br class="">
-          !Stack->isLoopControlVariable(VD).first)<br class="">
+          !Stack->isLoopControlVariable(VD).first) {<br class="">
        ImplicitFirstprivate.push_back(E);<br class="">
+        return;<br class="">
+      }<br class="">
+<br class="">
+      // Store implicitly used globals with declare target link for parent<br class="">
+      // target.<br class="">
+      if (!isOpenMPTargetExecutionDirective(DKind) && Res &&<br class="">
+          *Res == OMPDeclareTargetDeclAttr::MT_Link) {<br class="">
+        Stack->addToParentTargetRegionLinkGlobals(E);<br class="">
+        return;<br class="">
+      }<br class="">
    }<br class="">
  }<br class="">
  void VisitMemberExpr(MemberExpr *E) {<br class="">
@@ -2573,7 +2611,13 @@ public:<br class="">
  }<br class="">
<br class="">
  DSAAttrChecker(DSAStackTy *S, Sema &SemaRef, CapturedStmt *CS)<br class="">
-      : Stack(S), SemaRef(SemaRef), ErrorFound(false), CS(CS) {}<br class="">
+      : Stack(S), SemaRef(SemaRef), ErrorFound(false), CS(CS) {<br class="">
+    // Process declare target link variables for the target directives.<br class="">
+    if (isOpenMPTargetExecutionDirective(S->getCurrentDirective())) {<br class="">
+      for (DeclRefExpr *E : Stack->getLinkGlobals())<br class="">
+        Visit(E);<br class="">
+    }<br class="">
+  }<br class="">
};<br class="">
} // namespace<br class="">
<br class="">
<br class="">
Modified: cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp?rev=355858&r1=355857&r2=355858&view=diff" class="">
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp?rev=355858&r1=355857&r2=355858&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp (original)<br class="">
+++ cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp Mon Mar 11 12:51:42 2019<br class="">
@@ -37,10 +37,13 @@ int maini1() {<br class="">
  {<br class="">
    a = c;<br class="">
  }<br class="">
+#pragma omp target<br class="">
+#pragma omp teams<br class="">
+  c = a;<br class="">
  return 0;<br class="">
}<br class="">
<br class="">
-// DEVICE: define weak void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-7]](i32* dereferenceable{{[^,]*}}<br class="">
+// DEVICE: define weak void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-10]](i32* dereferenceable{{[^,]*}}<br class="">
// DEVICE: [[C_REF:%.+]] = load i32*, i32** @c_decl_tgt_link_ptr,<br class="">
// DEVICE: [[C:%.+]] = load i32, i32* [[C_REF]],<br class="">
// DEVICE: store i32 [[C]], i32* %<br class="">
@@ -59,9 +62,10 @@ int maini1() {<br class="">
// HOST: [[BP0:%.+]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[BASEPTRS]], i{{[0-9]+}} 0, i{{[0-9]+}} 0<br class="">
// HOST: [[P0:%.+]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[PTRS]], i{{[0-9]+}} 0, i{{[0-9]+}} 0<br class="">
// HOST: call i32 @__tgt_target(i64 -1, i8* @{{[^,]+}}, i32 2, i8** [[BP0]], i8** [[P0]], i64* getelementptr inbounds ([2 x i64], [2 x i64]* [[SIZES]], i{{[0-9]+}} 0, i{{[0-9]+}} 0), i64* getelementptr inbounds ([2 x i64], [2 x i64]* [[MAPTYPES]], i{{[0-9]+}}
 0, i{{[0-9]+}} 0))<br class="">
-// HOST: call void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-26]](i32* %{{[^,]+}})<br class="">
+// HOST: call void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-29]](i32* %{{[^,]+}})<br class="">
+// HOST: call i32 @__tgt_target_teams(i64 -1, i8* @.__omp_offloading_{{.+}}_l40.region_id, i32 2, {{.+}})<br class="">
<br class="">
-// HOST: define internal void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-28]](i32* dereferenceable{{.*}})<br class="">
+// HOST: define internal void @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-32]](i32* dereferenceable{{.*}})<br class="">
// HOST: [[C:%.*]] = load i32, i32* @c,<br class="">
// HOST: store i32 [[C]], i32* %<br class="">
<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
cfe-commits mailing list<br class="">
<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a><br class="">
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</body>
</html>