LLVM/project aefca76llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer/X86 avx512vl-intrinsics.ll

[msan] Add missing non-mem PMOV handling (#189768)

This adds support for the remaining non-memory PMOV intrinsics, using
the existing handlers.

handleAVX512VectorDownConvert() is slightly updated to handle cases
where there are fewer than 8 output elements (for which the mask is
still supplied as 8 bits).
DeltaFile
+385-931llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl-intrinsics.ll
+105-10llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+490-9412 files

LLVM/project 585e2a0mlir/include/mlir/Bytecode BytecodeDialectInterface.td BytecodeImplementation.h, utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[MLIR] Convert BytecodeDialectInterface to ods (#188852)

This PR converts `BytecodeDialectInterface` to ODS.
DeltaFile
+93-0mlir/include/mlir/Bytecode/BytecodeDialectInterface.td
+2-75mlir/include/mlir/Bytecode/BytecodeImplementation.h
+15-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+4-0mlir/include/mlir/Bytecode/CMakeLists.txt
+1-0utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
+115-755 files

LLVM/project a1af5c0llvm/lib/Analysis DependenceAnalysis.cpp

update
DeltaFile
+8-5llvm/lib/Analysis/DependenceAnalysis.cpp
+8-51 files

LLVM/project d52a5e8mlir/include/mlir/Conversion/ConvertToEmitC ConvertToEmitCPatternInterface.td ToEmitCInterface.h, mlir/lib/Conversion/ArithToEmitC ArithToEmitC.cpp

[MLIR] convert ConvertToEmitCPatternInterface to ODS (#188621)

This PR converts `ConvertToEmitCPatternInterface` dialect interface to ODS. Also makes changes to derived classes.
DeltaFile
+22-0mlir/include/mlir/Conversion/ConvertToEmitC/ConvertToEmitCPatternInterface.td
+2-13mlir/include/mlir/Conversion/ConvertToEmitC/ToEmitCInterface.h
+11-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+2-1mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
+2-1mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
+3-0mlir/include/mlir/Conversion/ConvertToEmitC/CMakeLists.txt
+42-154 files not shown
+48-1710 files

LLVM/project 6581d58llvm/test/Analysis/DependenceAnalysis PR188098.ll

[DA] Revise test `PR188098.ll` (NFC) (#189564)

This patch revises the test `Analysis/DependenceAnalysis/PR188098.ll`
added in #189428, primary to improve readability. I confirmed that this
test cashes without the change added in #188098.
DeltaFile
+51-36llvm/test/Analysis/DependenceAnalysis/PR188098.ll
+51-361 files

LLVM/project 7fce763mlir/include/mlir/IR OperationSupport.h Operation.h, mlir/lib/IR MLIRContext.cpp Operation.cpp

[mlir] Refactor opaque properties to make them type-safe (#185157)

At its core, this commit changes `OpaqueProperties` (aka a void*) to
`PropertyRef`, which is a {TypeID, void*}, where the TypeID is the ID of
the storage type of the given property (which can, as is often the case
for operations, be a struct of other properties).

Long-term, this change will allow for
1) Some sort of getFooPropertyRef() on property structs, allowing
individual members to be extracted generically
2) By having a property kind that is an OwningProprtyRef, generic
parsing (in combination with a bunch of other changes) 3) Probably a
safer C/Python API because we'll be able to indicate what's supposed to
be under a given void*

---------

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+83-65mlir/include/mlir/IR/OperationSupport.h
+26-23mlir/include/mlir/IR/Operation.h
+28-15mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+15-15mlir/unittests/IR/VerifierTest.cpp
+11-11mlir/lib/IR/MLIRContext.cpp
+9-12mlir/lib/IR/Operation.cpp
+172-14132 files not shown
+276-22938 files

LLVM/project e4d0b9eclang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsage.cpp, clang/test/Analysis/Scalable/ssaf-format list.test

address comments
DeltaFile
+16-15clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+12-17clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.cpp
+1-1clang/test/Analysis/Scalable/ssaf-format/list.test
+29-333 files

LLVM/project 9085f74llvm/include/llvm/Support Parallel.h, llvm/lib/Support Parallel.cpp

[Support] Optimize parallel `TaskGroup` (#189196)

Two improvements to reduce `TaskGroup::spawn()` overhead:

1. Replace mutex-based `Latch::inc()` with atomic `fetch_add`. `dec()`
   retains the mutex to prevent a race where `sync()` observes Count==0
   and destroys the Latch while `dec()` is still running.

2. Pass `Latch&` through `Executor::add()` so the worker calls `dec()`
   directly, eliminating the wrapper lambda that previously captured
   both the user's callable and the Latch reference. This avoids one
   `std::function` construction and potential heap allocation per spawn.
DeltaFile
+30-23llvm/lib/Support/Parallel.cpp
+9-11llvm/include/llvm/Support/Parallel.h
+39-342 files

LLVM/project f8b0a8cclang/lib/CIR/CodeGen CIRGenAtomic.cpp, clang/test/CIR/CodeGen atomic-scoped.c

[CIR] Scoped atomic fetch uinc/dec (#189688)
DeltaFile
+38-0clang/test/CIR/CodeGen/atomic-scoped.c
+2-0clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
+40-02 files

LLVM/project 2b98f7fllvm/lib/Target/RISCV RISCVInsertVSETVLI.cpp

[RISCV] Slightly optimize insertVSETMTK. NFC (#189771)

Sink the hasTKOp and hasTMOp checks into the switch.
DeltaFile
+5-8llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+5-81 files

LLVM/project 2f8c0cbllvm/lib/Target/RISCV RISCVVSETVLIInfoAnalysis.cpp

[RISCV] Use a switch default+llvm_unreachable instead of an assert. NFC (#189770)
DeltaFile
+2-2llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.cpp
+2-21 files

LLVM/project 5891275llvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis Propagating.ll exact-rdiv-addrec-wrap.ll

[DA] Check nsw flags for addrecs in gcd MIV test

This patch adds a check to ensure that every addrec have nsw flags
in gcd MIV test. If one of them doesn't have, the analysis bails
out. This check is necessary because the subsequent process in the
gcd MIV test assumes that they don't wrap.

Signed-off-by: Ruoyu Qiu <cabbaken at outlook.com>
DeltaFile
+3-3llvm/test/Analysis/DependenceAnalysis/Propagating.ll
+6-0llvm/lib/Analysis/DependenceAnalysis.cpp
+1-4llvm/test/Analysis/DependenceAnalysis/exact-rdiv-addrec-wrap.ll
+2-2llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
+12-94 files

LLVM/project f561217clang/docs ReleaseNotes.rst, clang/include/clang/APINotes Types.h

[APINotes][unsafe-buffer-usage] Add [[clang::unsafe_buffer_usage]] support in APINotes

Support the ``[[clang::unsafe_buffer_usage]]`` attribute in APINotes, e.g.,
```
    Functions:
      - Name: myUnsafeFunction
        UnsafeBufferUsage: true
```

rdar://171859135
DeltaFile
+23-0clang/test/APINotes/unsafe-buffer-usage.cpp
+9-0clang/docs/ReleaseNotes.rst
+8-0clang/lib/Sema/SemaAPINotes.cpp
+6-1clang/include/clang/APINotes/Types.h
+6-0clang/test/APINotes/Inputs/Headers/UnsafeBufferUsage.apinotes
+5-0clang/test/APINotes/Inputs/Headers/module.modulemap
+57-16 files not shown
+69-212 files

LLVM/project 3f2a9c6compiler-rt/lib/builtins int_math.h muldc3.c

[NFC][compiler-rt] Use __builtin_huge_val for CRT_INFINITY for double precision (#188197)
DeltaFile
+4-0compiler-rt/lib/builtins/int_math.h
+1-0compiler-rt/lib/builtins/muldc3.c
+5-02 files

LLVM/project bf50489llvm/lib/CodeGen TargetLoweringObjectFileImpl.cpp, llvm/lib/MC MCObjectFileInfo.cpp

[Psuedoprobe][MachO] Enable pseudo probes emission for MachO (#185758)

Enable pseudo probes emission for MachO. Due to the 16 character limit
of MachO segment and section, the file sections will be
`__PSEUDO_PROBE,__probes` and `__PSEUDO_PROBE,__probe_descs`.
DeltaFile
+136-0llvm/test/Transforms/SampleProfile/pseudo-probe-emit-macho.ll
+10-0llvm/lib/MC/MCObjectFileInfo.cpp
+3-0llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+2-0llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+1-0llvm/test/CodeGen/AArch64/O0-pipeline.ll
+1-0llvm/test/CodeGen/AArch64/O3-pipeline.ll
+153-06 files

LLVM/project c796ba6llvm/lib/Target/AMDGPU GCNRegPressure.cpp GCNRegPressure.h

Removed invert.
DeltaFile
+5-5llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+2-2llvm/lib/Target/AMDGPU/GCNRegPressure.h
+7-72 files

LLVM/project c20e233llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 constant-based-reductions.ll

[SLP] Replace TrackedToOrig DenseMap with parallel SmallVector in reduction

Replace the DenseMap<Value*, Value*> TrackedToOrig with a SmallVector<Value*>
indexed in parallel with Candidates. This avoids hash-table overhead for the
tracked-value-to-original-value mapping in horizontal reduction processing.

Fixes #189686
DeltaFile
+38-32llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+34-0llvm/test/Transforms/SLPVectorizer/X86/constant-based-reductions.ll
+72-322 files

LLVM/project 5d624b5llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize non-widenable-intrinsics-outer-loop.ll noalias-scope-decl-outer-loop.ll

[VPlan] Stop outerloop vectorization from vectorizing nonvector intrinsics (#185347)

In outer-loop VPlan, avoid emitting vector intrinsic calls for intrinsics
without a vector form. In VPRecipeBuilder, detect missing vector intrinsic
mapping and emit scalar handling instead of a vector call.

Also fix assertion when `llvm.pseudoprobe` in VPlan's native path is being
treated as a `WIDEN-INTRINSIC`.

Reproducer: https://godbolt.org/z/GsPYobvYs
DeltaFile
+477-0llvm/test/Transforms/LoopVectorize/non-widenable-intrinsics-outer-loop.ll
+73-0llvm/test/Transforms/LoopVectorize/noalias-scope-decl-outer-loop.ll
+32-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+582-43 files

LLVM/project c19e28dllvm/include/llvm/IR Intrinsics.td, llvm/test CMakeLists.txt

[NFC][LLVM] Simplify `TypeInfoGen` in Intrinsics.td (#189278)

Eliminate `MappingRIdx` by making it an identity function. Currently,
`MappingRIdx` is used to map the index of an `llvm_any*` type in an
intrinsic type signature to its overload index. Eliminating this mapping
means that dependent types in LLVM intrinsic definitions (like
`LLVMMatchType` and its subclasses) should use the overload index to
reference the overload type that it depends on (and not the index within
the llvm_any* subset of overloaded types).

See
https://discourse.llvm.org/t/rfc-simplifying-intrinsics-type-signature-iit-info-generation-encoding-in-intrinsicemitter-cpp/90383
DeltaFile
+74-0llvm/test/TableGen/intrinsic-overload-dependent-type-validation.td
+44-26llvm/include/llvm/IR/Intrinsics.td
+2-3llvm/test/TableGen/intrinsic-arginfo-error.td
+1-1llvm/test/CMakeLists.txt
+121-304 files

LLVM/project cdce9cdutils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes b813b0b (#189759)

This fixes b813b0b4e485b0323b51071aca7a415b30c3aa6f.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

LLVM/project 051309fclang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticCommonKinds.td

[Clang] [C++26] Expansion Statements (Part 11)
DeltaFile
+104-0clang/test/AST/ast-print-expansion-stmts.cpp
+49-0clang/test/AST/ast-dump-expansion-stmt.cpp
+0-4clang/include/clang/Basic/DiagnosticCommonKinds.td
+1-1clang/www/cxx_status.html
+1-0clang/docs/ReleaseNotes.rst
+155-55 files

LLVM/project 31365d3clang/include/clang/Basic DiagnosticSemaKinds.td LangOptions.def, clang/include/clang/Options Options.td

[Clang] [C++26] Expansion Statements (Part 10)
DeltaFile
+69-0clang/test/SemaCXX/cxx2c-expansion-stmts-limit.cpp
+18-0clang/lib/Sema/SemaExpand.cpp
+9-0clang/test/SemaCXX/cxx2c-fexpansion-statements.cpp
+4-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+4-0clang/include/clang/Options/Options.td
+1-0clang/include/clang/Basic/LangOptions.def
+105-01 files not shown
+106-07 files

LLVM/project 1a40e72clang/include/clang/Basic DiagnosticSemaKinds.td, clang/include/clang/Sema ScopeInfo.h

[Clang] [C++26] Expansion Statements (Part 9)
DeltaFile
+135-0clang/test/SemaCXX/cxx2c-expansion-stmts-control-flow.cpp
+38-9clang/lib/Sema/SemaLookup.cpp
+28-2clang/lib/Sema/SemaStmt.cpp
+9-2clang/lib/Parse/ParseStmt.cpp
+6-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+5-1clang/include/clang/Sema/ScopeInfo.h
+221-141 files not shown
+223-157 files

LLVM/project 1a69232clang/test/CodeGenCXX cxx2c-enumerating-expansion-statements.cpp cxx2c-iterating-expansion-stmt.cpp

[Clang] [C++26] Expansion Statements (Part 8)
DeltaFile
+1,518-0clang/test/CodeGenCXX/cxx2c-enumerating-expansion-statements.cpp
+548-0clang/test/CodeGenCXX/cxx2c-iterating-expansion-stmt.cpp
+493-0clang/test/CodeGenCXX/cxx2c-destructuring-expansion-stmt.cpp
+430-0clang/test/CodeGenCXX/cxx2c-expansion-stmts-control-flow.cpp
+208-0clang/test/CodeGenCXX/cxx2c-expansion-stmts-templates.cpp
+134-0clang/test/CodeGenCXX/cxx2c-expansion-stmts-mangling.cpp
+3,331-03 files not shown
+3,372-39 files

LLVM/project c9bc317llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rv32p.ll

[RISCV][P-ext] Support i32 ushlsat on RV32. (#189730)

We have a sshl instruction on RV32 in the 0.21 spec. Unfortunately,
we don't have a SSLLI instruction, but we can put a constant shift
amount in a register.
DeltaFile
+67-0llvm/test/CodeGen/RISCV/rv32p.ll
+2-5llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+71-53 files

LLVM/project 89dec12lldb/include/lldb/Target Platform.h, lldb/source/Core Module.cpp

[lldb][Platform] Handle LoadScriptFromSymFile per-module FileSpec (#189696)

This patch changes the `Platform::LocateXXX` to return a map from
`FileSpec` to `LoadScriptFromSymFile` enum.

This is needed for https://github.com/llvm/llvm-project/pull/188722,
where I intend to set `LoadScriptFromSymFile` per-module.

By default the `Platform::LocateXXX` set the value to whatever the
target's current `target.load-script-from-symbol-file` is set to. In
https://github.com/llvm/llvm-project/pull/188722 we'll allow overriding
this per-target setting on a per-module basis.

Drive-by:
* Added logging when we fail to load a script.
DeltaFile
+69-84lldb/unittests/Platform/PlatformDarwinTest.cpp
+70-67lldb/unittests/Platform/PlatformTest.cpp
+18-12lldb/source/Target/Platform.cpp
+15-11lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+7-14lldb/source/Core/Module.cpp
+10-8lldb/include/lldb/Target/Platform.h
+189-1961 files not shown
+196-2007 files

LLVM/project b7dc4ffllvm/lib/CodeGen/SelectionDAG TargetLowering.cpp

[TargetLowering] Replace always true if with an assert. NFC (#189750)

We already returned for UADDSAT/USUBSAT leaving SADDSAT/SSUBSAT as the
only opcodes that can get here.
DeltaFile
+26-26llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+26-261 files

LLVM/project b3af2f6llvm/lib/Target/AMDGPU GCNRegPressure.cpp GCNRegPressure.h

Added an SIRegisterInfo member to GCNRPTracker and its uses.
DeltaFile
+16-18llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+7-5llvm/lib/Target/AMDGPU/GCNRegPressure.h
+23-232 files

LLVM/project d8e9e0allvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h

[SandboxVec][LoadStoreVec] Initial pass implementation (#188308)

This patch implements a new simple region pass that can vectorize
store-load chains.
DeltaFile
+320-0llvm/test/Transforms/SandboxVectorizer/load_store_vec.ll
+145-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+81-0llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+50-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+24-2llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+3-1llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.cpp
+623-34 files not shown
+628-310 files

LLVM/project 911dc41compiler-rt/test/asan/TestCases/Linux free_aligned_sized_mismatch.cpp

[compiler-rt][asan] Forward fix for free_aligned_sized_mismatch.cpp (#189760)

Mark this test as UNSUPPORTED for android since android's libc doesn't
seem to support aligned_alloc.
DeltaFile
+3-0compiler-rt/test/asan/TestCases/Linux/free_aligned_sized_mismatch.cpp
+3-01 files