[all-commits] [llvm/llvm-project] bc06d8: [TableGen] Extract instruction grouping in AsmWrit...

Steven Wu via All-commits all-commits at lists.llvm.org
Mon Sep 21 20:33:25 PDT 2026


  Branch: refs/heads/users/cachemeifyoucan/spr/llvmsupport-make-sysfsfile_t-into-a-seperate-type
  Home:   https://github.com/llvm/llvm-project
  Commit: bc06d87e23554f439b4010c3d88082bf5b6dfb7b
      https://github.com/llvm/llvm-project/commit/bc06d87e23554f439b4010c3d88082bf5b6dfb7b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/utils/TableGen/AsmWriterEmitter.cpp

  Log Message:
  -----------
  [TableGen] Extract instruction grouping in AsmWriterEmitter (NFC) (#222498)

This patch extracts instruction similarity grouping into
groupInstructions, a helper function that returns an array of
InstructionGroup structs in AsmWriterEmitter.

Currently, EmitInstructions performs both instruction grouping
(scanning for instructions differing in at most one operand) and code
emission in a single step while popping elements from the Instructions
vector.

This patch decouples grouping from code emission:

- groupInstructions clusters similar instructions into
  InstructionGroups.

- emitInstructions emits the case labels and dispatches to
  emitInstructionOperands for each group.

This patch produces byte-identical output for all targets while
preparing for a subsequent patch that will call asm writer helper
functions through a function pointer table instead of emitting a large
switch statement.

Assisted-by: Antigravity


  Commit: 86f4728feefee41e53c1037b5918fb18e12a4696
      https://github.com/llvm/llvm-project/commit/86f4728feefee41e53c1037b5918fb18e12a4696
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    A llvm/test/ThinLTO/X86/cfi-import-internal-coroutine.ll
    A llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll
    A llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal1.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll

  Log Message:
  -----------
  Reapply "[CFI] Create an external linkage alias instead of promoting i… (#220339) (#225173)

There were 3 issues with the original commit:

1. handling of `dso_local_equivalent`. This was subsequently addressed in PR #222036 as an independent fix. An earlier version of the fix, 220450, had an extra test, cfi_dso_local_equivalent.ll, which is specific to the interaction between this patch and dso_local_equivalent. That test is re-introduced here.
2. a COFF issue discovered through the original pass, uncovered on Chromium builds, and fixed by @andysjlim in PR #220674. Thank you!
3. an issue we discovered in google downstream, involving coroutines. See the `cfi-import-internal-coroutine.ll`, and the difference between the first version and the second version of this PR (in Graphite) (<- AI was used here)


  Commit: a2fdb8fe0d09dbc1d543c3381f0ddacdf7054c5e
      https://github.com/llvm/llvm-project/commit/a2fdb8fe0d09dbc1d543c3381f0ddacdf7054c5e
  Author: Wenju He <wenju.he at intel.com>
  Date:   2026-09-22 (Tue, 22 Sep 2026)

  Changed paths:
    M clang/test/OffloadTools/clang-sycl-linker/basic.ll
    M clang/test/OffloadTools/clang-sycl-linker/options.ll
    M clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
    M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp

  Log Message:
  -----------
  [clang-sycl-linker] Make temp files land relative to cwd with unique names (#224506)

Derive the CodeGen/AOT stem from -o's basename instead of its full
path, so these intermediates land in cwd alongside the .bc temps
instead of splitting -save-temps output across two directories.

Route them through createTempFile instead of building
`<stem>_<index>.ext` directly, so parallel invocations sharing an
output basename don't collide. Its random suffix also makes
`_<index>` redundant, so drop it; `--spirv-dump-device-code` keeps its
index since it has no random suffix and still needs one.

---------

Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>


  Commit: d6d73f1ab347574f51e03076a1c7cccd7dbfbdce
      https://github.com/llvm/llvm-project/commit/d6d73f1ab347574f51e03076a1c7cccd7dbfbdce
  Author: Harrison Hao <57025411+harrisonGPU at users.noreply.github.com>
  Date:   2026-09-22 (Tue, 22 Sep 2026)

  Changed paths:
    A llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll

  Log Message:
  -----------
  [AMDGPU][InstCombine] Add dot zero/constant folding tests. NFC (#225001)

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>


  Commit: 4a358b89216a4fa56b08355d2b00f694657f64ba
      https://github.com/llvm/llvm-project/commit/4a358b89216a4fa56b08355d2b00f694657f64ba
  Author: Farzon Lotfi <farzonlotfi at microsoft.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
    M llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizePointerCast.ll
    A llvm/test/CodeGen/SPIRV/pointers/byte-address-buffer-long-vector.ll

  Log Message:
  -----------
  [SPIR-V] Fix wrong element inferred for long vectors when using ByteAdressBuffer (#222220)

fixes #222214

On the offload tests we recently switch the long vector tests from using
StructuredBuffer element loads and stores to ByteAddressBuffer vector
loads and stores With StructuredBuffer you can see we use the right type
for the vector https://hlsl.godbolt.org/z/jYhd57jvn

However with ByteAddressBuffer instead of a float vector we are infering
incorrectly an int vector https://hlsl.godbolt.org/z/KMnxfv8z6

The Fix is to use spv_bitcast instead of an llvm ir bitcast. An ordinary
LLVM bitcast i32 to float becomes a same-size GlobalISel operation. Both
i32 and float use the same low-level type, s32, so
legalization/coalescing can eliminate the bitcast. switching to
spv_bitcast solves this because it forces a `buildAssignType` which will
preserve the type and allows us to distinguish ints from floats.


  Commit: b8330cd2fb91d36ffb1766989f4a227a77d00c9c
      https://github.com/llvm/llvm-project/commit/b8330cd2fb91d36ffb1766989f4a227a77d00c9c
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
    M mlir/lib/Dialect/OpenACC/Transforms/ACCDeclareCtorDtorConversion.cpp
    A mlir/test/Dialect/OpenACC/acc-declare-ctor-dtor-extra.mlir

  Log Message:
  -----------
  [mlir][openacc] Add extra-constructors option to declare ctor conversion (#225194)

Allow acc-declare-ctor-dtor-conversion to declare extra runtime
functions
and call them from a generated constructor. Entries are separated in two
list,
one list where the functions are always added and one where the
functions are
added only if entry-point-name is present in the module. 

The extra functions stay external declarations. This is used to generate
sentinel in different compilation mode.


  Commit: 281308d5666eff4b00ac743d2623dd4f018754ca
      https://github.com/llvm/llvm-project/commit/281308d5666eff4b00ac743d2623dd4f018754ca
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/Options.td
    M lld/ELF/Symbols.cpp
    M lld/docs/ld.lld.1
    M lld/test/ELF/common-archive-lookup.s
    M lld/test/ELF/warn-backrefs.s

  Log Message:
  -----------
  [ELF] Remove --fortran-common (#220813)

--fortran-common implements a legacy linker rule that lets a COMMON
symbol extract an archive member providing a STB_GLOBAL definition,
departing from the rule that only an undefined symbol extracts a member.

The option has defaulted to off since LLVM 15, complicates parallel
symbol resolution, and is deemed unneeded.

Close: #205015
Link: https://discourse.llvm.org/t/removal-of-fortran-common-option/91553


  Commit: 41b7eabb4564f09d7bd7ba54d8f7a38a8f449621
      https://github.com/llvm/llvm-project/commit/41b7eabb4564f09d7bd7ba54d8f7a38a8f449621
  Author: A. Jiang <de34 at live.cn>
  Date:   2026-09-22 (Tue, 22 Sep 2026)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/24.rst
    M libcxx/docs/Status/Cxx26Papers.csv
    M libcxx/include/__type_traits/is_within_lifetime.h
    M libcxx/include/version
    M libcxx/test/libcxx/utilities/meta/is_within_lifetime.verify.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/utilities/meta/meta.const.eval/is_within_lifetime.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Implement P3450R1: Extend `std::is_within_lifetime` (#201053)

The implementing approach only requires the initial form of
`__builtin_is_within_lifetime` taking one pointer to the object
(necessary for P2641R4), along with `__builtin_constant_p` which is used
for the changes in this paper.

In the future, `__builtin_is_within_lifetime` is possibly enhanced to
additionally take a type, but the library implementation does not need
to be blocked on such improvement.


  Commit: a317caa110580c04232fa8598a0aa7a17d70b965
      https://github.com/llvm/llvm-project/commit/a317caa110580c04232fa8598a0aa7a17d70b965
  Author: Steven Wu <stevenwu at apple.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M clang/test/OffloadTools/clang-sycl-linker/basic.ll
    M clang/test/OffloadTools/clang-sycl-linker/options.ll
    M clang/test/OffloadTools/clang-sycl-linker/split-mode.ll
    M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/24.rst
    M libcxx/docs/Status/Cxx26Papers.csv
    M libcxx/include/__type_traits/is_within_lifetime.h
    M libcxx/include/version
    M libcxx/test/libcxx/utilities/meta/is_within_lifetime.verify.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/utilities/meta/meta.const.eval/is_within_lifetime.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/Options.td
    M lld/ELF/Symbols.cpp
    M lld/docs/ld.lld.1
    M lld/test/ELF/common-archive-lookup.s
    M lld/test/ELF/warn-backrefs.s
    M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizePointerCast.ll
    A llvm/test/CodeGen/SPIRV/pointers/byte-address-buffer-long-vector.ll
    A llvm/test/ThinLTO/X86/cfi-import-internal-coroutine.ll
    A llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
    A llvm/test/Transforms/LowerTypeTests/promoted-internal.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll
    A llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal1.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
    M llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
    M llvm/unittests/Support/MemoryBufferTest.cpp
    M llvm/utils/TableGen/AsmWriterEmitter.cpp
    M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
    M mlir/lib/Dialect/OpenACC/Transforms/ACCDeclareCtorDtorConversion.cpp
    A mlir/test/Dialect/OpenACC/acc-declare-ctor-dtor-extra.mlir

  Log Message:
  -----------
  fix windows unittest

Created using spr 1.3.7


Compare: https://github.com/llvm/llvm-project/compare/4fbeeb8b74e6...a317caa11058

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