LLVM/project 9c3693bflang/test/Lower io-implied-do-collapse.f90, llvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.cpp

Merge branch 'main' into users/adams381/cir-callconv-nonbyval-param-noload
DeltaFile
+548-554llvm/test/CodeGen/X86/load-combine.ll
+575-0llvm/test/CodeGen/AMDGPU/arbitrary-fp-from-float-fp8-f16-hw.ll
+248-296llvm/test/CodeGen/MLRegAlloc/Inputs/reference-log-noml.txt
+482-54llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
+523-0flang/test/Lower/io-implied-do-collapse.f90
+389-0llvm/test/ExecutionEngine/JITLink/AArch64/ELF_relocations_be.s
+2,765-904224 files not shown
+8,548-1,824230 files

LLVM/project 6f8bca0llvm/lib/Target/DirectX DXILShaderFlags.cpp, llvm/test/CodeGen/DirectX/ShaderFlags typed-srv-load.ll typed-uav-load-additional-formats.ll

[DirectX] Set TypedUAVLoadAdditionalFormats on UAV texture loads (#225484)

Fixes https://github.com/llvm/llvm-project/issues/225147

This PR makes the `TypedUAVLoadAdditionalFormats` shader flag get set on
UAV texture loads.

Assisted by: GPT 5.6 Sol
DeltaFile
+30-0llvm/test/CodeGen/DirectX/ShaderFlags/typed-uav-load-additional-formats.ll
+10-0llvm/test/CodeGen/DirectX/ShaderFlags/typed-srv-load.ll
+3-1llvm/lib/Target/DirectX/DXILShaderFlags.cpp
+43-13 files

LLVM/project 680fb32llvm/test/CodeGen/X86 load-combine.ll

[X86] load-combine.ll - cleanup check prefixes and don't scrub stack math (#225762)

Ensure all stack addresses are visible
DeltaFile
+548-554llvm/test/CodeGen/X86/load-combine.ll
+548-5541 files

LLVM/project 59e62a9llvm/lib/ProfileData InstrProfWriter.cpp InstrProfReader.cpp, llvm/test/tools/llvm-profdata merge-filter.test text-zero-bitmap.test

[InstrProf] Disambiguate zero bitmaps in text profiles (#213906)
DeltaFile
+51-0llvm/test/tools/llvm-profdata/text-zero-bitmap.test
+6-2llvm/lib/ProfileData/InstrProfReader.cpp
+6-1llvm/test/tools/llvm-profdata/merge-filter.test
+6-0llvm/test/tools/llvm-profdata/Inputs/instr-remap.expected
+2-2llvm/lib/ProfileData/InstrProfWriter.cpp
+2-0llvm/test/tools/llvm-profdata/Inputs/cs.proftext
+73-52 files not shown
+77-58 files

LLVM/project 50b8b5allvm/docs CommandLine.md, llvm/lib/Support CommandLine.cpp

[Support] Remove cl::DefaultOption (#225609)

https://reviews.llvm.org/D59746 added cl::DefaultOption so that the
built-in -h could be overridden by llvm-objdump and llvm-readobj, which
have since moved to OptTable. The remaining overrides just call
PrintHelpMessage, so remove them along with the flag. -h and --help
keep working in every tool.

LLM-aided
DeltaFile
+0-62llvm/unittests/Support/CommandLineTest.cpp
+2-24llvm/lib/Support/CommandLine.cpp
+0-10mlir/lib/Tools/mlir-query/MlirQueryMain.cpp
+0-9mlir/lib/Tools/mlir-reduce/MlirReduceMain.cpp
+0-8llvm/tools/llvm-gpu-loader/llvm-gpu-loader.cpp
+0-8llvm/docs/CommandLine.md
+2-1217 files not shown
+3-15813 files

LLVM/project b07f149clang/docs ConcurrencySanitizer.md

Update ConcurrencySanitizer.md
DeltaFile
+1-1clang/docs/ConcurrencySanitizer.md
+1-11 files

LLVM/project e1125b3llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Run cannotHoistOrSinkRecipe after cheap checks. NFC (#225797)

cannotHoistOrSinkRecipe traverses blocks in the aliasing checks so can
be expensive. We can save some compile time by deferring it after we do
the cheaper checks.

https://llvm-compile-time-tracker.com/compare.php?from=5bb2e21c30de31871dd01279c13abcfa2c06e75f&to=caeacf1cabb08be3608bd02a9b0e683111ab2c6a&stat=instructions:u
DeltaFile
+19-17llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+19-171 files

LLVM/project e840c45compiler-rt/lib/sanitizer_common/symbolizer/scripts global_symbols.txt

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-0compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
+1-01 files

LLVM/project aced947llvm/lib/Target/SPIRV SPIRVLegalizeResourceBinding.cpp, llvm/test/CodeGen/SPIRV/hlsl-resources HeapBinding-uav-counter.ll HeapBinding-texture-sampler.ll

[SPIRV] Add support for dynamic/heap resources (#224488)

Extends the `SPIRVLegalizeImplicitBinding` pass to support heap
resources and renames it to `SPIRVLegalizeImplicitAndHeapBinding`.

The pass scans the module for calls to
`llvm.spv.resource.handlefromheap` and groups them into CBV/SRV/UAV
resources and samplers. Calls to
`llvm.spv.resource.counterhandlefromheap` form a third group.

The SPIR-V backend represents descriptor heaps as unbounded resource
arrays. After resolving implicit bindings, the pass assigns the first
available binding to each heap group in the following order: CBV/SRV/UAV
resources, samplers, and counters.

For each group, the pass will replace the heap intrinsic calls with the
explicit `llvm.spv.resource.handlefrombinding` equivalents using the
assigned binding. The pass does not actually need to create the
unbounded resource-array globals itself. It only needs to assign a

    [10 lines not shown]
DeltaFile
+201-12llvm/lib/Target/SPIRV/SPIRVLegalizeResourceBinding.cpp
+79-0llvm/test/CodeGen/SPIRV/hlsl-resources/HeapBinding-cvb-srv-uav.ll
+68-0llvm/test/CodeGen/SPIRV/hlsl-resources/HeapBinding-texture-sampler.ll
+60-0llvm/test/CodeGen/SPIRV/hlsl-resources/HeapBinding-uav-counter.ll
+44-0llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizeRegisterBinding-Heap.ll
+26-0llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizeRegisterBinding-Heap2.ll
+478-121 files not shown
+487-127 files

LLVM/project fc7aa5fllvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec ptr_diff.ll

[SandboxVec][NFC] Precommit test (#225221)

This is a test for a follow-up patch that improves pointer the diff
calculation.
DeltaFile
+39-0llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/ptr_diff.ll
+39-01 files

LLVM/project fdb7f68clang/docs ConcurrencySanitizer.md, compiler-rt/lib/csan csan_report.cpp csan.cpp

[compiler-rt] Add 'csan' library for the concurrency sanitizer

Summary:
Adds the runtime for the concurrency sanitizer, both CPU and GPU.
Fundamentally, this works using the following pseudocode:

```c
static u64 watchpoints[N]; // Hash-indexed, zero is empty.

// Emitted before the access, so we never trip on our own write.
void check_access(volatile void *addr, u32 size, u32 type) {
    // Every access probes. A read conflicts only with a watched write, a
    // write conflicts with either.
    if (u64 *wp = find_watchpoint(addr, size, type))
        consume(wp, this_pc()); // Hand our location to the owner.

    if (!should_sample()) // Wave-uniform, 1-in-N chance.
        return;


    [17 lines not shown]
DeltaFile
+456-0compiler-rt/lib/csan/csan_gpu.cpp
+370-0compiler-rt/lib/csan/offload/csan_offload_hsa_interceptors.cpp
+334-0compiler-rt/lib/csan/csan.cpp
+279-0compiler-rt/lib/csan/csan_report.cpp
+212-0clang/docs/ConcurrencySanitizer.md
+184-0compiler-rt/lib/csan/offload/csan_offload_report.cpp
+1,835-052 files not shown
+3,244-558 files

LLVM/project 8b23ce8clang/lib/CodeGen BackendUtil.cpp CodeGenFunction.cpp, clang/lib/Driver SanitizerArgs.cpp

[Clang] Add support for the `-fsanitize=concurrency` runtime

Summary:
Add the frontend sanitizer kind, function attributes, pass pipeline
integration, predefined macro, and driver handling for
ConcurrencySanitizer.
DeltaFile
+82-0clang/test/CodeGen/sanitize-concurrency.c
+31-7clang/lib/Driver/ToolChains/CommonArgs.cpp
+15-0clang/test/Driver/fsanitize.c
+10-4clang/lib/Driver/SanitizerArgs.cpp
+10-3clang/lib/CodeGen/CodeGenFunction.cpp
+7-0clang/lib/CodeGen/BackendUtil.cpp
+155-149 files not shown
+177-1515 files

LLVM/project b33ddc8llvm/test/Transforms/SLPVectorizer/AArch64 fsub-chain-reduction-unpaired-signs.ll

[SLP][NFC]Add a test with the regressed vectorization, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/225846
DeltaFile
+67-0llvm/test/Transforms/SLPVectorizer/AArch64/fsub-chain-reduction-unpaired-signs.ll
+67-01 files

LLVM/project 04fe618lldb/unittests/Interpreter CMakeLists.txt, lldb/unittests/Platform CMakeLists.txt

[lldb] Add Options to LINK_COMPONENTS (#225684)

This fixes shared library build of lldb:
```
/usr/bin/ld: lib/liblldbPluginPlatformMacOSX.a(PlatformDarwin.cpp.o): undefined reference to symbol '_ZNK4llvm3opt8OptTable9getOptionENS0_12OptSpecifierE'
/usr/bin/ld: /work/kparzysz/git/llvm.org/b/x86/lib/libLLVMOption.so.24.0git: error adding symbols: DSO missing from command line
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

And several other cases in unittests.
DeltaFile
+2-0lldb/unittests/Process/CMakeLists.txt
+2-0lldb/unittests/Interpreter/CMakeLists.txt
+1-0lldb/unittests/Target/CMakeLists.txt
+1-0lldb/unittests/Protocol/CMakeLists.txt
+1-0lldb/unittests/Process/gdb-remote/CMakeLists.txt
+1-0lldb/unittests/Platform/CMakeLists.txt
+8-03 files not shown
+11-09 files

LLVM/project 79934b7llvm/test/CodeGen/AMDGPU amdgcn.bitcast.960bit.ll amdgcn.bitcast.256bit.ll

AMDGPU: Preserve dead carry-out when shrinking adds in SIFoldOperands

The VOP3 form of add/sub with carry out are sometimes shrunk to the VOPC
form when the carry out is dead. Preserve this information by setting the
dead flag on the new instruction. This alleviates some implicit dependence
on LiveVariables' later recomputation of dead flags.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+4,860-4,866llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,684-1,713llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+772-790llvm/test/CodeGen/AMDGPU/scratch-simple.ll
+398-401llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+226-247llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+210-221llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+8,150-8,23834 files not shown
+9,629-9,94040 files

LLVM/project 4d2fb60clang/include/clang/AST TypeBase.h, clang/test/SemaCXX make_integer_seq.cpp

[clang] Widen SubstTemplateTypeParmType::PackIndex to 16 bits (#225584)

#132748 narrowed PackIndex to 15 bits when adding Final, leaving a bit
unused, so a type pack with 32768 or more elements stores a wrapped pack
index. The node then keys differently from its lookup, failing the
UniquingSet insert assertion. Restore the 16-bit width, matching
SubstPackType's 16-bit NumArgs.

Fix assertion failure https://godbolt.org/z/9r1jEqqob
Aided by Opus 5.5
DeltaFile
+5-0clang/test/SemaCXX/make_integer_seq.cpp
+1-1clang/include/clang/AST/TypeBase.h
+6-12 files

LLVM/project 7311a69llvm/include/llvm/ADT DepthFirstIterator.h

[ADT] Use SmallVector in df_iterator. NFC (#225787)

Helps with compile time. The small size of 8 was chosen to match
ReversePostOrderTraversal.


https://llvm-compile-time-tracker.com/compare.php?from=5bb2e21c30de31871dd01279c13abcfa2c06e75f&to=3f3c5680cae30aa33f6988ee8b326b71f5195577&stat=instructions:u
DeltaFile
+2-2llvm/include/llvm/ADT/DepthFirstIterator.h
+2-21 files

LLVM/project a982844compiler-rt/test/fuzzer minimize_crash.test

minimize_crash.test sometimes one-shots the minimization (fix flaky test) (#225544)

After #223470 it is now possible for `minimize_crash.test` to one-shot
the minimization by applying the EraseBytes mutation 3 times (to go from
size 8=>4=>2=>1).

```
 |            35: SUMMARY: libFuzzer: deadly signal
 |            36: MS: 3 EraseBytes-EraseBytes-EraseBytes-; base unit: 0000000000000000000000000000000000000000
 |            37: 0x2a,
 |            38: *
```

This causes the test to fail because it only prints the `Test unit
written to` line once. This sets `-mutate_depth` to 2 to guarantee that
it won't be one-shot and thus the line will print more than once.

rdar://188078094
DeltaFile
+1-1compiler-rt/test/fuzzer/minimize_crash.test
+1-11 files

LLVM/project a5f766fllvm/test/CodeGen/AMDGPU atomic_optimizations_global_pointer.ll atomic_optimizations_local_pointer.ll

Merge branch 'main' into users/chinmaydd/amdgpu-generic-classification-test-timeout
DeltaFile
+4,817-5,217llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
+4,559-5,003llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
+1,783-2,031llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
+1,783-2,031llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
+1,574-1,388llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
+1,328-1,223llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
+15,844-16,893882 files not shown
+39,629-28,693888 files

LLVM/project 7799236mlir/lib/Dialect/XeGPU/IR XeGPUDialect.cpp, mlir/lib/Dialect/XeGPU/Transforms XeGPULayoutImpl.cpp

[MLIR][XeGPU] Improve multi-reduction layout inference (#224618)
DeltaFile
+35-10mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
+17-19mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
+27-6mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
+79-353 files

LLVM/project 4b150e5llvm/lib/Transforms/IPO GlobalOpt.cpp, llvm/test/Transforms/GlobalOpt storepointer.ll

[GlobalOpt] Use getGetElementPtr() overload accepting a DataLayout (#225789)

To produce the GEP in canonical ptradd form. Unlike other uses,
this one has to take potential failure to create the constant
expression into account.

It also seems like the GEP path was entirely untested, so I added
some basic test coverage for it.
DeltaFile
+79-9llvm/test/Transforms/GlobalOpt/storepointer.ll
+5-4llvm/lib/Transforms/IPO/GlobalOpt.cpp
+84-132 files

LLVM/project dc8ea00clang/docs LanguageExtensions.md, clang/lib/Sema SemaChecking.cpp

[Clang] Add elementwise conversions from encoded FP8 values

Add nine builtins converting Float8E5M2, Float8E4M3FN, and Float8E5M3FNU
encodings to _Float16, __bf16, or float through
llvm.convert.from.arbitrary.fp.

Accept exactly 8-bit integer scalars and generic fixed-length vectors,
preserving vector kinds and element counts without integer promotions.
Also support scalar AArch64 __mfp8 containers. Apply destination type
availability checks, including deferred offload diagnostics, and reject
constant-expression use.

Document the interface and add semantic, template, language-mode,
target-specific, and IR-generation regression coverage.

RFC: https://discourse.llvm.org/t/rfc-clang-elementwise-builtins-for-converting-encoded-floating-point-values/91644
DeltaFile
+236-0clang/test/CodeGen/builtins-elementwise-convert-from-fp8.c
+166-0clang/test/Sema/builtins-elementwise-convert-from-fp8.c
+123-0clang/test/SemaCXX/builtins-elementwise-convert-from-fp8.cpp
+87-0clang/lib/Sema/SemaChecking.cpp
+85-0clang/docs/LanguageExtensions.md
+78-0clang/test/SemaCUDA/builtins-elementwise-convert-from-fp8.cu
+775-010 files not shown
+1,096-016 files

LLVM/project 4f5ae89lldb/test/Shell/Settings/Inputs EchoCommandsNone.out EchoCommandsNoComments.out, llvm/lib/Support Regex.cpp regcomp.c

[Support] Allow \n, \t, \x in regexes (#223024)

\n and \t were already permitted in Regex::sub, but not in the regex
pattern itself. This commit allows them there too.

\x was not supported at all. This commit allows it both in regex
patterns and in Regex::sub.

The goal is to allow \x to be used in FileCheck patterns and to that
end, a test is also included that this works in FileCheck as expected.
DeltaFile
+39-7llvm/lib/Support/regcomp.c
+35-0llvm/unittests/Support/RegexTest.cpp
+13-1llvm/lib/Support/Regex.cpp
+3-3lldb/test/Shell/Settings/Inputs/EchoCommandsNone.out
+3-3lldb/test/Shell/Settings/Inputs/EchoCommandsNoComments.out
+3-3lldb/test/Shell/Settings/Inputs/EchoCommandsAll.out
+96-171 files not shown
+101-177 files

LLVM/project 4932182llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.sudot.ll

[AMDGPU] Fold a constant add/sub into the sudot4/sudot8 accumulator

Fold a constant add into the accumulator operand of sudot4 and sudot8 when
clamping is disabled:
```
  sudot(a, b, C1, false) + C2 -> sudot(a, b, C1 + C2, false)
```
Subtraction by a constant is canonicalized to addition of its negation.
DeltaFile
+10-20llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.sudot.ll
+26-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+36-202 files

LLVM/project 1fbc001llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

Update for comments
DeltaFile
+3-3llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+3-31 files

LLVM/project 9e10a51llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

Update for comments
DeltaFile
+39-44llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+39-441 files

LLVM/project f07ba1ellvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

Update again
DeltaFile
+1-2llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+1-21 files

LLVM/project dcd8f34clang/lib/CodeGen/Targets Sparc.cpp, clang/test/CodeGen/Sparc sparcv8-abi.c

[Sparc][clang] Match GCC's SPARC V8 vector return convention (#222264)

Match GCC's SPARC V8 calling convention for vector return values. Return
floating-point vectors and vectors larger than 64 bits indirectly.
Return smaller integer vectors in floating-point registers.

Assisted-by: Codex
DeltaFile
+102-1clang/test/CodeGen/Sparc/sparcv8-abi.c
+13-0clang/lib/CodeGen/Targets/Sparc.cpp
+115-12 files

LLVM/project f55e761clang/include/clang/CIR/Dialect/IR CIRTypes.td, clang/lib/CIR/CodeGen CIRGenExprScalar.cpp

[CIR] Support builtin matrix type (#221773)

Implement the basic support for the built-in matrix type

Issue #221772
DeltaFile
+56-2clang/include/clang/CIR/Dialect/IR/CIRTypes.td
+43-0clang/test/CIR/IR/invalid-matrix.cir
+28-0clang/lib/CIR/Dialect/IR/CIRTypes.cpp
+18-6clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+20-0clang/test/CIR/IR/matrix.cir
+20-0clang/test/CIR/CodeGen/matrix.cpp
+185-87 files not shown
+233-2113 files

LLVM/project 6b5630dllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 splat-gather-subtree-reuse.ll

[SLP]Do not reorder the tree to match internal gathers of splat subtrees

The internal gathers of the splat gather subtrees are not used as
shuffle sources, but still defined the order of the main tree gathers.
The reorder shuffle stayed after the subtree was dropped as
unprofitable and rejected the profitable tree.

Fixes the perf regression from #220250, reported in #221717.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/225839
DeltaFile
+29-34llvm/test/Transforms/SLPVectorizer/AArch64/splat-gather-subtree-reuse.ll
+27-17llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+56-512 files