[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