<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>