[all-commits] [llvm/llvm-project] c34bd4: [flang][OpenACC] Don't emit unstructured-loop TODO...

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Wed Sep 9 01:13:08 PDT 2026


  Branch: refs/heads/users/ergawy/acc-kernels-wrappable-unstructured-loop
  Home:   https://github.com/llvm/llvm-project
  Commit: c34bd4162044b4104312cc7b0c25d029c99d5049
      https://github.com/llvm/llvm-project/commit/c34bd4162044b4104312cc7b0c25d029c99d5049
  Author: ergawy <kareem.ergawy at gmail.com>
  Date:   2026-09-09 (Wed, 09 Sep 2026)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/test/Lower/OpenACC/Todo/do-loops-to-acc-loops-todo.f90
    M flang/test/Lower/OpenACC/acc-unstructured.f90

  Log Message:
  -----------
  [flang][OpenACC] Don't emit unstructured-loop TODO for wrappable loops

`genOpenACCLoopFromDoConstruct` raised an NYI for any unstructured DO inside `acc kernels`. That check ran before the wrapping in `genFIR(DoConstruct)`, so a loop whose CFG is self-contained aborted lowering even though the fall-back path would have wrapped it in an `scf.execute_region`.

Skip the TODO when `isWrappableConstruct()` accepts the loop. Such a loop is not attached to a directive; it is only nested inside the kernels region.

Correspondingly, a DO loop sitting directly in an `acc kernels` body is no longer wrappable, since it is the loop the directive parallelizes and hiding its CFG would leave the kernels region with nothing to partition.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list