[all-commits] [llvm/llvm-project] cb9ee3: Reland [flang] Support scoped LICM and OpenACC cap...

jeanPerier via All-commits all-commits at lists.llvm.org
Mon Sep 28 01:09:36 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cb9ee31ad93d35af0ee9172cd368dd537546a8d6
      https://github.com/llvm/llvm-project/commit/cb9ee31ad93d35af0ee9172cd368dd537546a8d6
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2026-09-28 (Mon, 28 Sep 2026)

  Changed paths:
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    M flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
    A flang/test/Transforms/licm-acc-captured-ref.fir
    A flang/test/Transforms/licm-acc-compute-only.fir
    A flang/test/Transforms/licm-scope.fir

  Log Message:
  -----------
  Reland [flang] Support scoped LICM and OpenACC capture provenance (#225401)  (#226909)

Follow compute-region capture operands when checking whether scalar and
scalar-descriptor loads are safe to speculate. Preserve the existing
optional, array-element, and loop-modification safety checks.

Add an optional only-inside operation-name selector while retaining
function-scoped alias analysis. Resolve the name once per function and
compare interned operation names during ancestor traversal. The default
continues to select all loops. An explicit name selects loops with a
matching ancestor within the function, including the function itself.

Cover capture safety, host exclusion, non-OpenACC and nested scopes,
loop boundaries, unmatched names, and the function boundary.

The motivation for this is to allow running LICM only on device relevant
loop at O0.

Reland #225401 with CMakeFiles.txt change to fix shared library builds.



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