LLVM/project 82b2aebllvm/lib/Target/WebAssembly WebAssemblyInstrRef.td, llvm/lib/Target/WebAssembly/AsmParser WebAssemblyAsmParser.cpp WebAssemblyAsmTypeCheck.cpp

[WebAssembly] Add typed select (select t*, 0x1c) (#195953)

Add MC-layer support for the typed select instruction from the
reference-types proposal:

- New OPERAND_VALTYPE_LIST operand kind (ULEB count followed by N
single-byte valtypes), stored in the MCInst as count + N immediates.
- SELECT_T at 0x1c in WebAssemblyInstrRef.td, gated on
HasReferenceTypes.
- Plumbing through the disassembler, printer, encoder, asm parser, and
type checker.
- Encoding, disassembly, and type-checker error tests, covering
zero-length and multi-value vecs.

ISel continues to select the numeric SELECT_<type> variants at 0x1b. My
motivation is unblocking LLDB, which uses LLVM's disassembler. We got a
report that these instructions show up as <unknown> in LLDB.

rdar://170659547
DeltaFile
+79-0llvm/test/MC/WebAssembly/typed-select.s
+45-1llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
+45-0llvm/test/MC/Disassembler/WebAssembly/typed-select.txt
+22-0llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp
+21-0llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
+17-0llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
+229-15 files not shown
+274-111 files

LLVM/project 2a1d2a1llvm/include/llvm/Support JSON.h

Revert "[ASan][JSON] Unpoison memory before its reuse" (#196203)

Reverts llvm/llvm-project#79065

This is no longer necessary now that we have gotten rid of ASan short
string annotations in libc++.
DeltaFile
+1-14llvm/include/llvm/Support/JSON.h
+1-141 files

LLVM/project f7077c3llvm/include/llvm/ADT FunctionExtras.h

Revert "[ASan][ADT] Don't scribble with ASan" (#196201)

Reverts llvm/llvm-project#79066

This is no longer necessary now that we have gotten rid of ASan short
string annotations in libc++ (#194208).
DeltaFile
+2-5llvm/include/llvm/ADT/FunctionExtras.h
+2-51 files

LLVM/project c1c557blldb/bindings/lua CMakeLists.txt, lldb/bindings/python CMakeLists.txt

[lldb] Support dynamically loading ScriptInterpreter plugins (#189718)

Add support for building the script interpreter plugins as shared
libraries, controlled by the `LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS`
CMake variable. This allows the plugins, rather than `liblldb`, to link
against their respective dependencies such as Python and Lua, which has
several benefits:

1. It makes it possible to gracefully handle the Python or Lua
dependencies not being present, instead of crashing.
2. It enables programmatically deciding which Python or Lua library to
load.
3. Combined with (2), this opens up a path towards not statically
linking with Python at all, which is required in order to load the LLDB
module in a different Python interpreter (at least this is a hard
requirement on Darwin due to two-level namespaces and install names).

This PR completes #183791
DeltaFile
+49-13lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
+33-5lldb/source/Plugins/ScriptInterpreter/Lua/CMakeLists.txt
+11-3lldb/bindings/python/CMakeLists.txt
+11-3lldb/bindings/lua/CMakeLists.txt
+7-5lldb/source/API/CMakeLists.txt
+7-1lldb/unittests/ScriptInterpreter/Python/CMakeLists.txt
+118-302 files not shown
+130-318 files

LLVM/project 3a49e45clang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaType.cpp

[OpenCL] Add warning for reserved 'long long' type (#196002)

'long long' is a reserved data type in all versions of OpenCL C.

Relates to https://github.com/intel/intel-graphics-compiler/issues/405
DeltaFile
+10-4clang/lib/Sema/SemaType.cpp
+12-0clang/test/SemaOpenCL/longlong.cl
+3-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+1-1clang/test/SemaOpenCL/fdeclare-opencl-builtins.cl
+1-1clang/test/Misc/languageOptsOpenCL.cl
+0-1clang/test/SemaSPIRV/BuiltIns/subgroup-errors.c
+27-76 files

LLVM/project f1d39dbclang/lib/Headers __clang_cuda_runtime_wrapper.h

[Clang][NVPTX] fix `no member named 'this_cluster'` (#187039)

Fixes #184754

Adds a macro based on which `this_cluster` function is defined.
DeltaFile
+4-0clang/lib/Headers/__clang_cuda_runtime_wrapper.h
+4-01 files

LLVM/project 017a0e7llvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU packed-fp32.ll

[AMDGPU] Add fcanonicalize + fneg selection pattern for v2f32 (#196188)
DeltaFile
+4-4llvm/test/CodeGen/AMDGPU/packed-fp32.ll
+6-1llvm/lib/Target/AMDGPU/SIInstructions.td
+10-52 files

LLVM/project 3bd61c6llvm/include/llvm/Support JSON.h

formatting
DeltaFile
+2-2llvm/include/llvm/Support/JSON.h
+2-21 files

LLVM/project 90f7145utils/bazel/llvm-project-overlay/lldb BUILD.bazel

[Bazel] Fixes 7e74c78 (#196197)

This fixes 7e74c78ea342c0a7dda249c054085e824b77016e.

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

LLVM/project ad7d6fcllvm/include/llvm/Support JSON.h

Revert "[ASan][JSON] Unpoison memory before its reuse (#79065)"

This reverts commit c416b2efe89c11db593fe8041c366e0cb63d4eeb.
DeltaFile
+1-14llvm/include/llvm/Support/JSON.h
+1-141 files

LLVM/project f5efc08lldb/source/Commands Options.td

Make it clear that log enable's output file is per channel not per category (#196178)

It is natural to try:

```
log enable -f file1 lldb step
log enable -f file2 lldb process

```
or whatever, and then be surprised that all the logs end up in
`file2`... The help on `log enable`'s `-f` option didn't specify what
you were setting the file for. This PR just changes the help text to be
clear about the current state of things.
DeltaFile
+2-1lldb/source/Commands/Options.td
+2-11 files

LLVM/project 637bd86llvm/include/llvm/ADT FunctionExtras.h

Revert "[ASan][ADT] Don't scribble with ASan (#79066)"

This reverts commit 51a11f1c44b7bd7655687471d8c8912afb637efc.
DeltaFile
+2-5llvm/include/llvm/ADT/FunctionExtras.h
+2-51 files

LLVM/project 1d2a123lldb/source/Commands CommandObjectCommands.cpp CommandObjectTarget.cpp, lldb/source/Expression Materializer.cpp

[lldb] Fix misconstructed FromErrorStringWithFormatv format strings (#196189)

Fix mistakes in `FromErrorStringWithFormatv` format strings. Uses
https://github.com/llvm/llvm-project/pull/195974

---------

Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
DeltaFile
+2-3lldb/source/Commands/CommandObjectCommands.cpp
+2-2lldb/source/Expression/Materializer.cpp
+1-1lldb/source/Commands/CommandObjectTarget.cpp
+5-63 files

LLVM/project 623dc4dclang/lib/CodeGen CodeGenModule.cpp CodeGenModule.h, clang/test/CodeGenSYCL sycl-module-id.cpp kernel-caller-entry-point.cpp

[clang][SYCL] Emit "sycl-module-id" function attribute (#195965)

Attach the "sycl-module-id" LLVM function attribute to SYCL device
functions that are candidates for entry points in device-code splitting.
The attribute value is the module identifier (translation unit name),
which clang-sycl-linker uses to group kernels by translation unit when
splitting device code.

The attribute is emitted at two sites:

1. SYCL kernel caller functions (spir_kernel) are synthesized by
EmitSYCLKernelCaller and do not go through EmitFunction, so the
attribute is set directly after SetSYCLKernelAttributes.

2. sycl_external function definitions go through
SetLLVMFunctionAttributesForDefinition; the attribute is added there
when SYCLIsDevice and SYCLExternalAttr are present.

Both sites call the new CodeGenModule::addSYCLModuleIdAttr helper.

Co-authored-by: Claude
DeltaFile
+27-0clang/test/CodeGenSYCL/sycl-module-id.cpp
+13-0clang/lib/CodeGen/CodeGenModule.cpp
+7-0clang/lib/CodeGen/CodeGenModule.h
+3-3clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp
+1-0clang/lib/CodeGen/CodeGenSYCL.cpp
+51-35 files

LLVM/project db86c25llvm/docs CodingStandards.rst

add rule for nested statements
DeltaFile
+18-11llvm/docs/CodingStandards.rst
+18-111 files

LLVM/project 41c3779llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU gfx1250_asm_vop3_err.s

[AMDGPU] Validate forced lit64() on VOP3 instructions (#196171)

Lit64 cannot be used with VOP3* but we did not validate it
in case it can be encoded as lit32, but forced with the
operand modifier.
DeltaFile
+23-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+5-0llvm/test/MC/AMDGPU/gfx1250_asm_vop3_err.s
+28-82 files

LLVM/project 1661a23llvm/docs CodingStandards.rst

[RFC][Docs] Clarify brace omission for single-line bodies

Update the Coding Standards brace guidance to emphasize that braces should be
omitted only for simple bodies that do not wrap across multiple physical lines.
DeltaFile
+22-9llvm/docs/CodingStandards.rst
+22-91 files

LLVM/project 3776d8dclang/cmake/caches Fuchsia.cmake

[Fuchsia] Enable OpenCSD by default for Fuchsia (#195194)

Pass LLVM_ENABLE_OPENCSD and OPENCSD_ROOT through the Fuchsia stage 1
cache.
DeltaFile
+2-0clang/cmake/caches/Fuchsia.cmake
+2-01 files

LLVM/project 020b0a0llvm/include/llvm/ADT DenseMap.h

Revert "[DenseMap] Add memory barrier for sanitizers in getInlineBuckets/getLargeRep (#183457)" (#196143)

Revert #183457 and fixup #193695 as they are not needed after #194208.

Related issue #182720.

This reverts commit b5ac484470b9ceda96addcbc946f9ded4c5ef972.
This reverts commit 8d5b74db2d8f54da2609d18040504153c1afe5df.
DeltaFile
+0-11llvm/include/llvm/ADT/DenseMap.h
+0-111 files

LLVM/project 7e74c78lldb/cmake/modules LLDBConfig.cmake, lldb/include/lldb/Host Config.h.cmake

[lldb] Add LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS option (#196110)

Add a CMake option that will gate building the script interpreter
plugins as separate shared libraries, and expose it to C++ via
lldb/Host/Config.h.

The option defaults to OFF and currently has no consumers; subsequent
patches wire up the plugin, binding, and test build to use it.

Because dynamic plugins resolve lldb_private symbols against liblldb at
runtime, enabling this option implies LLDB_EXPORT_ALL_SYMBOLS. The
default for LLDB_EXPORT_ALL_SYMBOLS now follows
LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS, and a FATAL_ERROR is raised if
the user explicitly disables symbol export while requesting dynamic
plugins.

Extracted from #189718 for easier reviewing.
DeltaFile
+6-1lldb/cmake/modules/LLDBConfig.cmake
+2-0lldb/include/lldb/Host/Config.h.cmake
+8-12 files

LLVM/project 8acf74flldb/source/Plugins/ExpressionParser/Clang IRForTarget.cpp

[lldb] Partially support ConstantPtrAuth in IRForTarget::UnfoldConstant (#195899)

IRForTarget aims to make generated LLVM IR relocatable. This is because
LLDB JITs and executes code in an environment where the location/value
of something may not be known ahead of runtime.

My motivation here is ObjC constant strings. They are generally emitted
as global variables with a constant global initializer. On arm64e, these
global initializers may have a ptrauth constant as the address
discriminator. These can be safely skipped because address
discriminators encode information about the signed value, they don't
actually need to be unfolded.

In this commit I explicitly do not handle the non-address discriminator
scenario. As I work through the arm64e test suite, I may come back to
implement this if I find it is needed.
DeltaFile
+10-0lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+10-01 files

LLVM/project 4988b3allvm/lib/Analysis ValueTracking.cpp, llvm/test/CodeGen/AMDGPU srem64.ll urem64.ll

[ValueTracking] Extend computeConstantRange for add/sub, sext/zext/trunc

Recursively compute operand ranges for add/sub and propagate ranges
through sext/zext/trunc.
For add/sub, the computed range is intersected with any existing range
from setLimitsForBinOp, and NSW/NUW flags are used via
addWithNoWrap/subWithNoWrap to tighten bounds.

The motivation is to enable further folding of reduce.add expressions
in comparisons, where the result range can be bounded by the input
element ranges.
DeltaFile
+44-51llvm/test/CodeGen/AMDGPU/srem64.ll
+63-9llvm/lib/Analysis/ValueTracking.cpp
+22-28llvm/test/CodeGen/AMDGPU/urem64.ll
+13-21llvm/test/CodeGen/AMDGPU/udiv64.ll
+10-17llvm/test/CodeGen/AMDGPU/sdiv64.ll
+9-12llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+161-1386 files not shown
+173-15112 files

LLVM/project d607565llvm/docs AMDGPUOperandSyntax.rst, llvm/docs/AMDGPU AMDGPUAsmGFX950.rst gfx950_operands.rst

[AMDGPU] Fix some links in the GFX950 documentation (#195951)

Some links in the GFX950 documentation are incorrect. For example all
the links for the operand 'simm16' in SOPK. This patch fixes those
problems. As part of the fix, an entry fo simm16 was added to
AMDGPUOperandSyntax.rst.
DeltaFile
+581-920llvm/docs/AMDGPU/AMDGPUAsmGFX950.rst
+237-58llvm/docs/AMDGPU/gfx950_operands.rst
+10-0llvm/docs/AMDGPUOperandSyntax.rst
+828-9783 files

LLVM/project e32f427llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll bf16-v4-instructions.ll

Revert "[AArch64][GlobalISel] Clean up and extend BF16 tests. NFC (#196175)" (#196192)

This reverts commit c4091d14fe6dd5c2961d22ef6785a0b25bd73b16 as the new
tests are causing expensive-check failures.
DeltaFile
+880-5,910llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+504-3,306llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+9-40llvm/test/CodeGen/AArch64/bf16-instructions.ll
+1-0llvm/test/CodeGen/AArch64/itofp-bf16.ll
+1,394-9,2564 files

LLVM/project 1232bc0openmp/device/src Reduction.cpp Mapping.cpp

[OpenMP] Fix incorrect use of align instead of round (#196191)
DeltaFile
+2-2openmp/device/src/Reduction.cpp
+1-1openmp/device/src/Mapping.cpp
+3-32 files

LLVM/project d9b3a60llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU gfx1250_asm_vop3_err.s

[AMDGPU] Validate forced lit64() on VOP3 instructions

Lit64 cannot be used with VOP3* but we did not validate it
in case it can be encoded as lit32, but forced with the
operand modifier.
DeltaFile
+23-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+5-0llvm/test/MC/AMDGPU/gfx1250_asm_vop3_err.s
+28-82 files

LLVM/project 3637547libc/src/stdlib environ_internal.cpp environ_internal.h

[libc][stdlib] Use structure bindings instead of output params (#196169)

Refactored alloc_and_copy to return cpp::optional<AllocResult> instead
of using reference-to-pointer output parameters. The combination of char
**& parameters with array new/delete is known to trigger a segfault in
GCC 12's waccess GIMPLE pass.

The AllocResult struct holds the two allocated arrays (storage and
ownership). Call sites use structured bindings to unpack the result
after checking for nullopt.

Hopefully fixes the build failure in PR #195260 on the
libc-x86_64-debian-gcc-fullbuild-dbg builder.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+14-18libc/src/stdlib/environ_internal.cpp
+11-4libc/src/stdlib/environ_internal.h
+25-222 files

LLVM/project 9f968a8lldb/source/Expression Expression.cpp, lldb/source/Host/macosx/objcxx Host.mm

[lldb] Fix misconstructed log/formatv calls (#196129)

Fixes `LLDB_LOG` and `formatv` source errors found using
https://github.com/llvm/llvm-project/pull/195974
DeltaFile
+5-5lldb/source/Host/macosx/objcxx/Host.mm
+6-3lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
+3-4lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
+2-3lldb/source/Expression/Expression.cpp
+2-3lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+2-3lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+20-218 files not shown
+30-3214 files

LLVM/project a2d93cbmlir/include/mlir/Interfaces VectorInterfaces.td VectorInterfaces.h, mlir/lib/Dialect/MemRef/Transforms FoldMemRefAliasOps.cpp

[mlir] Interface-ify updating starting positions on vector.transfer_* (#195186)

This commit adds methods to VectorTransferOpInterface that allow
transfer operations to be queried for whether their base memref (or
tensor) and permutation map can be updated in some particular way and
then for performing this update. This is part of a series of changes
designed to make passes like fold-memref-alias-ops more generic,
allowing downstream operations, like IREE's transfer_gather, to
participate in them without needing to duplicate patterns.

In order to test this new method, migrate FoldMemrefAliasOps to use
these methods to fold memref.subview, memref.expand_shape,and
memref.collapse_shape into tranfer_read and transfer_write.

AI note: the tranfer_read / transfer_write patterns, which are taken
from a previous PR, were written with Claude 4.5.

---------

Co-authored-by: Erick Ochoa Lopez <eochoalo at amd.com>
Co-authored-by: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
DeltaFile
+182-100mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
+64-1mlir/include/mlir/Interfaces/VectorInterfaces.td
+38-3mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
+1-0mlir/include/mlir/Interfaces/VectorInterfaces.h
+285-1044 files

LLVM/project e9585a8mlir/lib/Dialect/OpenACC/IR OpenACCCG.cpp, mlir/test/Dialect/OpenACC ops-cg.mlir

[mlir][acc] Fix acc.compute_region parser when region is empty (#196183)
DeltaFile
+12-0mlir/test/Dialect/OpenACC/ops-cg.mlir
+2-0mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+14-02 files