LLVM/project d2bb66d — llvm/test/Transforms/SampleProfile remapper-reread-loaded-profile.ll, llvm/test/Transforms/SampleProfile/Inputs remapper-reread-loaded-profile.map remapper-reread-loaded-profile.prof

[SampleProf][test] Precommit test: loaded profile is re-read on incremental read with a remapper (#231339)

Precommit test showing that `SampleProfileReaderExtBinaryBase::readFuncProfiles` decodes an already-loaded function profile a second time, and merges it into itself, when an incremental read happens while a symbol remapping file is in use.

A follow-up change intends to fix this.

Assisted by: Gemini and Claude
DeltaFile
+83-0llvm/test/Transforms/SampleProfile/remapper-reread-loaded-profile.ll
+9-0llvm/test/Transforms/SampleProfile/Inputs/remapper-reread-loaded-profile.prof
+3-0llvm/test/Transforms/SampleProfile/Inputs/remapper-reread-loaded-profile.map
+95-03 files

LLVM/project e626c21 — llvm/lib/CodeGen/MIRParser MIParser.cpp

Use methods on Flag to query the register kind.
DeltaFile
+2-2llvm/lib/CodeGen/MIRParser/MIParser.cpp
+2-21 files

LLVM/project ec96cc7 — libc/test/src/math/smoke expf_test.cpp

rebase

Created using spr 2.0.0-beta.1
DeltaFile
+0-139libc/test/src/math/smoke/expf_test.cpp
+0-1391 files

LLVM/project 374074f — libc/test/src/math/smoke expf_test.cpp

rebase

Created using spr 2.0.0-beta.1
DeltaFile
+139-0libc/test/src/math/smoke/expf_test.cpp
+139-01 files

LLVM/project f231869 — llvm/lib/Transforms/IPO MemProfContextDisambiguation.cpp, llvm/test/ThinLTO/X86 memprof-basic.ll

[MemProf] Handle missing alloc contexts in backend assertion checking (#232422)

The combined index only serializes the MIB stack ids for allocation
records when -combined-index-memprof-context is enabled, which defaults
to false in NDEBUG builds. When the thin link is performed by a release
build but the ThinLTO backends are compiled with assertions enabled, the
distributed indexes contain empty MIB contexts, and checkAllocContextIds
in the backend asserts because the summary context is shorter than the
IR metadata context.

Since the MIB context in the summary can never be empty after trimming
the allocation's callsite context, treat an empty context as not
serialized and skip the stack id checking for that MIB.

Add a regression test to memprof-basic.ll that performs a distributed
thin link with -combined-index-memprof-context=false and then runs the
backend.

Assisted-by: Gemini
DeltaFile
+24-0llvm/test/ThinLTO/X86/memprof-basic.ll
+11-0llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+35-02 files

LLVM/project 433ab53 — lldb/source/API SBStream.cpp

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-207lldb/source/API/SBStream.cpp
+0-2071 files

LLVM/project 9c12412 — libc/test/src/math/smoke expf_test.cpp

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-139libc/test/src/math/smoke/expf_test.cpp
+0-1391 files

LLVM/project e0984a5 — llvm/lib/Target/DirectX DXILResourceAccess.cpp, llvm/test/CodeGen/DirectX/ResourceAccess load-cbuffer-dynamic-i64.ll load-cbuffer-phi-subrow.ll

[HLSL][DirectX] Handles GEPs in dxil resource access pass (#224754)

Add support to traverse through GEPs in dxil resource access pass, as
well as support getbasepointer which is used by cbuffers.

Closes #224102

Assisted by GPT-5.6 Sol, Claude Opus 5.5 and @inbelic

---------

Co-authored-by: joaosaffran <joaosaffran at gmail.com>
DeltaFile
+298-37llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+288-0llvm/test/CodeGen/DirectX/ResourceAccess/load-cbuffer-row-reuse.ll
+258-0llvm/test/CodeGen/DirectX/ResourceAccess/handle-to-index-gep.ll
+80-0llvm/test/CodeGen/DirectX/ResourceAccess/looped-pointer-phi.ll
+28-0llvm/test/CodeGen/DirectX/ResourceAccess/load-cbuffer-phi-subrow.ll
+23-0llvm/test/CodeGen/DirectX/ResourceAccess/load-cbuffer-dynamic-i64.ll
+975-376 files

LLVM/project 89c5fca — flang/lib/Semantics check-omp-atomic.cpp check-omp-structure.h, flang/test/Semantics/OpenMP declare-target02.f90 flush02.f90

[flang][OpenMP] Switch clause verification to descriptor-based

Delete all the scattered pieces of clause verification that are now
replaced by the unified handling.
DeltaFile
+57-273flang/lib/Semantics/check-omp-structure.cpp
+300-0flang/lib/Semantics/check-omp-syntax.cpp
+22-10flang/lib/Semantics/check-omp-structure.h
+0-31flang/lib/Semantics/check-omp-atomic.cpp
+8-8flang/test/Semantics/OpenMP/flush02.f90
+15-0flang/test/Semantics/OpenMP/declare-target02.f90
+402-32237 files not shown
+517-38443 files

LLVM/project 076bd55 — mlir/include/mlir/Conversion/ArithCommon CeilFloorDivExpansion.h, mlir/include/mlir/Dialect/Arith/Transforms Passes.h

[mlir][Arith] Move ceil/floor div expansion to Conversion/ArithCommon. NFC (#231064)

MLIRArithToLLVM depends on MLIRArithTransforms, which pulls in
Bufferization, SCF, Shard, SparseTensor, Tensor, and Vector, only for
populateCeilFloorDivExpandOpsPatterns (#118839). ClangIR reaches
MLIRArithToLLVM through MLIROpenMPToLLVM.

Move the patterns to a new library, MLIRArithCommonConversion. The
declaration moves from Arith/Transforms/Passes.h to
Conversion/ArithCommon/CeilFloorDivExpansion.h.

LLM-aided. With -DCLANG_ENABLE_CIR=ON, clang links 14 fewer MLIR
libraries (89 -> 75).
DeltaFile
+139-0mlir/lib/Conversion/ArithCommon/CeilFloorDivExpansion.cpp
+1-112mlir/lib/Dialect/Arith/Transforms/ExpandOps.cpp
+21-0mlir/include/mlir/Conversion/ArithCommon/CeilFloorDivExpansion.h
+13-1utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+7-0mlir/lib/Conversion/ArithCommon/CMakeLists.txt
+0-3mlir/include/mlir/Dialect/Arith/Transforms/Passes.h
+181-1166 files not shown
+188-11812 files

LLVM/project 97172b0 — llvm/include/llvm/CodeGen AsmPrinter.h, llvm/lib/CodeGen/AsmPrinter DwarfUnit.cpp

[DebugInfo] Emit DW_AT_LLVM_address_space for AMDGPU (#220789)

LLVM emits a pointer type's DWARF address space as DW_AT_address_class,
but the
AMDGPU DWARF extensions define DW_AT_LLVM_address_space for exactly
this, so emit
that attribute on AMDGPU targets. Other targets keep
DW_AT_address_class; NVPTX in
particular fills it in via translateToNVVMDWARFAddrSpace() for cuda-gdb.
The choice
goes through a new getTypeAddressSpaceAttribute() hook on DwarfDebug
that
AMDGPUDwarfDebug overrides, installed via createDwarfDebug() as NVPTX
does, so
DwarfUnit.cpp stays target independent.

Depends on: https://github.com/llvm/llvm-project/pull/220728
DeltaFile
+92-0llvm/test/DebugInfo/AMDGPU/dwarfdump-address-spaces.ll
+9-0llvm/include/llvm/CodeGen/AsmPrinter.h
+3-3llvm/test/DebugInfo/AMDGPU/pointer-address-space.ll
+3-3llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+3-0llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+110-65 files

LLVM/project 6398cf5 — libc/src/__support/math expf.h

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-63libc/src/__support/math/expf.h
+0-631 files

LLVM/project dc53f17 — compiler-rt/lib/asan asan_new_delete.cpp, compiler-rt/test/sanitizer_common/TestCases max_allocation_size.cpp throw_bad_alloc_oversize.cpp

[asan] Adopt sanitizer_common operator-new framework (#196388)

This completes the series that makes AddressSanitizer's `operator new`
conform to [new.delete.single]/3-4 (google/sanitizers#295), building on
#196413, #200719, #201151, #202816, #213077, #225847, #231994 and
#226832.

ASan's eight `operator new` overrides now use the shared framework in
`sanitizer_new_operators.inc`. On allocation failure they call the
current `std::new_handler` until allocation succeeds or the chain is
exhausted. After that:

- `allocator_may_return_null=0` (default): report out-of-memory and
  abort once the handler chain is exhausted. Programs that install a
  `std::new_handler` now see it run first; previously ASan never called
  it.
- `allocator_may_return_null=1`: throwing `new` throws `std::bad_alloc`
  (aborts if the runtime is built without exceptions, e.g. on Windows);
  nothrow `new` returns `nullptr`.

    [26 lines not shown]
DeltaFile
+12-45compiler-rt/lib/asan/asan_new_delete.cpp
+49-0compiler-rt/test/sanitizer_common/TestCases/new_handler_invocation.cpp
+48-0compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned.cpp
+42-0compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_aligned_single.cpp
+41-0compiler-rt/test/sanitizer_common/TestCases/throw_bad_alloc_oversize.cpp
+28-7compiler-rt/test/sanitizer_common/TestCases/max_allocation_size.cpp
+220-5211 files not shown
+431-7617 files

LLVM/project 9b3b3d4 — clang/docs ReleaseNotes.md, clang/lib/Sema SemaChecking.cpp

[Clang][Sema] Add fortify warnings for vsprintf (#230672)

Extend the `sprintf` `-Wfortify-source` format overflow check in `Sema::checkFortifiedBuiltinMemoryFunction` to also cover `vsprintf`, `__builtin_vsprintf`, `__builtin___vsprintf_chk`, and `__builtin_sprintf`.

Also translate the format string argument index via `Checker.TranslateIndex`, fixing a latent bug when `sprintf` or `__builtin___sprintf_chk` is wrapped with `__attribute__((diagnose_as_builtin(...)))`.

Part of #142230

Assisted-by: Gemini
DeltaFile
+30-0clang/test/Sema/warn-fortify-source.c
+13-4clang/lib/Sema/SemaChecking.cpp
+9-0clang/test/Sema/attr-diagnose-as-builtin.c
+4-0clang/docs/ReleaseNotes.md
+56-44 files

LLVM/project b451708 — llvm/utils/TableGen AsmWriterEmitter.cpp

[TableGen][AArch64] Check the inner operator name before folding (any_of FeatureAll, (any_of ...)) to (any_of FeatureAll, ...). (#232116)

We only checked the outer operator was any_of, we didn't check the inner
operator.

Allow (any_of FeatureAll, (all_of FeatureX)) if the inner all_of has a
single feature. This supports the AArch64 usage of
AssemblerPredicateWithAll.
DeltaFile
+10-4llvm/utils/TableGen/AsmWriterEmitter.cpp
+10-41 files

LLVM/project 3db057a — llvm/test/CodeGen/AMDGPU extract_vector_dynelt.ll, llvm/test/CodeGen/NVPTX i32x2-instructions.ll f32x2-instructions.ll

DAG: Don't export arguments for FastISel if it won't be used (#232309)

LowerArguments decided whether to export arguments to virtual
registers based on TM.Options.EnableFastISel. That option is set at
-O0 even for targets that have no FastISel implementation. This is
unnecessary without fast isel, so stop doing that.

The unneeded CopyToReg was an extra use of every argument, which
blocked some combines. The dead copies also survived to register
allocation. These copies were an edge case that regallocfast would
introduce dead flags on.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+725-1,475llvm/test/CodeGen/NVPTX/i8x4-instructions.ll
+704-890llvm/test/CodeGen/NVPTX/reduction-intrinsics.ll
+522-621llvm/test/CodeGen/NVPTX/f16x2-instructions.ll
+309-438llvm/test/CodeGen/NVPTX/f32x2-instructions.ll
+303-418llvm/test/CodeGen/NVPTX/i32x2-instructions.ll
+336-352llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
+2,899-4,19436 files not shown
+3,965-5,74042 files

LLVM/project bf3eefd — llvm/lib/CodeGen/LiveDebugValues InstrRefBasedImpl.cpp, llvm/test/DebugInfo/MIR/InstrRef spill-slot-idx-limits.mir

[LiveDebugValues] Add a limit on the number of stack slot indexes (#225950)

MLocTracker reserves a machine location for every subregister index of
every tracked stack slot, so on targets with a large number of
subregister indexes the memory and time cost of spill tracking grows
sharply.

Add -livedebugvalues-max-stack-slot-idxes as a counterpart to the
existing -livedebugvalues-max-stack-slots, stopping spill tracking when
a target exceeds it.
DeltaFile
+92-0llvm/test/DebugInfo/MIR/InstrRef/spill-slot-idx-limits.mir
+20-0llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
+112-02 files

LLVM/project e2a7e65 — flang/lib/Semantics check-omp-syntax.cpp, flang/test/Semantics/OpenMP uses-allocators-version51.f90 uses-allocators-version50.f90

[flang][OpenMP] Improve diagnostics about modifier properties

Use OpenMPDeprecated and OpenMPFuture warning categories for modifier
diagnostics as well, analogously to how they are used for clauses.
DeltaFile
+67-31flang/lib/Semantics/check-omp-syntax.cpp
+4-4flang/test/Semantics/OpenMP/map-modifiers-v60.f90
+3-3flang/test/Semantics/OpenMP/uses-allocators-version50.f90
+3-3flang/test/Semantics/OpenMP/to-clause-v45.f90
+3-3flang/test/Semantics/OpenMP/from-clause-v45.f90
+2-2flang/test/Semantics/OpenMP/uses-allocators-version51.f90
+82-466 files not shown
+89-5312 files

LLVM/project dbb0210 — flang/include/flang/Parser openmp-utils.h, flang/lib/Semantics check-omp-structure.h check-omp-syntax.cpp

[flang][OpenMP] Account for using different versions for modifier checks

When a modifier from a past/future version is accepted, use its properties
from the nearest version in which it is allowed.
DeltaFile
+118-75flang/lib/Semantics/check-omp-syntax.cpp
+3-1flang/include/flang/Parser/openmp-utils.h
+2-1llvm/include/llvm/Frontend/Directive/Spelling.h
+1-0flang/lib/Semantics/check-omp-structure.h
+124-774 files

LLVM/project 20fe521 — flang/include/flang/Parser openmp-utils.h, flang/lib/Parser openmp-utils.cpp

[flang][OpenMP] Create generic interfaces for "container" entities

In short, clauses are containers of modifiers, and directives are
containers of clauses. With the abstractions in place, clauses and
modifiers look almost the same from the point of view of syntactic
properties.

Use these functions to implement generic GetAllowedElements and
GetElementVersionRange functions.
DeltaFile
+17-55flang/lib/Semantics/check-omp-syntax.cpp
+56-0flang/include/flang/Parser/openmp-utils.h
+31-0flang/lib/Parser/openmp-utils.cpp
+104-553 files

LLVM/project e25f919 — flang/lib/Semantics check-omp-syntax.cpp

[flang][OpenMP] Properly use GetAllowedElements

Allowed elements are not just those explicitly listed, but also those
from the union of allowed sets.

For example, the set of modifiers allowed on a clause are those that
are listed on a given clause, plus the union of all modifier sets that
the clause allows.
DeltaFile
+25-13flang/lib/Semantics/check-omp-syntax.cpp
+25-131 files

LLVM/project d94aaaa — llvm/include/llvm/Frontend/OpenMP OMPDescriptors.h OMPDescriptors.h.inc, llvm/lib/Frontend/OpenMP OMPDescriptors.cpp OMPDescriptors.inc

[OpenMP] Introduce descriptors for directives, clause groups and sets

Reuse Association and Category enum definitions from OMP.h.inc.
DeltaFile
+1,110-1llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
+110-1llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h.inc
+110-0llvm/lib/Frontend/OpenMP/OMPDescriptors.cpp
+63-0llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h
+1,393-24 files

LLVM/project d0f180a — lldb/source/API SBStream.cpp

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-207lldb/source/API/SBStream.cpp
+0-2071 files

LLVM/project 0847be2 — libc/src/__support/math expf.h, libc/test/src/math/smoke expf_test.cpp

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

Created using spr 2.0.0-beta.1

[skip ci]
DeltaFile
+0-139libc/test/src/math/smoke/expf_test.cpp
+0-63libc/src/__support/math/expf.h
+0-2022 files

LLVM/project c91d3e1 — llvm/lib/Target/AMDGPU GCNSchedStrategy.h GCNSchedStrategy.cpp, llvm/unittests/Target/AMDGPU GCNRegPressureTest.cpp

[AMDGPU][CodeGen] Split downward RP tracker auto/manual modes (NFC) (#231862)

Many of the core methods of `GCNDownwardRPTracker` use a combination of
a `*MI` and `UseInternalIterator` arguments to determine whether they
should rely on program order or use user-provided instructions to
determine the next instruction to advance over to compute RP changes.
This ties two different use cases together that should never mix, and I
find that it makes it hard to track what is happening.

This splits the two use cases cleanly using different classes inheriting
from a new base class `GCNDownwardRPTrackerBase`.

- `GCNDownwardRPTracker` (same class name as before) now only supports
iteration following program order (`UseInternalIterator==true`).
- `GCNManualDownwardRPTracker` only supports iteration following
user-provided MIs. This only has one usage, in the scheduler.

I find this simplifies the code significantly. It also eliminates a
useless call to `advanceBeforeNext` that happened when
`UseInternalIterator==false` in the `advance` method.
DeltaFile
+66-51llvm/lib/Target/AMDGPU/GCNRegPressure.h
+46-60llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+7-8llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+6-6llvm/unittests/Target/AMDGPU/GCNRegPressureTest.cpp
+5-5llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
+130-1305 files

LLVM/project 07943f9 — libc/src/__support/math expf.h

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

Created using spr 2.0.0-beta.1

[skip ci]
DeltaFile
+0-63libc/src/__support/math/expf.h
+0-631 files

LLVM/project 63616bd — libc/test/src/math/smoke expf_test.cpp

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-139libc/test/src/math/smoke/expf_test.cpp
+0-1391 files

LLVM/project d62f60d — libc/src/__support/math expf.h

[𝘀𝗽𝗿] initial version

Created using spr 2.0.0-beta.1
DeltaFile
+0-63libc/src/__support/math/expf.h
+0-631 files

LLVM/project d45e20c — utils/bazel/llvm-project-overlay/libc BUILD.bazel

[bazel][libc] Add missing deps to __support_printf_core_printf_converter (#232407)

#230246 (509679cf9c9d) added includes of
src/__support/CPP/type_traits.h, src/__support/wctype_utils.h, and
hdr/types/size_t.h to printf_core converter headers.

Add the corresponding :__support_cpp_type_traits,
:__support_wctype_utils, and :types_size_t dependencies to
__support_printf_core_printf_converter in libc/BUILD.bazel.
DeltaFile
+3-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+3-01 files

LLVM/project b0c66db — flang-rt/unittests/Runtime EnvironmentTest.cpp, libc/src/__support/math exp2bf16.h

rebase

Created using spr 1.3.7
DeltaFile
+368-0llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll
+211-0libc/src/__support/math/exp2bf16.h
+206-0llvm/test/Analysis/LoopAccessAnalysis/stencil-group-merging-unknown-deps.ll
+151-0flang-rt/unittests/Runtime/EnvironmentTest.cpp
+53-50llvm/lib/CodeGen/TargetPassConfig.cpp
+100-0llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-incomplete-dependences.ll
+1,089-5091 files not shown
+1,906-17797 files