LLVM/project d94d6f8 — llvm/include/llvm/IR IRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[IRBuilder] Remove custom insertion point type (#228117)

Historically, insertion points had to be represented as pairs of
BasicBlock and BasicBlock iterator, because an end() iterator did not
know which block it belongs to. This has changed some time ago (I think
as part of the debuginfo records change) and BasicBlock iterators now
have a reference to their parent block. So the canonical representation
of an insertion point is now just a BasicBlock iterator.

This makes the `IRBuilder::SetInsertPoint(BasicBlock::iterator)` API
handle end() iterators correctly (but still keeping the API with a
redundant block argument) and replaces the `IRBuilderBase::InsertPoint`
type (which was a pair of block and iterator) with a plain
`BasicBlock::iterator`.

This requires surprisingly many changes because IRBuilder insertion
points are heavily used in the OpenMP building. A small number of
non-mechanical changes were needed because the code was sometimes
relying on the fact that nothing enforced that the block and iterator

    [2 lines not shown]
DeltaFile
+174-223llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+86-104llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+47-46mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+15-31llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+11-30llvm/include/llvm/IR/IRBuilder.h
+14-19llvm/lib/Transforms/Utils/CodeExtractor.cpp
+347-4538 files not shown
+391-50914 files

LLVM/project 66eb006 — llvm/lib/Transforms/Vectorize VPlanLowering.cpp VPlan.h, llvm/test/Transforms/LoopVectorize select-branch-weights.ll

[VPlan] Preserve the branch weights of scalarized selects. (#224968)

Update VPlan to also carry !prof for select instructions from original
IR. They are threaded through like for branches, and dropped for wide
selects.

This is part of addressing the remaining profcheck failures in
LoopVectorize: https://github.com/llvm/llvm-project/issues/161235.

PR: https://github.com/llvm/llvm-project/pull/224968
DeltaFile
+172-5llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-branch-weights.ll
+11-9llvm/test/Transforms/LoopVectorize/select-branch-weights.ll
+19-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+8-2llvm/lib/Transforms/Vectorize/VPlan.h
+7-0llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
+217-165 files

LLVM/project c9d04b0 —

[clangd] Extract to function: Pass unmodified scalar parameters by value

For more natural-looking function signatures.

Assisted-by: Claude
DeltaFile
+0-00 files

LLVM/project 3e042b9 — clang-tools-extra/clangd/refactor/tweaks ExtractFunction.cpp, clang-tools-extra/clangd/unittests/tweaks ExtractFunctionTests.cpp

[clangd] Extract to function: Pass unmodified scalar parameters by value

For more natural-looking function signatures.

Assisted-by: Claude
DeltaFile
+104-24clang-tools-extra/clangd/unittests/tweaks/ExtractFunctionTests.cpp
+26-13clang-tools-extra/clangd/refactor/tweaks/ExtractFunction.cpp
+130-372 files

LLVM/project d5a2395 — llvm/test/CodeGen/AArch64 fixed-vector-interleave.ll fixed-vector-deinterleave.ll

[AArch64][GlobalISel] Add deinterleave load and store test coverage. NFC (#228419)

Correct some NFC comments whilst here too.
DeltaFile
+1,008-14llvm/test/CodeGen/AArch64/interleaved-accesses.ll
+723-2llvm/test/CodeGen/AArch64/vldn_shuffle.ll
+665-15llvm/test/CodeGen/AArch64/zext-shuffle.ll
+162-0llvm/test/CodeGen/AArch64/binopshuffles.ll
+35-2llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll
+34-2llvm/test/CodeGen/AArch64/fixed-vector-interleave.ll
+2,627-351 files not shown
+2,630-387 files

LLVM/project 54b21ec — flang-rt/unittests/Runtime Transformational.cpp

Undo unrelated formatting change
DeltaFile
+2-2flang-rt/unittests/Runtime/Transformational.cpp
+2-21 files

LLVM/project fb45017 — lldb/test/API/tools/lldb-dap/server TestDAP_server.py

[lldb-dap][test] Migrate server mode tests (#227804)

Migrate TestDAP_server.py to the new lldb-dap test infrastructure.

test_server_port and test_server_unix_socket now run two sessions
concurrently.
Add test_breakpoints_in_multiple_sessions to check that a breakpoint set
in one session must not stop another.
Fix test_connection_timeout_at_server_start. It now waits for lldb-dap
to exit on its own before the teardown kills it.

The test now takes significantly less time.
DeltaFile
+133-96lldb/test/API/tools/lldb-dap/server/TestDAP_server.py
+133-961 files

LLVM/project 3a25037 — llvm/lib/Analysis ConstraintSystem.cpp, llvm/test/Transforms/ConstraintElimination induction-condition-in-loop-exit-latch-counted.ll add-nsw.ll

[ConstraintElim] Check if a single row implies a condition before FM. (#228369)

If a single row of the system implies the queried condition, the
condition holds without copying the system and running Fourier-Motzkin
elimination.

This overall can be slightly cheaper (although changes mostly in noise),
this also catches cases where FM gives up due to overflow, either when
combining rows with large coefficients or when negating a condition with
a constant of INT64_MAX.

In https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1555, it
leads to additional successful queries with end-to-end impact in ~900
files, mostly strengthening flags.


https://llvm-compile-time-tracker.com/compare.php?from=a90d9d26f746d913da12adf3bbb95a6735741e05&to=5f771faeedd4e65f180d288700f00b55ff00e6e3&stat=instructions:u

PR: https://github.com/llvm/llvm-project/pull/228369
DeltaFile
+24-0llvm/test/Transforms/ConstraintElimination/large-constant-ints.ll
+4-6llvm/test/Transforms/ConstraintElimination/add-nsw.ll
+4-1llvm/unittests/Analysis/ConstraintSystemTest.cpp
+4-0llvm/lib/Analysis/ConstraintSystem.cpp
+1-1llvm/test/Transforms/PhaseOrdering/X86/pr38280.ll
+1-1llvm/test/Transforms/ConstraintElimination/induction-condition-in-loop-exit-latch-counted.ll
+38-96 files

LLVM/project 41220ae — llvm/test/Analysis/CostModel/AArch64 sve-ldst.ll

[Analysis][NFC] Add SVE load/store tests for non-power-of-2 vectors (#228387)
DeltaFile
+187-120llvm/test/Analysis/CostModel/AArch64/sve-ldst.ll
+187-1201 files

LLVM/project d5d0559 — llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

CodeGen: Prefer getting the Triple from the Module when convenient

Take the triple from the contextual module rather than TargetMachine
when it's already readily available.
DeltaFile
+17-16llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+17-161 files

LLVM/project 6713228 — llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

CodeGen: Remove unnecessary Triple copy in AsmPrinter
DeltaFile
+1-3llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+1-31 files

LLVM/project 82f21f4 — clang/include/clang/AST TemplateBase.h, clang/lib/AST ExprCXX.cpp TemplateBase.cpp

[clang][AST][NFC] Remove an overload of `ASTTemplateKWAndArgsInfo::initializeFrom` (#227942)

The FIXME comment on this overload:

```cpp
// FIXME: The parameter Deps is the result populated by this method, the
// caller doesn't need it since it is populated by computeDependence. remove
// it.
```
DeltaFile
+0-15clang/lib/AST/TemplateBase.cpp
+9-6clang/lib/AST/Expr.cpp
+4-7clang/lib/AST/ExprCXX.cpp
+0-7clang/include/clang/AST/TemplateBase.h
+13-354 files

LLVM/project 4a7dffd —

[Flang-RT] Skip SIGFPE tests under WSL1 (#227876)

The floating-point exceptions do not work under WSL1 because the SIGFPE
trap does not propagate to the application
(https://github.com/microsoft/WSL/issues/3657). Mark these tests as
UNSUPPORTED for wsl1.

The Subsystem For Windows detection mechanism is the same as for LLVM
(#137822).
DeltaFile
+0-00 files

LLVM/project 6d2b1f2 — llvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp SelectionDAG.cpp

DAG: Gracefully diagnose missing floating-point state libcalls

Previously makeStateFunctionCall would hit a fatal error if the target has
no fegetenv/fesetenv/fegetmode/fesetmode implementation. Report a proper
context error and emit nothing.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+41-0llvm/test/CodeGen/NVPTX/fenv-no-libcall-error.ll
+13-9llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+6-6llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+1-1llvm/include/llvm/CodeGen/SelectionDAG.h
+61-164 files

LLVM/project d7d8df9 — flang-rt/test lit.cfg.py, flang-rt/test/Driver fpe-trap-exec.f90 fpe-trap-exec-underflow.f90

[Flang-RT] Skip SIGFPE tests under WSL1 (#227876)

The floating-point exceptions do not work under WSL1 because the SIGFPE
trap does not propagate to the application
(https://github.com/microsoft/WSL/issues/3657). Mark these tests as
UNSUPPORTED for wsl1.

The Subsystem For Windows detection mechanism is the same as for LLVM
(#137822).
DeltaFile
+8-0flang-rt/test/lit.cfg.py
+1-1flang-rt/test/Driver/fpe-trap-exec.f90
+1-1flang-rt/test/Driver/fpe-trap-exec-underflow.f90
+1-1flang-rt/test/Driver/fpe-trap-exec-overflow.f90
+1-1flang-rt/test/Driver/fpe-trap-exec-inexact.f90
+1-1flang-rt/test/Driver/fpe-trap-exec-divzero.f90
+13-51 files not shown
+14-67 files

LLVM/project 1f4597b —

[OpenMP] Initialize td_last_tied when an untied task starts (#214320)
DeltaFile
+0-00 files

LLVM/project 7e04d1b — flang/lib/Semantics check-omp-structure.cpp check-omp-loop.cpp, flang/test/Semantics/OpenMP clause-validity01.f90 linear-clause03.f90

[flang][OpenMP] Improve check for LINEAR and ORDERED with argument (#228235)

The LINEAR clause is not allowed on a construct if an ORDERED clause
with an argument is present. The new message is clearer about the
argument to the ORDERED clause.
DeltaFile
+25-5flang/lib/Semantics/check-omp-loop.cpp
+9-2flang/test/Semantics/OpenMP/linear-clause03.f90
+4-3flang/test/Semantics/OpenMP/clause-validity01.f90
+0-3flang/lib/Semantics/check-omp-structure.cpp
+38-134 files

LLVM/project ea458d2 — clang/test/CIR/CodeGenHIP amdgcnspirv-builtins.hip

[CIR][AMDGPU] Drop stale logb FIXME in amdgcnspirv-builtins.hip (NFC) (#228404)

#228004 made CIR emit nsw add and ordered compare for logb, so update
the SPIR-V checks to match

Fix failure appeared on main branch
DeltaFile
+2-4clang/test/CIR/CodeGenHIP/amdgcnspirv-builtins.hip
+2-41 files

LLVM/project d124d95 — flang/include/flang/Common uint128.h, flang/include/flang/Evaluate integer-value.h

Merge commit '46c09205169eb2ffc0187cdb41196cf95bcfe683' into HEAD
DeltaFile
+107-117flang/unittests/Evaluate/IntegerValueTest.cpp
+23-11flang/include/flang/Common/uint128.h
+30-0flang/unittests/Evaluate/uint128.cpp
+2-2flang/include/flang/Evaluate/integer-value.h
+162-1304 files

LLVM/project cbbd94d — llvm/include/llvm/CodeGen ISDOpcodes.h, llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp SelectionDAGDumper.cpp

DAG: Gracefully diagnose missing fp-compare libcall when softening

Avoid fatal errors, and legalize to poison with a proper context
error.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+59-30llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
+25-10llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+23-0llvm/test/CodeGen/NVPTX/fp128-compare-no-libcall-error.ll
+5-0llvm/include/llvm/CodeGen/ISDOpcodes.h
+112-404 files

LLVM/project 46c0920 — flang/include/flang/Evaluate integer-value.h, flang/unittests/Evaluate IntegerValueTest.cpp

clang-cl compile fix

Handle strict mode libstdc++ as well

Avoid warning

Add unittests

HAS_NATIVE_UINT128_T only in unittest

clang-format

clang-format
DeltaFile
+107-117flang/unittests/Evaluate/IntegerValueTest.cpp
+2-2flang/include/flang/Evaluate/integer-value.h
+109-1192 files

LLVM/project 6375f09 — flang/include/flang/Common uint128.h, flang/unittests/Evaluate uint128.cpp

Merge commit '68b6e01f9ae33ee0a86a2c26470f54822fd1c4b4' into HEAD
DeltaFile
+23-11flang/include/flang/Common/uint128.h
+30-0flang/unittests/Evaluate/uint128.cpp
+53-112 files

LLVM/project 68b6e01 — flang/include/flang/Common uint128.h, flang/unittests/Evaluate uint128.cpp

Handle strict mode libstdc++ as well

Avoid warning

Add unittests

HAS_NATIVE_UINT128_T only in unittest

clang-format
DeltaFile
+23-11flang/include/flang/Common/uint128.h
+30-0flang/unittests/Evaluate/uint128.cpp
+53-112 files

LLVM/project ccafeec — llvm/lib/CodeGen MachineBasicBlock.cpp, llvm/test/CodeGen/AMDGPU phi-elimination-split-critical-edge-undef-phi-source.mir

CodeGen: Fix stale live range for undef PHI sources on split edges (#228057)

SplitCriticalEdge collects the PHI sources coming from the new block so
the trimming loop below does not undo the segment just added for them.
An undef operand gets no segment, but was still added to the set, so a
register that is only an undef PHI operand on the split edge kept the
stale extension of its live range through the new block.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+36-0llvm/test/CodeGen/AMDGPU/phi-elimination-split-critical-edge-undef-phi-source.mir
+1-1llvm/lib/CodeGen/MachineBasicBlock.cpp
+37-12 files

LLVM/project f698bf3 — clang/lib/Interpreter DeviceOffload.cpp, clang/test/Interpreter/CUDA empty-device-module.cu

[clang-repl] Fix PTX emission for CUDA inputs with no device code (#226977)

Previously, GeneratePTX() returned an error when PassManager::run()
returned false. That value reports whether any pass changed the module,
not whether emission succeeded. IIUC, addPassesToEmitFile() should be
the only failure point, which is already checked.

The check was harmless until e8b75c172810 ("[NVPTX] Add NewPM
boilerplate to NVPTXAssignValidGlobalNames"). Before it, that pass
returned true unconditionally (if the pass succeeded), so run() always
reported a change. Now a device module without a function definition,
produced in the case of host-only inputs, reports no change and fails
the check, falsely erroring out with `Failed to emit PTX code.` Due to
this, every host-only input to `clang-repl --cuda` is now rejected on
main. The host-supports-cuda lit probe consists mostly of such inputs,
so clang/test/Interpreter/CUDA reports UNSUPPORTED instead of failing.

I've also added a test with host-only inputs so a regression like this
could be caught.
DeltaFile
+28-0clang/unittests/Interpreter/DeviceOffloadTest.cpp
+18-0clang/test/Interpreter/CUDA/empty-device-module.cu
+1-3clang/lib/Interpreter/DeviceOffload.cpp
+47-33 files

LLVM/project cc39641 — offload/libompaccsupport device.cpp, offload/plugins-nextgen/common/src PluginInterface.cpp

Move basic memory limit checks back to PluginInterface
DeltaFile
+6-12offload/libompaccsupport/device.cpp
+12-0offload/plugins-nextgen/common/src/PluginInterface.cpp
+18-122 files

LLVM/project e60672b — offload/include device.h, offload/libompaccsupport device.cpp

[offload][omp] Move OpenMP KLE to libomptarget

Move preparations related to OpenMP KLE and
dynamicCGroupMem fallback out of the plugins and
into libomptarget.

Resructure Device::launch as it grew too large.
DeltaFile
+291-62offload/libompaccsupport/device.cpp
+2-144offload/plugins-nextgen/common/src/PluginInterface.cpp
+3-46offload/plugins-nextgen/common/include/PluginInterface.h
+1-0offload/include/device.h
+297-2524 files

LLVM/project 873f7ef — bolt/lib/Core DebugData.cpp, bolt/lib/Rewrite RewriteInstance.cpp

[BOLT] Support SHF_COMPRESSED DWARF debug sections. (#215835)

**Before:** BOLT will report an error when `--update-debug-sections` is
enabled and the input contains a `SHF_COMPRESSED` debug section, stating
that "`--update-debug-sections` requires uncompressed debug
information". This was implemented in #185662.

**After:** This patch follows up on this PR and adds support for
`SHF_COMPRESSED` debug information. BOLT now can decompress `zlib` /
`zstd` compressed debug information, update them and then recompress
with their original compression. This patch also validates compressed
debug sections, reporting an error if applicable. As mentioned in
#185662, legacy GNU-style compression is not handled.

Assisted-by: Codex
DeltaFile
+285-0bolt/test/AArch64/zstd-compressed-debug-sections.s
+285-0bolt/test/AArch64/zlib-compressed-debug-sections.s
+134-11bolt/lib/Rewrite/RewriteInstance.cpp
+3-5bolt/lib/Core/DebugData.cpp
+4-3bolt/test/AArch64/compressed-debug-sections.test
+2-0bolt/test/CMakeLists.txt
+713-191 files not shown
+715-197 files

LLVM/project e9e9512 — offload/plugins-nextgen/level_zero/include L0Context.h L0Compat.h, offload/plugins-nextgen/level_zero/src L0Context.cpp

[Offload][L0][NFC] Remove unused zexKernelGetArgumentSize dispatcher (#227589)

The KernelGetArgumentSize dispatcher is loaded during context init but
never called.
#218367 converted it to a ZeDispatcher but also removed its only
callers.
Argument sizes are now either not needed
(zeCommandListAppendLaunchKernelWithArguments) or come from
LaunchArgs.ArgSizes on the fallback path, so the driver query is no
longer used(other than debug printing).

This removes the now dead optional API declaration, the dispatcher
member, its loadExperimental call and the related debug output.
Not tested on actual GPU hardware however the plugin builds without
error(which I think should be sufficient check).


AI was only used in a review on unrelated changes which noted this dead
code.
DeltaFile
+0-8offload/plugins-nextgen/level_zero/src/L0Context.cpp
+0-4offload/plugins-nextgen/level_zero/include/L0Compat.h
+0-1offload/plugins-nextgen/level_zero/include/L0Context.h
+0-133 files

LLVM/project 2f97ec4 — llvm/lib/CodeGen/SelectionDAG LegalizeTypes.h LegalizeFloatTypes.cpp, llvm/test/CodeGen/NVPTX f128-no-libcall-error.ll

DAG: Gracefully diagnose missing FMA and ppcf128 expansion libcalls (#228094)

Previously this would hit a fatal error. Legalize to poison and report a proper 
context error.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+100-0llvm/test/CodeGen/X86/ppcf128-expand-no-libcall-error.ll
+68-26llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+17-5llvm/test/CodeGen/NVPTX/f128-no-libcall-error.ll
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+186-314 files