Hi Alexey Looks like this is failing on Darwin, can you please take a look? Refer to http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/58951/consoleFull <http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/58951/consoleFull>.
******************** TEST 'Clang :: Modules/builtins.m' FAILED ******************** 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): -- <>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. > On Mar 11, 2019, at 12:51 PM, Alexey Bataev via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > Author: abataev > Date: Mon Mar 11 12:51:42 2019 > New Revision: 355858 > > URL: http://llvm.org/viewvc/llvm-project?rev=355858&view=rev > Log: > [OPENMP]Fix codegen for declare target link in target regions. > > If the declare target link global is used in the target region > indirectly (used in the inner parallel, teams, etc. regions), we may > miss this variable and it leads to incorrect codegen. > > Modified: > cfe/trunk/lib/Sema/SemaOpenMP.cpp > cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp > > Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=355858&r1=355857&r2=355858&view=diff > ============================================================================== > --- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original) > +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Mon Mar 11 12:51:42 2019 > @@ -147,6 +147,9 @@ private: > /// Reference to the taskgroup task_reduction reference expression. > Expr *TaskgroupReductionRef = nullptr; > llvm::DenseSet<QualType> MappedClassesQualTypes; > + /// List of globals marked as declare target link in this target region > + /// (isOpenMPTargetExecutionDirective(Directive) == true). > + llvm::SmallVector<DeclRefExpr *, 4> DeclareTargetLinkVarDecls; > SharingMapTy(OpenMPDirectiveKind DKind, DeclarationNameInfo Name, > Scope *CurScope, SourceLocation Loc) > : Directive(DKind), DirectiveName(Name), CurScope(CurScope), > @@ -674,6 +677,31 @@ public: > return StackElem.MappedClassesQualTypes.count(QT) != 0; > } > > + /// Adds global declare target to the parent target region. > + void addToParentTargetRegionLinkGlobals(DeclRefExpr *E) { > + assert(*OMPDeclareTargetDeclAttr::isDeclareTargetDeclaration( > + E->getDecl()) == OMPDeclareTargetDeclAttr::MT_Link && > + "Expected declare target link global."); > + if (isStackEmpty()) > + return; > + auto It = Stack.back().first.rbegin(); > + while (It != Stack.back().first.rend() && > + !isOpenMPTargetExecutionDirective(It->Directive)) > + ++It; > + if (It != Stack.back().first.rend()) { > + assert(isOpenMPTargetExecutionDirective(It->Directive) && > + "Expected target executable directive."); > + It->DeclareTargetLinkVarDecls.push_back(E); > + } > + } > + > + /// Returns the list of globals with declare target link if current > directive > + /// is target. > + ArrayRef<DeclRefExpr *> getLinkGlobals() const { > + assert(isOpenMPTargetExecutionDirective(getCurrentDirective()) && > + "Expected target executable directive."); > + return Stack.back().first.back().DeclareTargetLinkVarDecls; > + } > }; > > bool isImplicitTaskingRegion(OpenMPDirectiveKind DKind) { > @@ -2414,8 +2442,18 @@ public: > // Define implicit data-sharing attributes for task. > DVar = Stack->getImplicitDSA(VD, /*FromParent=*/false); > if (isOpenMPTaskingDirective(DKind) && DVar.CKind != OMPC_shared && > - !Stack->isLoopControlVariable(VD).first) > + !Stack->isLoopControlVariable(VD).first) { > ImplicitFirstprivate.push_back(E); > + return; > + } > + > + // Store implicitly used globals with declare target link for parent > + // target. > + if (!isOpenMPTargetExecutionDirective(DKind) && Res && > + *Res == OMPDeclareTargetDeclAttr::MT_Link) { > + Stack->addToParentTargetRegionLinkGlobals(E); > + return; > + } > } > } > void VisitMemberExpr(MemberExpr *E) { > @@ -2573,7 +2611,13 @@ public: > } > > DSAAttrChecker(DSAStackTy *S, Sema &SemaRef, CapturedStmt *CS) > - : Stack(S), SemaRef(SemaRef), ErrorFound(false), CS(CS) {} > + : Stack(S), SemaRef(SemaRef), ErrorFound(false), CS(CS) { > + // Process declare target link variables for the target directives. > + if (isOpenMPTargetExecutionDirective(S->getCurrentDirective())) { > + for (DeclRefExpr *E : Stack->getLinkGlobals()) > + Visit(E); > + } > + } > }; > } // namespace > > > Modified: cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp?rev=355858&r1=355857&r2=355858&view=diff > ============================================================================== > --- cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp (original) > +++ cfe/trunk/test/OpenMP/declare_target_link_codegen.cpp Mon Mar 11 12:51:42 > 2019 > @@ -37,10 +37,13 @@ int maini1() { > { > a = c; > } > +#pragma omp target > +#pragma omp teams > + c = a; > return 0; > } > > -// DEVICE: define weak void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-7]](i32* > dereferenceable{{[^,]*}} > +// DEVICE: define weak void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-10]](i32* > dereferenceable{{[^,]*}} > // DEVICE: [[C_REF:%.+]] = load i32*, i32** @c_decl_tgt_link_ptr, > // DEVICE: [[C:%.+]] = load i32, i32* [[C_REF]], > // DEVICE: store i32 [[C]], i32* % > @@ -59,9 +62,10 @@ int maini1() { > // HOST: [[BP0:%.+]] = getelementptr inbounds [2 x i8*], [2 x i8*]* > [[BASEPTRS]], i{{[0-9]+}} 0, i{{[0-9]+}} 0 > // HOST: [[P0:%.+]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[PTRS]], > i{{[0-9]+}} 0, i{{[0-9]+}} 0 > // 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)) > -// HOST: call void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-26]](i32* %{{[^,]+}}) > +// HOST: call void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-29]](i32* %{{[^,]+}}) > +// HOST: call i32 @__tgt_target_teams(i64 -1, i8* > @.__omp_offloading_{{.+}}_l40.region_id, i32 2, {{.+}}) > > -// HOST: define internal void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-28]](i32* > dereferenceable{{.*}}) > +// HOST: define internal void > @__omp_offloading_{{.*}}_{{.*}}maini1{{.*}}_l[[@LINE-32]](i32* > dereferenceable{{.*}}) > // HOST: [[C:%.*]] = load i32, i32* @c, > // HOST: store i32 [[C]], i32* % > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits