LLVM/project 6f2ee3d — lldb/unittests CMakeLists.txt

[LLDB] Exclude exposed exe symbols from tests

Same as what we have for normal lldb installation. A executable may
creates a copy of a symbol if it links to the archive. Exclude archive
symbols out from the exe itself.
DeltaFile
+4-0lldb/unittests/CMakeLists.txt
+4-01 files

LLVM/project 8ca6836 — flang/docs FlangDriver.md, flang/examples CMakeLists.txt

[flang] Add an example plugin exercising the HLFIR pipeline extension points

The HLFIR extension points, the pipeline config callback registry and fir-opt's
symbol export all exist to let an out-of-tree MLIR pass run while the HLFIR
intrinsic operations (hlfir.sum, hlfir.matmul, ...) are still present. None of
that was covered end to end, and nothing showed how to use it.

Add flang/examples/HLFIRPipelinePlugin, modelled on PrintFlangFunctionNames. It
contributes a pass that prints the HLFIR operations still present in the module,
tagged with the pipeline position it was inserted at, and exposes it through
both plugin entry points: a static initializer calling
fir::registerPassPipelineConfigCallback for the `flang -fc1 -load` path, and
mlirGetPassPluginInfo so fir-opt can load it with --load-pass-plugin.

Nothing is linked into the shared object; MLIR, FIR and flang symbols resolve
against the host tool, which is what export_executable_symbols_for_plugins on
flang and fir-opt provides.

Two tests use it. Examples/hlfir-pipeline-plugin.f90 covers -emit-fir and

    [7 lines not shown]
DeltaFile
+111-0flang/examples/HLFIRPipelinePlugin/HLFIRPipelinePlugin.cpp
+51-0flang/test/Examples/hlfir-pipeline-plugin.f90
+34-0flang/test/Examples/fir-opt-pass-plugin.fir
+17-0flang/docs/FlangDriver.md
+15-0flang/examples/HLFIRPipelinePlugin/CMakeLists.txt
+1-0flang/examples/CMakeLists.txt
+229-01 files not shown
+230-07 files

LLVM/project bf3dbd3 — flang/examples/HLFIRPipelinePlugin HLFIRPipelinePlugin.cpp, flang/test/Examples fir-opt-pass-plugin.fir hlfir-pipeline-plugin.f90

[flang] Address review comments on the HLFIR pipeline example plugin

- Rename the pass to print-hlfir-ops: it prints every hlfir op, not only the
  intrinsics.
- Drop the redundant option copy in the copy constructor; Pass::clone copies
  option values.
- Tests: drop the no-plugin run, which could not fail, and at -O2 only check
  that both extension points are reached rather than what
  SimplifyHLFIRIntrinsics chose to expand.

Assisted-by: Claude Code (Opus 5.5)
DeltaFile
+18-23flang/examples/HLFIRPipelinePlugin/HLFIRPipelinePlugin.cpp
+1-11flang/test/Examples/hlfir-pipeline-plugin.f90
+2-2flang/test/Examples/fir-opt-pass-plugin.fir
+21-363 files

LLVM/project ba0e451 — compiler-rt/lib/tsan/rtl tsan_rtl.h tsan_defs.h

[NFC][TSan] Remove redundant Context::report_mtx

Context::report_mtx was only ever acquired immediately alongside
ScopedErrorReportLock (in ScopedReport and BackgroundThread). Remove
report_mtx and MutexTypeReport and rely on ScopedErrorReportLock.

Assisted-by: Gemini

Pull Request: https://github.com/llvm/llvm-project/pull/228605
DeltaFile
+5-10compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+1-5compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-2compiler-rt/lib/tsan/rtl/tsan_defs.h
+0-1compiler-rt/lib/tsan/rtl/tsan_rtl.h
+7-184 files

LLVM/project d45ee87 — orc-rt/test/unit/bedrock/sps SimpleRemoteCAOverSocketTest.cpp

