llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-flang-fir-hlfir Author: llvmbot <details> <summary>Changes</summary> Backport 0563f0d88d8314edcde7deab465759a84696e894 Requested by: @<!-- -->bonachea --- Patch is 97.31 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/214510.diff 11 Files Affected: - (modified) flang/include/flang/Optimizer/Dialect/MIF/MIFOps.td (+8-8) - (modified) flang/lib/Lower/MultiImageFortran.cpp (+3-3) - (modified) flang/lib/Optimizer/Builder/IntrinsicCall.cpp (+7-4) - (modified) flang/lib/Optimizer/Transforms/MIFOpConversion.cpp (+21-25) - (modified) flang/test/Fir/MIF/change_team.mlir (+12-16) - (modified) flang/test/Fir/MIF/change_team2.mlir (+65-72) - (modified) flang/test/Fir/MIF/form_team.mlir (+25-31) - (modified) flang/test/Fir/MIF/get_team.mlir (+39-40) - (modified) flang/test/Fir/MIF/sync_team.mlir (+16-22) - (modified) flang/test/Fir/MIF/team_number.mlir (+10-13) - (modified) flang/test/Fir/MIF/this_image.mlir (+19-32) ``````````diff diff --git a/flang/include/flang/Optimizer/Dialect/MIF/MIFOps.td b/flang/include/flang/Optimizer/Dialect/MIF/MIFOps.td index 337a9eab0b087..cdc81ab1b9764 100644 --- a/flang/include/flang/Optimizer/Dialect/MIF/MIFOps.td +++ b/flang/include/flang/Optimizer/Dialect/MIF/MIFOps.td @@ -67,7 +67,7 @@ def mif_NumImagesOp : mif_Op<"num_images", [AttrSizedOperandSegments]> { }]; let arguments = (ins Optional<AnyInteger>:$team_number, - Optional<AnyRefOrBoxType>:$team); + Optional<AnyReferenceLike>:$team); let results = (outs I32:$res); let builders = [OpBuilder<(ins CArg<"mlir::Value", "{}">:$teamArg)>]; @@ -108,7 +108,7 @@ def mif_ThisImageOp : mif_Op<"this_image", [AttrSizedOperandSegments]> { }]; let arguments = (ins Optional<AnyType>:$coarray, Optional<AnyInteger>:$dim, - Optional<AnyRefOrBoxType>:$team); + Optional<AnyReferenceLike>:$team); let results = (outs AnyType:$res); let builders = [OpBuilder<(ins "mlir::Value":$coarray, "mlir::Value":$dim, @@ -151,7 +151,7 @@ def mif_ImageIndexOp : mif_Op<"image_index", [AttrSizedOperandSegments]> { }]; let arguments = (ins AnyType:$coarray, fir_BoxType:$sub, - Optional<AnyRefOrBoxType>:$team, Optional<AnyInteger>:$team_number); + Optional<AnyReferenceLike>:$team, Optional<AnyInteger>:$team_number); let builders = [OpBuilder<(ins "mlir::Value":$coarray, "mlir::Value":$sub, "mlir::Value":$team)>]; @@ -292,7 +292,7 @@ def mif_SyncMemoryOp : mif_Op<"sync_memory", [AttrSizedOperandSegments]> { def mif_SyncTeamOp : mif_Op<"sync_team", [AttrSizedOperandSegments]> { let summary = "Performs a synchronization of the team, identified by `team`"; - let arguments = (ins AnyRefOrBoxType:$team, Optional<AnyReferenceLike>:$stat, + let arguments = (ins AnyReferenceLike:$team, Optional<AnyReferenceLike>:$stat, Optional<AnyRefOrBoxType>:$errmsg); let assemblyFormat = [{ $team (`stat` $stat^ )? @@ -418,7 +418,7 @@ def mif_FormTeamOp : mif_Op<"form_team", [AttrSizedOperandSegments]> { }]; let arguments = (ins AnyIntegerType:$team_number, - Arg<fir_BoxType, "", [MemWrite]>:$team_var, + Arg<AnyReferenceLike, "", [MemWrite]>:$team_var, Optional<AnyIntegerType>:$new_index, Arg<Optional<AnyReferenceLike>, "", [MemWrite]>:$stat, Arg<Optional<AnyRefOrBoxType>, "", [MemWrite]>:$errmsg); @@ -471,7 +471,7 @@ def mif_ChangeTeamOp : region_Op<"change_team", [AttrSizedOperandSegments]> { } }]; - let arguments = (ins AnyRefOrBoxType:$team, + let arguments = (ins AnyReferenceLike:$team, Arg<Optional<AnyReferenceLike>, "", [MemWrite]>:$stat, Arg<Optional<AnyRefOrBoxType>, "", [MemWrite]>:$errmsg); @@ -511,7 +511,7 @@ def mif_GetTeamOp : mif_Op<"get_team", []> { }]; let arguments = (ins Optional<AnyIntegerType>:$level); - let results = (outs fir_BoxType:$team); + let results = (outs AnyType:$team); let assemblyFormat = [{ (`level` $level^ )? @@ -527,7 +527,7 @@ def mif_TeamNumberOp : mif_Op<"team_number", []> { If `team` is absent, the team specified is the current team. }]; - let arguments = (ins Optional<AnyRefOrBoxType>:$team); + let arguments = (ins Optional<AnyReferenceLike>:$team); let results = (outs I64); let assemblyFormat = [{ diff --git a/flang/lib/Lower/MultiImageFortran.cpp b/flang/lib/Lower/MultiImageFortran.cpp index 66ffca0b850dd..12149a537ec29 100644 --- a/flang/lib/Lower/MultiImageFortran.cpp +++ b/flang/lib/Lower/MultiImageFortran.cpp @@ -99,7 +99,7 @@ void Fortran::lower::genSyncTeamStatement( std::get<Fortran::parser::TeamValue>(stmt.t); const SomeExpr *teamExpr = Fortran::semantics::GetExpr(teamValue); mlir::Value team = - fir::getBase(converter.genExprBox(loc, *teamExpr, stmtCtx)); + fir::getBase(converter.genExprAddr(loc, *teamExpr, stmtCtx)); // Handle STAT and ERRMSG values const std::list<Fortran::parser::StatOrErrmsg> &statOrErrList = @@ -163,7 +163,7 @@ Fortran::lower::genChangeTeamStmt(Fortran::lower::AbstractConverter &converter, // Handle TEAM-VALUE const auto *teamExpr = Fortran::semantics::GetExpr(std::get<Fortran::parser::TeamValue>(stmt.t)); - team = fir::getBase(converter.genExprBox(loc, *teamExpr, stmtCtx)); + team = fir::getBase(converter.genExprAddr(loc, *teamExpr, stmtCtx)); return mif::ChangeTeamOp::create(builder, loc, team, statAddr, errMsgAddr); } @@ -253,7 +253,7 @@ void Fortran::lower::genFormTeamStatement( // Handle TEAM-VARIABLE const auto *teamExpr = Fortran::semantics::GetExpr( std::get<Fortran::parser::TeamVariable>(stmt.t)); - team = fir::getBase(converter.genExprBox(loc, *teamExpr, stmtCtx)); + team = fir::getBase(converter.genExprAddr(loc, *teamExpr, stmtCtx)); mif::FormTeamOp::create(builder, loc, teamNumber, team, newIndex, statAddr, errMsgAddr); diff --git a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp index 9ec64844cf6d6..dd36043ecddf5 100644 --- a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp +++ b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp @@ -643,7 +643,7 @@ static constexpr IntrinsicHandler handlers[]{ {"null", &I::genNull, {{{"mold", asInquired}}}, /*isElemental=*/false}, {"num_images", &I::genNumImages, - {{{"team_number", asValue}, {"team", asBox}}}, + {{{"team_number", asValue}, {"team", asAddr}}}, /*isElemental*/ false}, {"pack", &I::genPack, @@ -830,13 +830,13 @@ static constexpr IntrinsicHandler handlers[]{ {"tanpi", &I::genTanpi}, {"team_number", &I::genTeamNumber, - {{{"team", asBox, handleDynamicOptional}}}, + {{{"team", asAddr, handleDynamicOptional}}}, /*isElemental=*/false}, {"this_image", &I::genThisImage, {{{"coarray", asBox}, {"dim", asValue}, - {"team", asBox, handleDynamicOptional}}}, + {"team", asAddr, handleDynamicOptional}}}, /*isElemental=*/false}, {"time", &I::genTime, {}, /*isElemental=*/false}, {"timef", &I::genTimef, {}, /*isElemental=*/false}, @@ -4275,7 +4275,7 @@ mlir::Value IntrinsicLibrary::genGetTeam(mlir::Type resultType, llvm::ArrayRef<mlir::Value> args) { checkCoarrayEnabled(loc, options); assert(args.size() == 1); - return mif::GetTeamOp::create(builder, loc, fir::BoxType::get(resultType), + return mif::GetTeamOp::create(builder, loc, builder.getRefType(resultType), /*level*/ args[0]); } @@ -8354,6 +8354,9 @@ IntrinsicLibrary::genThisImage(mlir::Type resultType, const bool dimIsAbsent = args.size() < 3; mlir::Value team = fir::getBase(args[args.size() - 1]); + if (team) + team = fir::BoxAddrOp::create(builder, loc, team); + if (!coarrayIsAbsent && dimIsAbsent) { mlir::Type eleTy = hlfir::getFortranElementType(resultType); mlir::Type thisImageResultTy = fir::BoxType::get( diff --git a/flang/lib/Optimizer/Transforms/MIFOpConversion.cpp b/flang/lib/Optimizer/Transforms/MIFOpConversion.cpp index 77dfb5ac957ea..d5b76e000212b 100644 --- a/flang/lib/Optimizer/Transforms/MIFOpConversion.cpp +++ b/flang/lib/Optimizer/Transforms/MIFOpConversion.cpp @@ -472,12 +472,11 @@ struct MIFThisImageOpConversion mlir::Type i64Ty = builder.getI64Type(); mlir::Type i32Ty = builder.getI32Type(); mlir::Type boxTy = fir::BoxType::get(rewriter.getNoneType()); + mlir::Type refTy = builder.getRefType(rewriter.getNoneType()); mlir::Value teamArg = op.getTeam(); if (!op.getTeam()) - teamArg = fir::AbsentOp::create(builder, loc, boxTy); - else - teamArg = builder.createBox(loc, teamArg); + teamArg = fir::AbsentOp::create(builder, loc, refTy); if (op.getCoarray()) { llvm::SmallVector<mlir::Value> args; @@ -494,7 +493,7 @@ struct MIFThisImageOpConversion ftype = mlir::FunctionType::get(builder.getContext(), /*inputs*/ {boxTy, builder.getRefType(i32Ty), - boxTy, builder.getRefType(i64Ty)}, + refTy, builder.getRefType(i64Ty)}, /*results*/ {}); funcOp = builder.createFunction( loc, getPRIFProcName("this_image_with_dim"), ftype); @@ -510,7 +509,7 @@ struct MIFThisImageOpConversion result = builder.createBox(loc, builder.createTemporary(loc, resTy)); ftype = mlir::FunctionType::get( builder.getContext(), - /*inputs*/ {boxTy, boxTy, fir::BoxType::get(resTy)}, + /*inputs*/ {boxTy, refTy, fir::BoxType::get(resTy)}, /*results*/ {}); funcOp = builder.createFunction( loc, getPRIFProcName("this_image_with_coarray"), ftype); @@ -529,7 +528,7 @@ struct MIFThisImageOpConversion mlir::Value result = builder.createTemporary(loc, i32Ty); mlir::FunctionType ftype = mlir::FunctionType::get( builder.getContext(), - /*inputs*/ {boxTy, builder.getRefType(i32Ty)}, /*results*/ {}); + /*inputs*/ {refTy, builder.getRefType(i32Ty)}, /*results*/ {}); mlir::func::FuncOp funcOp = builder.createFunction( loc, getPRIFProcName("this_image_no_coarray"), ftype); @@ -557,7 +556,7 @@ struct MIFNumImagesOpConversion mlir::Type i32Ty = builder.getI32Type(); mlir::Type i64Ty = builder.getI64Type(); - mlir::Type boxTy = fir::BoxType::get(rewriter.getNoneType()); + mlir::Type refTy = builder.getRefType(rewriter.getNoneType()); mlir::Value result = builder.createTemporary(loc, i32Ty); mlir::func::FuncOp funcOp; @@ -574,7 +573,7 @@ struct MIFNumImagesOpConversion mlir::FunctionType ftype = mlir::FunctionType::get(builder.getContext(), /*inputs*/ - {boxTy, builder.getRefType(i32Ty)}, + {refTy, builder.getRefType(i32Ty)}, /*results*/ {}); funcOp = builder.createFunction( loc, getPRIFProcName("num_images_with_team"), ftype); @@ -722,11 +721,11 @@ struct MIFSyncTeamOpConversion fir::FirOpBuilder builder(rewriter, mod); mlir::Location loc = op.getLoc(); - mlir::Type boxTy = fir::BoxType::get(builder.getNoneType()); + mlir::Type refTy = builder.getRefType(builder.getNoneType()); mlir::Type errmsgTy = getPRIFErrmsgType(builder); mlir::FunctionType ftype = mlir::FunctionType::get( builder.getContext(), - /*inputs*/ {boxTy, getPRIFStatType(builder), errmsgTy, errmsgTy}, + /*inputs*/ {refTy, getPRIFStatType(builder), errmsgTy, errmsgTy}, /*results*/ {}); mlir::func::FuncOp funcOp = builder.createFunction(loc, getPRIFProcName("sync_team"), ftype); @@ -882,11 +881,11 @@ struct MIFFormTeamOpConversion fir::FirOpBuilder builder(rewriter, mod); mlir::Location loc = op.getLoc(); mlir::Type errmsgTy = getPRIFErrmsgType(builder); - mlir::Type boxTy = fir::BoxType::get(builder.getNoneType()); + mlir::Type refTy = builder.getRefType(builder.getNoneType()); mlir::FunctionType ftype = mlir::FunctionType::get( builder.getContext(), /*inputs*/ - {builder.getRefType(builder.getI64Type()), boxTy, + {builder.getRefType(builder.getI64Type()), refTy, builder.getRefType(builder.getI32Type()), getPRIFStatType(builder), errmsgTy, errmsgTy}, /*results*/ {}); @@ -960,10 +959,10 @@ struct MIFChangeTeamOpConversion mlir::Location loc = op.getLoc(); mlir::Type errmsgTy = getPRIFErrmsgType(builder); - mlir::Type boxTy = fir::BoxType::get(builder.getNoneType()); + mlir::Type refTy = builder.getRefType(builder.getNoneType()); mlir::FunctionType ftype = mlir::FunctionType::get( builder.getContext(), - /*inputs*/ {boxTy, getPRIFStatType(builder), errmsgTy, errmsgTy}, + /*inputs*/ {refTy, getPRIFStatType(builder), errmsgTy, errmsgTy}, /*results*/ {}); mlir::func::FuncOp funcOp = builder.createFunction(loc, getPRIFProcName("change_team"), ftype); @@ -1019,11 +1018,11 @@ struct MIFGetTeamOpConversion : public mlir::OpRewritePattern<mif::GetTeamOp> { fir::FirOpBuilder builder(rewriter, mod); mlir::Location loc = op.getLoc(); - mlir::Type boxTy = fir::BoxType::get(builder.getNoneType()); + mlir::Type refTy = builder.getRefType(builder.getNoneType()); mlir::Type lvlTy = builder.getRefType(builder.getI32Type()); mlir::FunctionType ftype = mlir::FunctionType::get(builder.getContext(), - /*inputs*/ {lvlTy, boxTy}, + /*inputs*/ {lvlTy, refTy}, /*results*/ {}); mlir::func::FuncOp funcOp = builder.createFunction(loc, getPRIFProcName("get_team"), ftype); @@ -1042,13 +1041,12 @@ struct MIFGetTeamOpConversion : public mlir::OpRewritePattern<mif::GetTeamOp> { mlir::Type resultType = op.getResult().getType(); mlir::Type baseTy = fir::unwrapRefType(resultType); mlir::Value team = builder.createTemporary(loc, baseTy); - fir::EmboxOp box = fir::EmboxOp::create(builder, loc, resultType, team); llvm::SmallVector<mlir::Value> args = - fir::runtime::createArguments(builder, loc, ftype, level, box); + fir::runtime::createArguments(builder, loc, ftype, level, team); fir::CallOp::create(builder, loc, funcOp, args); - rewriter.replaceOp(op, box); + rewriter.replaceOp(op, team); return mlir::success(); } }; @@ -1065,17 +1063,17 @@ struct MIFTeamNumberOpConversion fir::FirOpBuilder builder(rewriter, mod); mlir::Location loc = op.getLoc(); mlir::Type i64Ty = builder.getI64Type(); - mlir::Type boxTy = fir::BoxType::get(builder.getNoneType()); + mlir::Type refTy = builder.getRefType(builder.getNoneType()); mlir::FunctionType ftype = mlir::FunctionType::get(builder.getContext(), - /*inputs*/ {boxTy, builder.getRefType(i64Ty)}, + /*inputs*/ {refTy, builder.getRefType(i64Ty)}, /*results*/ {}); mlir::func::FuncOp funcOp = builder.createFunction(loc, getPRIFProcName("team_number"), ftype); mlir::Value team = op.getTeam(); if (!team) - team = fir::AbsentOp::create(builder, loc, boxTy); + team = fir::AbsentOp::create(builder, loc, refTy); mlir::Value result = builder.createTemporary(loc, i64Ty); llvm::SmallVector<mlir::Value> args = @@ -1336,14 +1334,12 @@ struct MIFImageIndexOpConversion std::string imageIndexName = op.getTeamNumber() ? getPRIFProcName("image_index_with_team_number") : getPRIFProcName("image_index_with_team"); - mlir::Type teamTy = boxTy; + mlir::Type teamTy = builder.getRefType(builder.getNoneType()); if (op.getTeamNumber()) { teamTy = builder.getRefType(i64Ty); mlir::Value t = builder.createConvert(loc, i64Ty, team); team = builder.createTemporary(loc, i64Ty); fir::StoreOp::create(builder, loc, t, team); - } else { - team = builder.createBox(loc, team); } mlir::FunctionType ftype = mlir::FunctionType::get( builder.getContext(), diff --git a/flang/test/Fir/MIF/change_team.mlir b/flang/test/Fir/MIF/change_team.mlir index b80f121e09f2e..402e64c00e3d3 100644 --- a/flang/test/Fir/MIF/change_team.mlir +++ b/flang/test/Fir/MIF/change_team.mlir @@ -9,21 +9,17 @@ %4:2 = hlfir.declare %3 {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) %5 = fir.alloca i32 {bindc_name = "stat", uniq_name = "_QFEstat"} %6:2 = hlfir.declare %5 {uniq_name = "_QFEstat"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) - %7 = fir.alloca !fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}> {bindc_name = "team", uniq_name = "_QFEteam"} - %8:2 = hlfir.declare %7 {uniq_name = "_QFEteam"} : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>) -> (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>, !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>) - %9 = fir.address_of(@_QQ_QM__fortran_builtinsT__builtin_team_type.DerivedInit) : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>> - fir.copy %9 to %8#0 no_overlap : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>, !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>> - %10 = fir.embox %8#0 : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>) -> !fir.box<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>> - mif.change_team %10 : (!fir.box<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>) { - %13 = fir.load %4#0 : !fir.ref<i32> + %7 = fir.address_of(@_QFEteam) : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>> + %8:2 = hlfir.declare %7 {uniq_name = "_QFEteam"} : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>>) -> (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>>, !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>>) + mif.change_team %8#0 : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>>) { + %10 = fir.load %4#0 : !fir.ref<i32> %c1_i32 = arith.constant 1 : i32 - %14 = arith.addi %13, %c1_i32 : i32 - hlfir.assign %14 to %4#0 : i32, !fir.ref<i32> + %11 = arith.addi %10, %c1_i32 : i32 + hlfir.assign %11 to %4#0 : i32, !fir.ref<i32> mif.end_team : () -> () } - %11 = fir.embox %2#0 : (!fir.ref<!fir.char<1,10>>) -> !fir.box<!fir.char<1,10>> - %12 = fir.embox %8#0 : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>) -> !fir.box<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>> - mif.change_team %12 stat %6#0 errmsg %11 : (!fir.box<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.__id:i64}>>, !fir.ref<i32>, !fir.box<!fir.char<1,10>>) { + %9 = fir.embox %2#0 : (!fir.ref<!fir.char<1,10>>) -> !fir.box<!fir.char<1,10>> + mif.change_team %8#0 stat %6#0 errmsg %9 : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_team_type{_QM__fortran_builtinsT__builtin_team_type.info:!fir.box<!fir.ptr<!fir.type<_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type{_QM__fortran_builtinsT__builtin_dummy_team_descriptor_type.__placeholder:i64}>>>}>>, !fir.ref<i32>, !fir.box<!fir.char<1,10>>) { mi... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/214510 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
