[all-commits] [llvm/llvm-project] 0692bd: [Clang] fix crash in duplicate attribute checking ...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Tue Mar 24 14:19:08 PDT 2026


  Branch: refs/heads/users/vitalybuka/spr/compiler-rt-suppress-unused-variable-report-in-emutls
  Home:   https://github.com/llvm/llvm-project
  Commit: 0692bd52cb3f7a3c4b27cd788746e8085484792f
      https://github.com/llvm/llvm-project/commit/0692bd52cb3f7a3c4b27cd788746e8085484792f
  Author: Oleksandr Tarasiuk <oleksandr.tarasiuk at outlook.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/test/Sema/code_align.c

  Log Message:
  -----------
  [Clang] fix crash in duplicate attribute checking (#188274)

Fixes #188259

--- 

This PR fixes a crash in duplicate attribute checking when arguments
have different integer signedness. It changes the check to use
`isSameValue` (which uses `compareValues`) instead of `llvm::APSInt`
equality.


  Commit: cd1a598d8677cd33a8c41c83f45c4381ebeb143e
      https://github.com/llvm/llvm-project/commit/cd1a598d8677cd33a8c41c83f45c4381ebeb143e
  Author: Richard Howell <rmaz at users.noreply.github.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    A llvm/test/tools/llvm-lipo/remove.test
    M llvm/tools/llvm-lipo/LipoOpts.td
    M llvm/tools/llvm-lipo/llvm-lipo.cpp

  Log Message:
  -----------
  [lipo] add -remove flag (#188275)

Add the -remove flag to llvm-lipo. This matches the existing Darwin lipo
tool:
```
% xcrun lipo 2>&1 | grep remove
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: one of -create, -thin <arch_type>, -extract <arch_type>, -remove <arch_type>, -replace <arch_type> <file_name>, -verify_arch <arch_type> ... , -archs, -info, or -detailed_info must be specified
    -remove <arch_type> [-remove <arch_type> ...]
```
Assisted-by: claude-code


  Commit: 55bbf7b16b9467e86081cd0eb54935f717f60081
      https://github.com/llvm/llvm-project/commit/55bbf7b16b9467e86081cd0eb54935f717f60081
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
    M llvm/test/CodeGen/WebAssembly/load-ext.ll

  Log Message:
  -----------
  Reland "[WebAssembly][FastISel] Fold i64 extension chains into widened loads" (#188324)

Reverts llvm/llvm-project#188306
Relands llvm/llvm-project#187934

It was reverted by mistake.


  Commit: 7bfd54ac2548a3161e6237621e57a8406bf94964
      https://github.com/llvm/llvm-project/commit/7bfd54ac2548a3161e6237621e57a8406bf94964
  Author: vporpo <vasileios.porpodas at amd.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
    M llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll
    M llvm/test/Transforms/SandboxVectorizer/external_uses.ll
    M llvm/test/Transforms/SandboxVectorizer/scheduler.ll
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp

  Log Message:
  -----------
  [SandboxVec][BottomUpVec] Improve handling of external uses (#185468)

Up until now the bottom-up vectorizer pass would not delete the scalar
instructions that have external uses after being vectorized, because it
lacked the ability to generate extracts from the vectors.
With the term "external uses", we refer to uses outside the currently
vectorized graph.

This patch fixes this. We can now properly handle external uses by
extracting from the vectors.

This change relies on the recent changes to the DAG's callbacks because
the external user may not be within the current DAG's interval.


  Commit: 2ae3d8ae57004e6cfb2673083289660d8cfc2dac
      https://github.com/llvm/llvm-project/commit/2ae3d8ae57004e6cfb2673083289660d8cfc2dac
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
    A llvm/test/CodeGen/X86/post-ra-pseudos.mir

  Log Message:
  -----------
  [CodeGen][NewPM] Mark ExpandPostRAPseudos as required (#188304)

We need to lower these pseudoinstructions regardless of optimization
level or we end up with instructions that we cannot print.


  Commit: daec3b9fb6e2192febfbd29046e02e476a5b159f
      https://github.com/llvm/llvm-project/commit/daec3b9fb6e2192febfbd29046e02e476a5b159f
  Author: Deric C. <cheung.deric at gmail.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    A clang/include/clang/Basic/HLSLIntrinsics.td
    M clang/lib/Headers/CMakeLists.txt
    M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    A clang/test/TableGen/hlsl-intrinsics.td
    M clang/utils/TableGen/CMakeLists.txt
    A clang/utils/TableGen/HLSLEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  [HLSL] Implement TableGen for builtin HLSL intrinsics (#187610)

This PR introduces a TableGen-based code generation system for HLSL
intrinsic overloads as described in proposal
[[0043]](https://github.com/llvm/wg-hlsl/blob/main/proposals/0043-hlsl-intrinsic-tablegen.md)
for replacing hand-written boilerplate with declarative .td definitions.

Actual changes to `hlsl_intrinsics.h` and `hlsl_alias_intrinsics.h` to
replace handwritten HLSL intrinsic overloads with TableGen is left to
follow-up PRs.

Assisted-by: GitHub Copilot (powered by Claude Opus 4.6)


  Commit: 6ef30612ee6d69d0a5658ec0d2f78b6a09a4aa0d
      https://github.com/llvm/llvm-project/commit/6ef30612ee6d69d0a5658ec0d2f78b6a09a4aa0d
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M lldb/source/Target/ProcessTrace.cpp

  Log Message:
  -----------
  [lldb][trace] Ensure ProcessTrace plugin can be re-registered (#188336)

Initialize makes sure that it calls RegisterPlugin only once, but
Terminate always calls UnregisterPlugin. This is a problem for tests
that call Initialize/Terminate before and after each test case: the
second case will fail because the trace plugin won't be loaded.

This fixes a test failure introduced by #187768, which adds a test case
that passes on its own but fails when run after the previous test case.


  Commit: 4e290b34294cd6de562385bc8c5f8af457aeb46a
      https://github.com/llvm/llvm-project/commit/4e290b34294cd6de562385bc8c5f8af457aeb46a
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M libc/src/string/memory_utils/utils.h

  Log Message:
  -----------
  [libc][strings] Refactor load_aligned for cleaner endianness handling (#186360)

Replace the explicit `if constexpr` branching for big and little
endianness with compile-time calculated shift constants `VAL_SHIFT` and
`NEXT_SHIFT`. This simplifies the logic and reduces code duplication,
relying on the compiler to constant-fold the zero shifts into no-ops.


  Commit: 11bc6e8776d233a98b573d5c8b08cfb4e5c3ab61
      https://github.com/llvm/llvm-project/commit/11bc6e8776d233a98b573d5c8b08cfb4e5c3ab61
  Author: zGoldthorpe <Zach.Goldthorpe at amd.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/AMDGPU/llvm.exp.ll
    M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll

  Log Message:
  -----------
  [SelectionDAG] Add known bit for `ISD::FABS` (#188335)

Absolute value always clears the sign bit, so make that knowh to
selectionDAG's `computeKnownBits`.


  Commit: 13b2ee25aebc937c0f459ca38c2092b882bec9dc
      https://github.com/llvm/llvm-project/commit/13b2ee25aebc937c0f459ca38c2092b882bec9dc
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M clang/include/clang/AST/ExternalASTSource.h

  Log Message:
  -----------
  [clang][AST] Fix LazyGenerationalUpdatePtr NumLowBitsAvailable on 32-bit (#188318)

The `PointerLikeTypeTraits` for `LazyGenerationalUpdatePtr` claimed
`PointerLikeTypeTraits<T>::NumLowBitsAvailable - 1` spare low bits. This
assumed that the inner `PointerUnion<T, LazyData*>` has `T_bits - 1`
spare bits, which is only true when `alignof(LazyData) >= alignof(*T)`.

On 32-bit systems, `LazyData` (containing pointers and `uint32_t`) has
`alignof = 4`, giving `LazyData*` only 2 low bits. With `T = Decl*` (3
bits due to `alignas(8)`), the inner `PointerUnion` has `min(3,2) - 1 =
1` spare bit, but the PLTT claimed `3 - 1 = 2`.

Historically, the formula was correct when introduced in 053f6c6c9e4d --
at that time `Decl` had no alignment annotation, so `T_bits ==
LazyData*_bits` on all platforms. It became outdated when 771721cb35f3
added `LLVM_ALIGNAS(8)` to `Decl`, raising `Decl*` to 3 bits on 32-bit
while `LazyData*` stayed at 2. The old `PointerIntPair`-based
`PointerUnion::doCast` happened to mask with `minLowBitsAvailable()`
(tolerant of overclaims), so this was never exposed until the
`PunnedPointer` refactoring changed `doCast` to mask with
`To::NumLowBitsAvailable`.

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

Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>


  Commit: e3c6244f6e7ce9c76274f9ebca7b6a1f1fcec781
      https://github.com/llvm/llvm-project/commit/e3c6244f6e7ce9c76274f9ebca7b6a1f1fcec781
  Author: Lang Hames <lhames at gmail.com>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
    M llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp
    M llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp

  Log Message:
  -----------
  [ORC] Add EPCGenericJITLinkMemoryManager::Create named constructor. (#188191)

Create takes a JITDylib and a SymbolNames struct, looks up the
implementation symbol addresses in the given JITDylib, and uses them to
construct an EPCGenericJITLinkMemoryManager instance. This makes it
easier for ORC clients to construct the memory manager from named
symbols (e.g. in a bootstrap JITDylib) rather than raw addresses.


  Commit: fe286356ca34a530f8a6ccf0b630fc32fc69fc44
      https://github.com/llvm/llvm-project/commit/fe286356ca34a530f8a6ccf0b630fc32fc69fc44
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp
    A llvm/test/Transforms/JumpThreading/update-bpi-bfi-unfold-select.ll

  Log Message:
  -----------
  [JT] `tryToUnfoldSelectInCurrBB` should update BFI & BPI if present (#188097)

Issue #187545


  Commit: 56b5f19fccc4ef3d3d19ea62521e7f530880063e
      https://github.com/llvm/llvm-project/commit/56b5f19fccc4ef3d3d19ea62521e7f530880063e
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-03-24 (Tue, 24 Mar 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ExternalASTSource.h
    A clang/include/clang/Basic/HLSLIntrinsics.td
    M clang/lib/Headers/CMakeLists.txt
    M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/test/Sema/code_align.c
    A clang/test/TableGen/hlsl-intrinsics.td
    M clang/utils/TableGen/CMakeLists.txt
    A clang/utils/TableGen/HLSLEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h
    M libc/src/string/memory_utils/utils.h
    M lldb/source/Target/ProcessTrace.cpp
    M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
    M llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
    M llvm/test/CodeGen/AMDGPU/llvm.exp.ll
    M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
    M llvm/test/CodeGen/WebAssembly/load-ext.ll
    A llvm/test/CodeGen/X86/post-ra-pseudos.mir
    A llvm/test/Transforms/JumpThreading/update-bpi-bfi-unfold-select.ll
    M llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll
    M llvm/test/Transforms/SandboxVectorizer/external_uses.ll
    M llvm/test/Transforms/SandboxVectorizer/scheduler.ll
    A llvm/test/tools/llvm-lipo/remove.test
    M llvm/tools/llvm-lipo/LipoOpts.td
    M llvm/tools/llvm-lipo/llvm-lipo.cpp
    M llvm/unittests/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManagerTest.cpp
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp
    M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp

  Log Message:
  -----------
  Merge branch 'main' into users/vitalybuka/spr/compiler-rt-suppress-unused-variable-report-in-emutls


Compare: https://github.com/llvm/llvm-project/compare/76b4dbbab36b...56b5f19fccc4

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list