[orc-rt] Use the Error matchers in SimpleRemoteCAOverSocketTest (#228642)

Use the Error matchers introduced in 4c8a437d0487 to clean up error
checks in SimpleRemoteCAOverSocketTest.
DeltaFile
+110-84orc-rt/test/unit/bedrock/sps/SimpleRemoteCAOverSocketTest.cpp
+110-841 files

LLVM/project e7f8da8 — compiler-rt/lib/tsan/rtl tsan_interceptors_posix.cpp tsan_rtl.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+45-60compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+23-54compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+8-18compiler-rt/lib/tsan/rtl/tsan_rtl.h
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-17compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+134-1645 files not shown
+153-21511 files

LLVM/project 37791d3 — compiler-rt/lib/tsan/rtl tsan_interceptors_posix.cpp tsan_rtl.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+45-60compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+35-61compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+8-18compiler-rt/lib/tsan/rtl/tsan_rtl.h
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-17compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+146-1715 files not shown
+165-22211 files

LLVM/project 0de9d9a — mlir/lib/Dialect/Arith/IR ArithOps.cpp, mlir/test/Dialect/Arith canonicalize.mlir

[MLIR][arith] Fold or(a, or(a, b)) to or(a, b) (#228386)

`arith.andi` already folds `and(a, and(a, b))` to `and(a, b)`, but
`arith.ori` doesn't perform the equivalent fold, so using canonicalize
misses this opportunity.

Generalize the existing helper and use it for both ops.

Co-authored-by: Matthias Springer <me at m-sp.org>
DeltaFile
+54-0mlir/test/Dialect/Arith/canonicalize.mlir
+10-4mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+64-42 files

LLVM/project e141a4b — llvm/utils/gn/secondary/llvm/include/llvm/Config config.gni, llvm/utils/gn/secondary/llvm/test BUILD.gn

[gn] port 82290a03b3cc a bit (CASPluginTest) (#228639)

Also disable llvm_enable_ondisk_cas for a bit until I can figure out how
to fix

    dlopen(..../out/gn/lib/CASPluginTest.dylib, 0x0009):
        symbol not found in flat namespace '__ZN4llvm4SHA15finalEv'

when running llvm/test/tools/llvm-cas lit tests. (The unit test passes.)
DeltaFile
+2-23llvm/utils/gn/secondary/llvm/test/BUILD.gn
+22-0llvm/utils/gn/secondary/llvm/unittests/CAS/CASPluginTest/BUILD.gn
+0-21llvm/utils/gn/secondary/llvm/tools/libCASPluginTest/BUILD.gn
+20-1llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
+8-0llvm/utils/gn/secondary/llvm/tools/llvm-cas/BUILD.gn
+1-1llvm/utils/gn/secondary/llvm/include/llvm/Config/config.gni
+53-466 files

LLVM/project 140425b — flang/docs FlangDriver.md, flang/include/flang/Optimizer/Passes Pipelines.h

[flang] Add a MLIRToLLVMPassPipeline callbacks for plugins (#212195)

Expose the extension points of the HLFIR-to-FIR pass pipeline exposes extension points to plugins.

Follow-up to #212194

Assisted-by: Claude Code (Opus 5, Opus 5.5)
DeltaFile
+74-1flang/unittests/Optimizer/HLFIRExtensionPointsTest.cpp
+34-0flang/docs/FlangDriver.md
+16-0flang/lib/Optimizer/Passes/Pipelines.cpp
+16-0flang/include/flang/Optimizer/Passes/Pipelines.h
+6-0flang/lib/Frontend/FrontendActions.cpp
+146-15 files

LLVM/project 971c4c1 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_interceptors_posix.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+23-54compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+30-40compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-17compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+6-16compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+117-1425 files not shown
+131-17911 files

LLVM/project 19d7734 — compiler-rt/lib/tsan/rtl tsan_interceptors_posix.cpp tsan_rtl.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+45-60compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+23-54compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+8-18compiler-rt/lib/tsan/rtl/tsan_rtl.h
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-17compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+134-1645 files not shown
+153-21511 files

LLVM/project 6e9f37d — llvm/test/CodeGen/AMDGPU simplify-libcalls.ll amdgpu-simplify-libcall-pow.ll

Fix lit test issue.
DeltaFile
+18-36llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-rootn.ll
+9-11llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow.ll
+2-4llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll
+29-513 files

LLVM/project 90a9742 — llvm/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/test/Transforms/InstCombine intrinsic-select.ll

Update for comments
DeltaFile
+15-20llvm/test/Transforms/InstCombine/intrinsic-select.ll
+4-0llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+19-202 files

LLVM/project 0521960 — llvm/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/test/Transforms/InstCombine select-fcmp-fmul-zero-absorbing-value.ll

Use TriviallyVectorizable
DeltaFile
+10-4llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+2-3llvm/test/Transforms/InstCombine/select-fcmp-fmul-zero-absorbing-value.ll
+12-72 files

LLVM/project 6561a75 — llvm/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/test/Transforms/InstCombine intrinsic-select.ll

[InstCombine] Fold select of pow into select of the differing operand

When both arms of a select are calls to `llvm.pow` with one use that
differ in exactly one operand, sink the select into that operand:

$$
\mathrm{select}(c,\ x^{y},\ x^{z}) \rightarrow x^{\mathrm{select}(c,\ y,\ z)}
$$

$$
\mathrm{select}(c,\ x^{z},\ y^{z}) \rightarrow \mathrm{select}(c,\ x,\ y)^{z}
$$

This removes one `pow` call. FMF are intersected and debug locations
are merged. The transform is skipped when a differing operand is a
constant, since that may enable a cheaper lowering (e.g.
$x^2 \rightarrow x \cdot x$).
DeltaFile
+23-31llvm/test/Transforms/InstCombine/intrinsic-select.ll
+35-0llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+58-312 files

LLVM/project 132bc8b — llvm/test/CodeGen/AMDGPU simplify-libcalls.ll

[AMDGPU] Autogenerate checks in simplify-libcalls.ll. NFC
DeltaFile
+1,680-274llvm/test/CodeGen/AMDGPU/simplify-libcalls.ll
+1,680-2741 files

LLVM/project 093721d — llvm/test/Transforms/InstCombine intrinsic-select.ll

[InstCombine] Add tests for select of pow with one differing operand

Add tests for select between two `llvm.pow` calls whose operands differ in
exactly one position, covering scalar and vector types, FMF, !prof
metadata, constant operands, and negative cases (multiple differing
operands, extra uses, mismatched intrinsics).
DeltaFile
+340-0llvm/test/Transforms/InstCombine/intrinsic-select.ll
+340-01 files

LLVM/project 0ca8840 —

Rebase

Created using spr 1.3.7
DeltaFile
+0-00 files

LLVM/project cb69f15 — compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-11 files

LLVM/project a74331b — compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp

Fix clang-format

Created using spr 1.3.7
DeltaFile
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-11 files

LLVM/project 8143db6 — compiler-rt/lib/tsan/go tsan_go.cpp, compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp tsan_rtl.h

[NFC][TSan] Make Context::nreported atomic (#228602)

Make Context::nreported an atomic_uint32_t so that Finalize and
__tsan_report_count can read it without relying on report_mtx.

Assisted-by: Gemini
DeltaFile
+3-3compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+1-2compiler-rt/lib/tsan/go/tsan_go.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl.h
+6-74 files

LLVM/project f597fdb — compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp

Fix clang-format

Created using spr 1.3.7
DeltaFile
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-11 files

LLVM/project 3f5d498 — cross-project-tests/debuginfo-tests/dexter/dex/debugger DAP.py

fixup! [Dexter] Add timeout and finishing guard for startup
DeltaFile
+6-2cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
+6-21 files

LLVM/project 5b0641b — mlir .clang-format

[mlir] Set WrapNamespaceBodyWithEmptyLines: Never (#221421)

MLIR predominantly writes namespace bodies without a wrapping empty
line: in mlir/lib and mlir/include 35% of bodies start with an empty
line and 32% end with one.

```
namespace ns { // no empty line below
struct A {
};
} // namespace ns  // no empty live above
```

New code drifts the other way, partly related to LLM preference. Pin the
majority style using a clang-format 20 feature to stop further damage.
DeltaFile
+1-0mlir/.clang-format
+1-01 files

LLVM/project 9224437 — flang/docs FlangDriver.md, flang/include/flang/Optimizer/Passes Pipelines.h

[flang] Add a pass-pipeline config callback hook for plugins

The HLFIR-to-FIR pipeline extension points live on MLIRToLLVMPassPipelineConfig,
which the frontend builds as a local of CodeGenAction, out of reach of a plugin.

Add a process-global registry of callbacks that run on the config before the
pipeline is built. A plugin registers one from a static initializer, so it is in
place before any compilation begins, as FrontendPluginRegistry does for plugin
actions. Both code generation entry points invoke the callbacks, lowerHLFIRToFIR
for -emit-fir and generateLLVMIR for -emit-llvm/-emit-obj, and are mutually
exclusive for a given compilation, so a plugin sees the same behaviour whichever
output was asked for.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+79-1flang/unittests/Optimizer/HLFIRExtensionPointsTest.cpp
+30-0flang/docs/FlangDriver.md
+17-0flang/lib/Optimizer/Passes/Pipelines.cpp
+11-0flang/include/flang/Optimizer/Passes/Pipelines.h
+5-0flang/lib/Frontend/FrontendActions.cpp
+142-15 files

LLVM/project 4ebf187 — flang/docs FlangDriver.md, flang/include/flang/Optimizer/Passes Pipelines.h

[flang] Address review comments on the pipeline config callbacks

- Adopt the suggested doc comment wording and name the callback type
  (PassPipelineConfigCallback) instead of spelling std::function / auto.
- Run the callbacks in generateLLVMIR once the config is fully set up, so a
  plugin sees the OpenMP/OpenACC, vscale and other settings as on -emit-fir.
- Document that -emit-fir only reaches the HLFIR extension points, that
  callbacks must not register callbacks, and that bbc/tco/fir-opt do not run
  the registry.
- Tests: drop the redundant epRan flag and use a plain global recorder.

Assisted-by: Claude Code (Opus 5.5)
DeltaFile
+11-16flang/unittests/Optimizer/HLFIRExtensionPointsTest.cpp
+10-5flang/include/flang/Optimizer/Passes/Pipelines.h
+8-4flang/docs/FlangDriver.md
+5-6flang/lib/Optimizer/Passes/Pipelines.cpp
+4-3flang/lib/Frontend/FrontendActions.cpp
+38-345 files

LLVM/project 23bccf4 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_interceptors_posix.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+24-37compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+28-33compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+8-13compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+7-12compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+118-1105 files not shown
+135-14011 files

LLVM/project 8340e07 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_interceptors_posix.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+23-54compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+30-40compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+41-0compiler-rt/test/tsan/signal_abort_on_error.cpp
+10-15compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+7-17compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+6-16compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+117-1425 files not shown
+131-17911 files

LLVM/project f8be54b — mlir/lib/Dialect/Bufferization/Transforms BufferOptimizations.cpp, mlir/test/Dialect/Bufferization/Transforms buffer-hoisting.mlir buffer-loop-hoisting.mlir

[mlir][bufferization] Fix placement walk crashes and invalid captures (#228050)

`findPlacementBlock`, which is shared by `buffer-hoisting` and
`buffer-loop-hoisting`, can move an allocation outside the operation
used to build the liveness analysis. For example, when
`transform.bufferization.buffer_loop_hoisting` targets a `scf.while`,
moving the allocation into the enclosing function block causes the
liveness lookup to crash.

The walk can also cross an `IsIsolatedFromAbove` operation and introduce
an illegal capture, or reach an unreachable enclosing block and
dereference a missing dominator node. The initial reachability check on
the allocation's block doesn't cover that second case.

This PR keeps allocations inside the analysis target and isolated
regions, and stops the walk before querying a dominator node for an
unreachable block. Movement between blocks within the same region
remains allowed.


    [15 lines not shown]
DeltaFile
+53-0mlir/test/Dialect/Bufferization/Transforms/transform-ops.mlir
+24-0mlir/test/Dialect/Bufferization/Transforms/buffer-loop-hoisting.mlir
+17-0mlir/test/Dialect/Bufferization/Transforms/buffer-hoisting.mlir
+10-6mlir/lib/Dialect/Bufferization/Transforms/BufferOptimizations.cpp
+104-64 files