[flang-commits] [flang] 0a79ab0 - [flang][PFT-to-MLIR] Default wrap-unstructured-constructs-in-execute-region to off (#211290)
via flang-commits
flang-commits at lists.llvm.org
Wed Jul 22 23:06:06 PDT 2026
Author: Kareem Ergawy
Date: 2026-07-23T08:06:02+02:00
New Revision: 0a79ab0b7a7fe38f20d0f5df11b2530ff1c0c0cc
URL: https://github.com/llvm/llvm-project/commit/0a79ab0b7a7fe38f20d0f5df11b2530ff1c0c0cc
DIFF: https://github.com/llvm/llvm-project/commit/0a79ab0b7a7fe38f20d0f5df11b2530ff1c0c0cc.diff
LOG: [flang][PFT-to-MLIR] Default wrap-unstructured-constructs-in-execute-region to off (#211290)
Added:
Modified:
flang/include/flang/Lower/DirectivesCommon.h
flang/lib/Lower/PFTBuilder.cpp
flang/test/HLFIR/assumed_shape_with_value_keyword.f90
flang/test/HLFIR/optional_dummy.f90
flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
flang/test/Lower/HLFIR/intrinsic-subroutines.f90
flang/test/Lower/MIF/change_team2.f90
flang/test/Lower/OpenACC/acc-terminator.f90
flang/test/Lower/OpenACC/acc-unstructured.f90
flang/test/Lower/OpenMP/loop-compound.f90
flang/test/Lower/OpenMP/parallel-reduction3.f90
flang/test/Lower/OpenMP/stop-stmt-in-region.f90
flang/test/Lower/OpenMP/unstructured.f90
flang/test/Lower/OpenMP/wsloop-unstructured.f90
flang/test/Lower/branching-directive.f90
flang/test/Lower/do_loop_unstructured.f90
flang/test/Lower/fail_image.f90
flang/test/Lower/ifconvert.f90
flang/test/Lower/mixed_loops.f90
flang/test/Lower/nsw.f90
flang/test/Lower/pre-fir-tree02.f90
flang/test/Lower/while_loop.f90
Removed:
flang/test/Lower/OpenMP/wsloop-computed-goto.f90
flang/test/Lower/OpenMP/wsloop-select-case.f90
################################################################################
diff --git a/flang/include/flang/Lower/DirectivesCommon.h b/flang/include/flang/Lower/DirectivesCommon.h
index 1471d1e5da742..6f6089a4ffb6c 100644
--- a/flang/include/flang/Lower/DirectivesCommon.h
+++ b/flang/include/flang/Lower/DirectivesCommon.h
@@ -40,12 +40,7 @@ namespace Fortran {
namespace lower {
/// Create empty blocks for the current region.
-/// These blocks replace blocks parented to an enclosing region, or are
-/// created fresh when the enclosing region-level createEmptyBlocks skipped
-/// them (this happens for the body of a wrappable DO/IF nested inside a
-/// directive whose isUnstructured no longer propagates from the child; the
-/// top-level pass then treats the directive as structured and never
-/// recurses into the body).
+/// These blocks replace blocks parented to an enclosing region.
template <typename... TerminatorOps>
void createEmptyRegionBlocks(
fir::FirOpBuilder &builder,
@@ -61,8 +56,6 @@ void createEmptyRegionBlocks(
assert(mlir::isa<TerminatorOps...>(terminatorOp) &&
"expected terminator op");
}
- } else if (eval.isNewBlock) {
- eval.block = builder.createBlock(region);
}
if (!eval.isDirective() && eval.hasNestedEvaluations())
createEmptyRegionBlocks<TerminatorOps...>(builder,
diff --git a/flang/lib/Lower/PFTBuilder.cpp b/flang/lib/Lower/PFTBuilder.cpp
index ced8df03eb68d..e5c91ac101679 100644
--- a/flang/lib/Lower/PFTBuilder.cpp
+++ b/flang/lib/Lower/PFTBuilder.cpp
@@ -26,7 +26,7 @@ static llvm::cl::opt<bool> clDisableStructuredFir(
llvm::cl::init(false), llvm::cl::Hidden);
llvm::cl::opt<bool> wrapUnstructuredConstructsInExecuteRegion(
- "wrap-unstructured-constructs-in-execute-region", llvm::cl::init(true),
+ "wrap-unstructured-constructs-in-execute-region", llvm::cl::init(false),
llvm::cl::desc("try to wrap unstructured constructs' CFGs in "
"self-contained MLIR regions"));
diff --git a/flang/test/HLFIR/assumed_shape_with_value_keyword.f90 b/flang/test/HLFIR/assumed_shape_with_value_keyword.f90
index 9e6cd57da785a..046355901e725 100644
--- a/flang/test/HLFIR/assumed_shape_with_value_keyword.f90
+++ b/flang/test/HLFIR/assumed_shape_with_value_keyword.f90
@@ -1,4 +1,4 @@
-! RUN: bbc -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir %s -o - | FileCheck %s
! Addresses assumed shape dummy argument with VALUE keyword
diff --git a/flang/test/HLFIR/optional_dummy.f90 b/flang/test/HLFIR/optional_dummy.f90
index 04751cae9f3cf..8044cd6241e1e 100644
--- a/flang/test/HLFIR/optional_dummy.f90
+++ b/flang/test/HLFIR/optional_dummy.f90
@@ -1,4 +1,4 @@
-! RUN: bbc -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir %s -o - | FileCheck %s
! Check that the lowering does not generate fir.box_addr for
! the optional box. It will cause segfault during execution.
diff --git a/flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90 b/flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
index f9ea1a962d3c9..6e6fffe28a082 100644
--- a/flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
+++ b/flang/test/Integration/OpenMP/parallel-private-reduction-worstcase.f90
@@ -1,4 +1,4 @@
-! RUN: %flang_fc1 -fopenmp -emit-llvm %s -o - | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -fopenmp -emit-llvm %s -o - | FileCheck %s
! Combinational testing of control flow graph and builder insertion points
! in mlir-to-llvm conversion:
diff --git a/flang/test/Lower/HLFIR/intrinsic-subroutines.f90 b/flang/test/Lower/HLFIR/intrinsic-subroutines.f90
index cbd0f65ff0e20..74780e27b4178 100644
--- a/flang/test/Lower/HLFIR/intrinsic-subroutines.f90
+++ b/flang/test/Lower/HLFIR/intrinsic-subroutines.f90
@@ -1,7 +1,7 @@
! Test lowering of intrinsic subroutines to HLFIR what matters here
! is not to test each subroutine, but to check how their
! lowering interfaces with the rest of lowering.
-! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir -o - %s | FileCheck %s
subroutine test_subroutine(x)
real :: x
diff --git a/flang/test/Lower/MIF/change_team2.f90 b/flang/test/Lower/MIF/change_team2.f90
index 42d1f50cc10aa..2ce2fbede7e58 100644
--- a/flang/test/Lower/MIF/change_team2.f90
+++ b/flang/test/Lower/MIF/change_team2.f90
@@ -1,5 +1,5 @@
-! RUN: %flang_fc1 -emit-hlfir -fcoarray %s -o - | FileCheck %s --check-prefixes=COARRAY
-! RUN: not %flang_fc1 -emit-hlfir %s 2>&1 | FileCheck %s --check-prefixes=NOCOARRAY
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fcoarray %s -o - | FileCheck %s --check-prefixes=COARRAY
+! RUN: not %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir %s 2>&1 | FileCheck %s --check-prefixes=NOCOARRAY
! NOCOARRAY: Not yet implemented: Multi-image features are experimental and are disabled by default, use '-fcoarray' to enable.
diff --git a/flang/test/Lower/OpenACC/acc-terminator.f90 b/flang/test/Lower/OpenACC/acc-terminator.f90
index fae147cbcc04d..6dda02dff9d98 100644
--- a/flang/test/Lower/OpenACC/acc-terminator.f90
+++ b/flang/test/Lower/OpenACC/acc-terminator.f90
@@ -1,7 +1,7 @@
! Check that acc.terminator is not inserted in data construct
-! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s
-! RUN: bbc -fopenacc -fcuda -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -fopenacc -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -fopenacc -fcuda -emit-hlfir %s -o - | FileCheck %s
program main
use, intrinsic :: iso_c_binding
diff --git a/flang/test/Lower/OpenACC/acc-unstructured.f90 b/flang/test/Lower/OpenACC/acc-unstructured.f90
index 8015e96d3bb92..5431e01a0ff65 100644
--- a/flang/test/Lower/OpenACC/acc-unstructured.f90
+++ b/flang/test/Lower/OpenACC/acc-unstructured.f90
@@ -1,4 +1,4 @@
-! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -fopenacc -emit-hlfir %s -o - | FileCheck %s
subroutine test_unstructured1(a, b, c)
integer :: i, j, k
diff --git a/flang/test/Lower/OpenMP/loop-compound.f90 b/flang/test/Lower/OpenMP/loop-compound.f90
index b55235b3a4718..945bfd829f330 100644
--- a/flang/test/Lower/OpenMP/loop-compound.f90
+++ b/flang/test/Lower/OpenMP/loop-compound.f90
@@ -1,8 +1,8 @@
! This test checks lowering of OpenMP compound (combined and composite) loop
! constructs.
-! RUN: bbc -fopenmp -emit-hlfir %s -o - | FileCheck %s
-! RUN: %flang_fc1 -fopenmp -emit-hlfir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -fopenmp -emit-hlfir %s -o - | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -fopenmp -emit-hlfir %s -o - | FileCheck %s
program main
integer :: i,j
diff --git a/flang/test/Lower/OpenMP/parallel-reduction3.f90 b/flang/test/Lower/OpenMP/parallel-reduction3.f90
index ea6bf6cdf3ac9..eba55a7152098 100644
--- a/flang/test/Lower/OpenMP/parallel-reduction3.f90
+++ b/flang/test/Lower/OpenMP/parallel-reduction3.f90
@@ -1,5 +1,5 @@
-! RUN: bbc -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
-! RUN: %flang_fc1 -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
! CHECK-LABEL: omp.declare_reduction @add_reduction_byref_box_Uxi32 : !fir.ref<!fir.box<!fir.array<?xi32>>> {{.*}} alloc {
! CHECK: %[[VAL_8:.*]] = fir.alloca !fir.box<!fir.array<?xi32>>
diff --git a/flang/test/Lower/OpenMP/stop-stmt-in-region.f90 b/flang/test/Lower/OpenMP/stop-stmt-in-region.f90
index 8acf1eaf387f8..d5476c50f1782 100644
--- a/flang/test/Lower/OpenMP/stop-stmt-in-region.f90
+++ b/flang/test/Lower/OpenMP/stop-stmt-in-region.f90
@@ -1,7 +1,7 @@
! This test checks lowering of stop statement in OpenMP region.
-! RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s
-! RUN: bbc -emit-hlfir -fopenmp %s -o - | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenmp %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenmp %s -o - | FileCheck %s
! CHECK-LABEL: func.func @_QPtest_stop_in_region1() {
diff --git a/flang/test/Lower/OpenMP/unstructured.f90 b/flang/test/Lower/OpenMP/unstructured.f90
index 5d680576d26c6..32730b931abf7 100644
--- a/flang/test/Lower/OpenMP/unstructured.f90
+++ b/flang/test/Lower/OpenMP/unstructured.f90
@@ -1,6 +1,6 @@
! Test unstructured code adjacent to and inside OpenMP constructs.
-! RUN: bbc %s -fopenmp -emit-hlfir -o "-" \
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region %s -fopenmp -emit-hlfir -o "-" \
! RUN: | FileCheck %s
! CHECK-LABEL: func @_QPss1{{.*}} {
diff --git a/flang/test/Lower/OpenMP/wsloop-computed-goto.f90 b/flang/test/Lower/OpenMP/wsloop-computed-goto.f90
deleted file mode 100644
index 64b221ce672dc..0000000000000
--- a/flang/test/Lower/OpenMP/wsloop-computed-goto.f90
+++ /dev/null
@@ -1,39 +0,0 @@
-! RUN: bbc -emit-hlfir -fopenmp --wrap-unstructured-constructs-in-execute-region %s -o - | FileCheck %s
-
-! An unstructured DO whose body has a computed GO TO targeting a label
-! inside the loop. With the wrap flag on, the inner DO is wrappable, so
-! its isUnstructured no longer propagates to the enclosing
-! OpenMPConstruct. The top-level createEmptyBlocks therefore treats the
-! OMP construct as structured and does not recurse into the DO body — the
-! label 17 ContinueStmt block would be left unallocated. OpenMP's own
-! createEmptyRegionBlocks now creates the missing block in the loop-nest
-! region so genMultiwayBranch's fir.select finds a target.
-!
-! The outer IF is wrappable, so the whole subroutine body sits inside an
-! scf.execute_region — this exercises the interaction between the wrap
-! machinery (which does allocate its own nested blocks) and the OMP loop
-! lowering (which now allocates missing body blocks itself).
-subroutine s(ii1, a)
- integer ii1, a
- if (a > 0) then
-!$omp do
- do ii1 = 0, 1
- go to (17), ii1
-17 continue
- end do
- stop
- end if
-end subroutine
-
-! CHECK-LABEL: func.func @_QPs
-! CHECK: scf.execute_region no_inline {
-! CHECK: cf.cond_br
-! CHECK: omp.wsloop
-! CHECK: omp.loop_nest
-! CHECK: fir.load
-! CHECK: fir.select %{{[0-9]+}} : i32 [1, ^[[TARGET:bb[0-9]+]], unit, ^[[TARGET]]]
-! CHECK: ^[[TARGET]]:
-! CHECK: omp.yield
-! CHECK: fir.call @_FortranAStopStatement
-! CHECK: scf.yield
-! CHECK: }
diff --git a/flang/test/Lower/OpenMP/wsloop-select-case.f90 b/flang/test/Lower/OpenMP/wsloop-select-case.f90
deleted file mode 100644
index cd14ddbf6294e..0000000000000
--- a/flang/test/Lower/OpenMP/wsloop-select-case.f90
+++ /dev/null
@@ -1,49 +0,0 @@
-! RUN: bbc -emit-hlfir -fopenmp --wrap-unstructured-constructs-in-execute-region %s -o - | FileCheck %s
-
-! An unstructured SELECT CASE inside an OpenMP DO body. With the wrap
-! flag on, the enclosing DoConstruct is wrappable, so its isUnstructured
-! no longer propagates to the OpenMPConstruct — the top-level
-! createEmptyBlocks does not recurse into the DO body, and the CaseStmt /
-! constructExit blocks the SelectCase lowering wants would be left
-! unallocated. OpenMP's own createEmptyRegionBlocks now creates the
-! missing blocks in the loop-nest region so genFIR(SelectCaseStmt)
-! finds targets for its fir.select_case.
-!
-! The outer IF is wrappable, so the whole subroutine body sits inside an
-! scf.execute_region — this exercises the interaction between the wrap
-! machinery (which does allocate its own nested blocks) and the OMP loop
-! lowering (which now allocates missing body blocks itself).
-subroutine s(a, k)
- integer a, k
- if (a > 0) then
-!$omp do
- do k = 1, 2
- select case (k)
- case (1)
- a = 10
- case (2)
- a = 20
- case default
- a = 30
- end select
- end do
- stop
- end if
-end subroutine
-
-! CHECK-LABEL: func.func @_QPs
-! CHECK: scf.execute_region no_inline {
-! CHECK: cf.cond_br
-! CHECK: omp.wsloop
-! CHECK: omp.loop_nest
-! CHECK: fir.load
-! CHECK: fir.select_case %{{[0-9]+}} : i32 [#fir.point, %{{.*}}, ^[[C1:bb[0-9]+]], #fir.point, %{{.*}}, ^[[C2:bb[0-9]+]], unit, ^[[CDFLT:bb[0-9]+]]]
-! CHECK: ^[[C1]]:
-! CHECK: hlfir.assign
-! CHECK: ^[[C2]]:
-! CHECK: hlfir.assign
-! CHECK: ^[[CDFLT]]:
-! CHECK: hlfir.assign
-! CHECK: fir.call @_FortranAStopStatement
-! CHECK: scf.yield
-! CHECK: }
diff --git a/flang/test/Lower/OpenMP/wsloop-unstructured.f90 b/flang/test/Lower/OpenMP/wsloop-unstructured.f90
index aa5729daf6a24..f4a0777a603be 100644
--- a/flang/test/Lower/OpenMP/wsloop-unstructured.f90
+++ b/flang/test/Lower/OpenMP/wsloop-unstructured.f90
@@ -1,4 +1,4 @@
-! RUN: bbc -emit-hlfir -fopenmp -o - %s | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenmp -o - %s | FileCheck %s
subroutine sub(imax, jmax, x, y)
integer, intent(in) :: imax, jmax
diff --git a/flang/test/Lower/branching-directive.f90 b/flang/test/Lower/branching-directive.f90
index bc62f325d6a0b..4c911d4b1b678 100644
--- a/flang/test/Lower/branching-directive.f90
+++ b/flang/test/Lower/branching-directive.f90
@@ -1,4 +1,4 @@
-!RUN: bbc -emit-hlfir -fopenacc -fopenmp -o - %s | FileCheck %s
+!RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-hlfir -fopenacc -fopenmp -o - %s | FileCheck %s
!https://github.com/llvm/llvm-project/issues/91526
diff --git a/flang/test/Lower/do_loop_unstructured.f90 b/flang/test/Lower/do_loop_unstructured.f90
index 3d22a3e277812..a092590077303 100644
--- a/flang/test/Lower/do_loop_unstructured.f90
+++ b/flang/test/Lower/do_loop_unstructured.f90
@@ -1,5 +1,5 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
-! RUN: %flang_fc1 -emit-hlfir -fwrapv -o - %s | FileCheck %s --check-prefix=NO-NSW
+! RUN: %flang_fc1 -emit-hlfir -mmlir --wrap-unstructured-constructs-in-execute-region -o - %s | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir -fwrapv -mmlir --wrap-unstructured-constructs-in-execute-region -o - %s | FileCheck %s --check-prefix=NO-NSW
! Tests for unstructured loops.
diff --git a/flang/test/Lower/fail_image.f90 b/flang/test/Lower/fail_image.f90
index 549f00e8d62cb..2e576ae3f18e2 100644
--- a/flang/test/Lower/fail_image.f90
+++ b/flang/test/Lower/fail_image.f90
@@ -1,4 +1,4 @@
-! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir %s -o - | FileCheck %s
! CHECK-LABEL: func.func @_QPfail_image_test(
! CHECK-SAME: %[[ARG0:.*]]: !fir.ref<!fir.logical<4>> {fir.bindc_name = "fail"}) {
diff --git a/flang/test/Lower/ifconvert.f90 b/flang/test/Lower/ifconvert.f90
index 256bb37c4e19f..0fbe02c8bc903 100644
--- a/flang/test/Lower/ifconvert.f90
+++ b/flang/test/Lower/ifconvert.f90
@@ -1,4 +1,4 @@
-! RUN: %flang_fc1 -fdebug-dump-pft %s 2>&1 | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -fdebug-dump-pft %s 2>&1 | FileCheck %s
! Note: PFT dump output is fairly stable, including node indexes and
! annotations, so all output is CHECKed.
diff --git a/flang/test/Lower/mixed_loops.f90 b/flang/test/Lower/mixed_loops.f90
index 9c774caccf131..6cea19e3f87ba 100644
--- a/flang/test/Lower/mixed_loops.f90
+++ b/flang/test/Lower/mixed_loops.f90
@@ -1,4 +1,4 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir -mmlir --wrap-unstructured-constructs-in-execute-region -o - %s | FileCheck %s
! Test while loop inside do loop.
! With the wrap-unstructured-constructs-in-execute-region pass, the inner
diff --git a/flang/test/Lower/nsw.f90 b/flang/test/Lower/nsw.f90
index fa18dbff97ecc..dc0d290b3cb60 100644
--- a/flang/test/Lower/nsw.f90
+++ b/flang/test/Lower/nsw.f90
@@ -1,5 +1,5 @@
-! RUN: bbc -emit-fir %s -o - | FileCheck %s
-! RUN: bbc -emit-fir -fwrapv %s -o - | FileCheck %s --check-prefix=NO-NSW
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-fir %s -o - | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -emit-fir -fwrapv %s -o - | FileCheck %s --check-prefix=NO-NSW
! NO-NSW-NOT: overflow<nsw>
diff --git a/flang/test/Lower/pre-fir-tree02.f90 b/flang/test/Lower/pre-fir-tree02.f90
index 638dd94416229..ee2d5c214f740 100644
--- a/flang/test/Lower/pre-fir-tree02.f90
+++ b/flang/test/Lower/pre-fir-tree02.f90
@@ -1,4 +1,4 @@
-! RUN: bbc -pft-test -o %t %s | FileCheck %s
+! RUN: bbc --wrap-unstructured-constructs-in-execute-region -pft-test -o %t %s | FileCheck %s
! Test Pre-FIR Tree captures all the intended nodes from the parse-tree
! Coarray and OpenMP related nodes are tested in other files.
diff --git a/flang/test/Lower/while_loop.f90 b/flang/test/Lower/while_loop.f90
index 8f2291f74a8ed..cf818b9720388 100644
--- a/flang/test/Lower/while_loop.f90
+++ b/flang/test/Lower/while_loop.f90
@@ -1,4 +1,4 @@
-! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
+! RUN: %flang_fc1 -mmlir --wrap-unstructured-constructs-in-execute-region -emit-hlfir -o - %s | FileCheck %s
! Test a simple while loop.
! CHECK-LABEL: simple_loop
More information about the flang-commits
mailing list