LLVM/project 6489200llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer/AArch64 arm64-vcvt_f32_su32.ll arm64-vcvt.ll

Revert "Revert "[msan] Apply handleGenericVectorConvertIntrinsic() to fptrunc…"

This reverts commit eb63d313c659ded3bd3106eac71a38c4c50bd3fc.
DeltaFile
+14-13llvm/test/Instrumentation/MemorySanitizer/i386/vararg_shadow.ll
+14-13llvm/test/Instrumentation/MemorySanitizer/X86/vararg_shadow.ll
+15-6llvm/test/Instrumentation/MemorySanitizer/X86/f16c-intrinsics-upgrade.ll
+10-8llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt.ll
+8-4llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt_f32_su32.ll
+9-3llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+70-471 files not shown
+72-487 files

LLVM/project 17088c9llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h

[SandboxVectorizer] Implement topdown/bottomup vectorizers in unison (#205249)

Extend the Sandbox Vectorizer's `bottom-up-vec` pass so a single
implementation can vectorize in either direction, and add the top-down
strategy that walks def-use chains forward from a seed.

Direction selection
--------------------
The pass direction is chosen from the Region's auxiliary pass argument:
"bottom-up" (or empty, the default) and "top-down" map onto a
SchedDirection, and any other value is rejected with a fatal usage
error.
The vectorizer always runs in the same direction as the scheduler.

Top-down traversal
------------------
Bottom-up starts from a seed slice (e.g. stores to consecutive
addresses)
and recurses into operands. Top-down instead starts from a seed of

    [40 lines not shown]
DeltaFile
+598-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+267-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+83-27llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+83-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+34-12llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+12-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+1,077-396 files

LLVM/project f68fba7llvm/lib/Transforms/Vectorize/SandboxVectorizer DependencyGraph.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxVec][DAG] Fix notifyEraseInstr to skip scheduled neighbors (#212868)

Guard both loops with !PredN->scheduled() so scheduled neighbors are
left untouched, and add a unit test that erases a node with one
scheduled and one unscheduled predecessor to cover the fix.
DeltaFile
+43-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
+46-12 files

LLVM/project 5525229llvm/lib/Target/AMDGPU SIInstructions.td SIISelLowering.cpp

[AMDGPU] Rename packed 64-bit features to include SingleSGPR. NFCI.
DeltaFile
+9-9llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+12-6llvm/lib/Target/AMDGPU/AMDGPU.td
+8-8llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+4-4llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+2-2llvm/lib/Target/AMDGPU/SIInstructions.td
+2-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+37-313 files not shown
+43-339 files

LLVM/project 2955117llvm/lib/Target/AMDGPU VOP3PInstructions.td AMDGPUTargetTransformInfo.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp

[AMDGPU] Duplicate packed fp32 instructions

These have different semantics on gfx9 and gfx12 with respect to
scalar operands.
DeltaFile
+21-9llvm/lib/Target/AMDGPU/SIInstructions.td
+9-9llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+7-7llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+9-4llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+6-6llvm/test/CodeGen/AMDGPU/bug-pk-f32-imm-fold.mir
+5-5llvm/test/CodeGen/AMDGPU/coexec-sched-effective-stall.mir
+57-409 files not shown
+89-5415 files

LLVM/project 30611cabolt/lib/Rewrite RewriteInstance.cpp, bolt/test/AArch64 constant_island_pie_update.s

[BOLT] Fix RELR addend updates for non-zero image bases (#213000)

This patch fixes an AArch64 BOLT failure exposed by LLVM commit
`fbba327208d7f6994f9a28a51dca3e913e3b444a`, which enabled packed
relative relocations (RELR) globally. BOLT incorrectly used a virtual
relocation address as a file offset when updating RELR addends,
corrupting instrumented executables when their image base was non-zero.
The observed CMake compiler-check failure was only a consequence of the
corrupted BOLT-instrumented Clang executable crashing; the defect itself
is in BOLT, not CMake.

The regression test links an AArch64 PIE with a non-zero image base and
verifies that BOLT updates the RELR addend at the correct file offset.

Assisted-by: Codex
DeltaFile
+15-0bolt/test/AArch64/constant_island_pie_update.s
+1-1bolt/lib/Rewrite/RewriteInstance.cpp
+16-12 files

LLVM/project c46d2eamlir/include/mlir-c Rewrite.h, mlir/test/CAPI rewrite.c

Address review: fix stale InsertPoint header comment, test all restore branches
DeltaFile
+16-2mlir/test/CAPI/rewrite.c
+2-2mlir/include/mlir-c/Rewrite.h
+18-42 files

LLVM/project b08d58fmlir/include/mlir-c Rewrite.h, mlir/lib/CAPI/Transforms Rewrite.cpp

[mlir-c] Add RewriterBase insertion point save/restore
DeltaFile
+63-0mlir/test/CAPI/rewrite.c
+26-0mlir/lib/CAPI/Transforms/Rewrite.cpp
+19-0mlir/include/mlir-c/Rewrite.h
+108-03 files

LLVM/project 56a48d7compiler-rt/test/msan vararg_shadow.cpp

[msan][test] Disable UB cases in vararg_shadow.cpp (#204246)

This patch comments out the tests for char and float, which have
undefined behavior: `warning: second argument to 'va_arg' is of
promotable type 'char'/'float'; this va_arg has undefined behavior
because arguments will be promoted to 'int'/'double' [-Wvarargs]`.

The non-UB way to rewrite the tests is to use `va_arg()` with int and
double types (when the original variables are char and float), but there
are already test cases for int and double.

Note also that the float test makes an assumption that
`cast<float>(cast<double>(float))` will maintain the original shadow,
which MSan need not guarantee. In particular,
https://github.com/llvm/llvm-project/pull/204197 breaks that assumption
(which led to a buildbot breakage and revert).
DeltaFile
+16-4compiler-rt/test/msan/vararg_shadow.cpp
+16-41 files

LLVM/project b4a77f5libc/src/__support freestore.h, libc/test/src/__support freestore_test.cpp

[libc][__support] Implement exact linear binning for TLSFFreeStoreImpl

Previously, size_to_bit_index used size >> UNIT_SIZE_LOG2 for linear bins,
which mapped size 24 to bin 1 and size 17 to bin 1, causing a mismatch
between allocation request sizes and physical block bucket sizes.

This change introduces exact mapping for linear bins:
- Sizes <= MIN_INNER_SIZE map to bin 0.
- Larger linear sizes use ((size - MIN_INNER_SIZE - 1) >> UNIT_SIZE_LOG2) + 1.
- Exponential bins remain unchanged (verified by z3).

TAG=agy
CONV=811f354e-5729-4a5f-af17-de4b5ca9e647
DeltaFile
+24-11libc/src/__support/freestore.h
+1-1libc/test/src/__support/freestore_test.cpp
+25-122 files

LLVM/project 7e35cbbllvm/lib/Target/NVPTX NVPTXRegisterInfo.h NVPTXAsmPrinter.h, llvm/lib/Target/NVPTX/MCTargetDesc NVPTXInstPrinter.cpp NVPTXBaseInfo.h

[NVPTX] Cleanup PTX virtual register encoding (NFC) (#212395)

Unify the scheme used to carry PTX virtual registers through
`MCOperand`s. The register class was encoded and decoded 
by two hand-written switchtables, one in
`NVPTXAsmPrinter::encodeVirtualRegister` and one in
`NVPTXInstPrinter::printRegName`, kept in sync only by
comment. Both now share a `VirtualRegisterKind` enum and
`getVirtualRegisterPrefix` in `NVPTXBaseInfo.h`, which also
subsumes `getNVPTXRegClassStr` and drops the stale
`%f`/`%fd` cases left over from the typed float register
classes.

Co-Authored by Opus-5.
DeltaFile
+55-59llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
+49-0llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h
+11-30llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp
+8-29llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
+11-8llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
+3-6llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h
+137-1326 files

LLVM/project 197e68d.github CODEOWNERS

Revert "[github] Move BOLT reviewers to team (#211422)" (#213141)

We haven't really being tagged in new PRs anymore, so it looks like this
is not working.

Revert for now until we can fix this, so we don't miss PRs.

This reverts commit 04f124f6151e8c8410e28aba28dc38e590e34c58.
DeltaFile
+3-1.github/CODEOWNERS
+3-11 files

LLVM/project 20c764aclang/test/SemaOpenCL builtins-amdgcn-cvt-sr-pk-bf16-f32-err.cl, llvm/lib/Target/AMDGPU VOP3Instructions.td AMDGPU.td

AMDGPU: Give v_cvt_sr_pk_bf16_f32 its own subtarget feature

v_cvt_sr_pk_bf16_f32 was gated on bf16-cvt-insts, but that feature is
also present on gfx950 where the (non-sr) v_cvt_pk_bf16_f32 was first
added. The stochastic-rounding v_cvt_sr_pk_bf16_f32 was only added
for gfx1250 and has no gfx950 encoding, so it would mis-select and
later hit the "Invalid opcode" assert. Introduce cvt-sr-pk-bf16-f32-inst,
currently added to gfx13 and 125*

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+12-0clang/test/SemaOpenCL/builtins-amdgcn-cvt-sr-pk-bf16-f32-err.cl
+8-0llvm/test/MC/AMDGPU/gfx950-unsupported.s
+6-0llvm/lib/Target/AMDGPU/AMDGPU.td
+4-1llvm/lib/Target/AMDGPU/VOP3Instructions.td
+3-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sr.pk.bf16.ll
+2-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+35-11 files not shown
+36-27 files

LLVM/project 3b67949mlir/include/mlir-c IR.h, mlir/test/CAPI ir.c

Address review: exercise operand number/value filtering, userData, and no-use case
DeltaFile
+41-0mlir/test/CAPI/ir.c
+2-1mlir/include/mlir-c/IR.h
+43-12 files

LLVM/project 6131543utils/bazel/llvm-project-overlay/flang/lib/Optimizer/OpenACC/Transforms BUILD.bazel

[Bazel] Fixes 21d9869 (#213147)

This fixes 21d9869c206e12f1932aecff50d03f06f5a96339 (#212299).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=21d9869c206e12f1932aecff50d03f06f5a96339

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+2-0utils/bazel/llvm-project-overlay/flang/lib/Optimizer/OpenACC/Transforms/BUILD.bazel
+2-01 files

LLVM/project 2d0b45bclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format FormatTest.cpp

[clang-format] Prevent re-assigning type on finalized tokens (#210763)

Prevents a finalized token inside modifyContext from being reassigned
through the setType member function by checking if the token is
finalized.

This ensures ill-defined code like does not trigger an assertion failure
during reformatting.
Fixes #210509
DeltaFile
+2-1clang/lib/Format/TokenAnnotator.cpp
+1-0clang/unittests/Format/FormatTest.cpp
+3-12 files

LLVM/project f279abcoffload/test/unit lit.site.cfg.in lit.cfg.py

[Offload][Test] Add llvm bin in the PATH for offload-unit suite (#213149)

This PR makes the offload-unit suite put llvm bin directory on PATH so
that tests need lld can find. It fixes the issue exposed in:
https://github.com/llvm/llvm-project/pull/212860
DeltaFile
+11-0offload/test/unit/lit.cfg.py
+1-0offload/test/unit/lit.site.cfg.in
+12-02 files

LLVM/project 308bbdaclang/include/clang/DependencyScanning DependencyScanningWorker.h DependencyScannerImpl.h, clang/lib/DependencyScanning CMakeLists.txt DependencyScanningWorker.cpp

Move implementation details to DependencyScanningWorker.cpp and dissolve DependencyScannerImpl.h/cpp.
DeltaFile
+0-525clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+493-1clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-89clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+12-2clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+0-1clang/lib/Tooling/DependencyScanningTool.cpp
+0-1clang/lib/DependencyScanning/CMakeLists.txt
+505-6193 files not shown
+506-6219 files

LLVM/project 658945dclang/include/clang/DependencyScanning DependencyScannerImpl.h, clang/lib/DependencyScanning DependencyScannerImpl.cpp DependencyScanningWorker.cpp

Use CompilerInstanceWithContext for TU scanning.
DeltaFile
+315-38clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-293clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+35-0clang/unittests/Tooling/DependencyScannerTest.cpp
+0-27clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+1-0clang/test/ClangScanDeps/logging-simple.c
+351-3585 files

LLVM/project 5a76c89clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

Relocate CompilerInstanceWithContext to DependencyScanningWorker.cpp and hide it as an implementation detail.
DeltaFile
+250-0clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+4-207clang/lib/Tooling/DependencyScanningTool.cpp
+0-75clang/include/clang/Tooling/DependencyScanningTool.h
+22-5clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+276-2874 files

LLVM/project c2ff95dclang/include/clang/DependencyScanning DependencyScannerImpl.h, clang/include/clang/Tooling DependencyScanningTool.h

Implement the streaming style by-name scanning API.
DeltaFile
+43-89clang/lib/Tooling/DependencyScanningTool.cpp
+39-56clang/tools/clang-scan-deps/ClangScanDeps.cpp
+15-59clang/include/clang/Tooling/DependencyScanningTool.h
+0-14clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+1-3clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
+1-1clang/test/ClangScanDeps/modules-invalid-target.c
+99-2221 files not shown
+101-2227 files

LLVM/project 4d2633dllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h

[SBVec] Add top-down vectorization to the unified Sandbox Vectorizer

Extend the Sandbox Vectorizer's `bottom-up-vec` pass so a single
implementation can vectorize in either direction, and add the top-down
strategy that walks def-use chains forward from a seed.

Direction selection
--------------------
The pass direction is chosen from the Region's auxiliary pass argument:
"bottom-up" (or empty, the default) and "top-down" map onto a
SchedDirection, and any other value is rejected with a fatal usage error.
The vectorizer always runs in the same direction as the scheduler.

Top-down traversal
------------------
Bottom-up starts from a seed slice (e.g. stores to consecutive addresses)
and recurses into operands. Top-down instead starts from a seed of
consecutive loads and recurses into *users*:


    [32 lines not shown]
DeltaFile
+598-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+267-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+83-27llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+83-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+34-12llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+12-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+1,077-396 files

LLVM/project eb54202llvm/lib/Transforms/Vectorize/SandboxVectorizer DependencyGraph.cpp, llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxIR] Fix notifyEraseInstr to skip scheduled neighbors

Guard both loops with !PredN->scheduled() / !SuccN->scheduled() so
scheduled neighbors are left untouched, and add a unit test that erases
a node with one scheduled and one unscheduled predecessor to cover the
fix.
DeltaFile
+43-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
+46-12 files

LLVM/project 256a6d2llvm/lib/Target/AMDGPU AMDGPU.td VOP1Instructions.td

[AMDGPU] Use a single SubtargetPredicate for fp8/bf8 -> f32 conversions (#212888)

Add FeatureCvtFP8SDWASrcSel for the form that takes the byte from the SDWA src0_sel field and FeatureCvtFP8ByteSel for the form that takes it from a byte_sel operand. Both imply FeatureFP8ConversionInsts, and a subtarget provides one of them, so the multiclass-generated HasCvtFP8SDWASrcSel and HasCvtFP8ByteSel replace the GFX9 and GFX11Plus predicates outright.

Assisted-By: Claude Opus 5
DeltaFile
+23-24llvm/lib/Target/AMDGPU/VOP1Instructions.td
+35-2llvm/lib/Target/AMDGPU/AMDGPU.td
+58-262 files

LLVM/project a54a837mlir/include/mlir-c IR.h, mlir/lib/CAPI/IR IR.cpp

Address review: fix -Wenum-compare build failure, add structural hash, expand flag coverage
DeltaFile
+115-2mlir/test/CAPI/ir.c
+11-16mlir/lib/CAPI/IR/IR.cpp
+19-7mlir/include/mlir-c/IR.h
+145-253 files

LLVM/project 21d9869flang/include/flang/Optimizer/OpenACC Passes.td, flang/lib/Optimizer/OpenACC/Transforms CMakeLists.txt ACCDevicePtrToCUFKernel.cpp

[flang] Add a pass to get OpenACC device ptr for CUDA kernel (#212299)

When a CUDA kernel is launched inside an OpenACC data region, it does
not properly get the device pointers and instead uses host data. This PR
adds a pass to get the device pointers set up by the OpenACC data
construct and pass them explicitly to the CUDA kernel.

Note: A possibly non-contiguous array argument is currently not supported. This pass will skip these cases.

---------

Co-authored-by: Yebin Chon <ychon at nvidia.com>
DeltaFile
+188-0flang/lib/Optimizer/OpenACC/Transforms/ACCDevicePtrToCUFKernel.cpp
+135-0flang/test/Fir/OpenACC/device-ptr-to-cuf-kernel.mlir
+27-0flang/include/flang/Optimizer/OpenACC/Passes.td
+2-0flang/lib/Optimizer/OpenACC/Transforms/CMakeLists.txt
+352-04 files

LLVM/project c836b82mlir/lib/Dialect/OpenACC/Transforms ACCCGToGPU.cpp, mlir/test/Dialect/OpenACC acc-cg-to-gpu-reduction-array-shared.mlir

[mlir][OpenACC] Atomicize contended shared array reduction updates (#212971)

Example:
```fortran
!$acc parallel loop gang reduction(+:a)
do i = 1, N
  !$acc loop worker reduction(+:a)
  do j = 1, M
    a(i) = a(i) + b(j,i)
  end do
end do
```

In this code, the worker accumulator is block-shared, so every worker
updates
the same element with a plain read-modify-write and all but one partial
is lost.

Fix: make in-place updates of a block-shared array accumulator atomic,

    [7 lines not shown]
DeltaFile
+193-35mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
+108-0mlir/test/Dialect/OpenACC/acc-cg-to-gpu-reduction-array-shared.mlir
+301-352 files

LLVM/project e593771clang/include/clang/DependencyScanning DependencyScanningWorker.h DependencyScannerImpl.h, clang/lib/DependencyScanning CMakeLists.txt DependencyScanningWorker.cpp

Move implementation details to DependencyScanningWorker.cpp and dissolve DependencyScannerImpl.h/cpp.
DeltaFile
+0-525clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+493-1clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-89clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+12-2clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+0-1clang/lib/Tooling/DependencyScanningTool.cpp
+0-1clang/lib/DependencyScanning/CMakeLists.txt
+505-6193 files not shown
+506-6219 files

LLVM/project b8b5cd2clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

Relocate CompilerInstanceWithContext to DependencyScanningWorker.cpp and hide it as an implementation detail.
DeltaFile
+250-0clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+4-207clang/lib/Tooling/DependencyScanningTool.cpp
+0-75clang/include/clang/Tooling/DependencyScanningTool.h
+22-5clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+276-2874 files

LLVM/project a2930a2clang/include/clang/DependencyScanning DependencyScannerImpl.h, clang/lib/DependencyScanning DependencyScannerImpl.cpp DependencyScanningWorker.cpp

Use CompilerInstanceWithContext for TU scanning.
DeltaFile
+315-38clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+0-293clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+35-0clang/unittests/Tooling/DependencyScannerTest.cpp
+0-27clang/include/clang/DependencyScanning/DependencyScannerImpl.h
+1-0clang/test/ClangScanDeps/logging-simple.c
+351-3585 files