[all-commits] [llvm/llvm-project] 798783: [Clang][Driver] Final phase also determined by inp...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Mon Sep 7 07:39:06 PDT 2026


  Branch: refs/heads/users/alexey-bataev/spr/slp-enable-full-non-power-of-2-vectorization-by-default
  Home:   https://github.com/llvm/llvm-project
  Commit: 7987830e776411a0de84c0c75e9f1059acadceb5
      https://github.com/llvm/llvm-project/commit/7987830e776411a0de84c0c75e9f1059acadceb5
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Types.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/Types.cpp
    A clang/test/Driver/Inputs/object0.o
    M clang/test/Driver/aix-ld.c
    A clang/test/Driver/pch-inputs.h

  Log Message:
  -----------
  [Clang][Driver] Final phase also determined by input (#218802)

Before this PR, `getFinalPhase` assumed that when no option is give then
the final phase will a linking step. This is objectively wrong: For
instance passing a header file as input (`-x c-header` or `-x
c++-header`) triggers precompilation, not linking. Other inputs that do
not have a link phase as specified by `Types.def`
are `.dxo`, `.ifs`, and `.hlsl` files.

Instead of defaulting to link in the absence of any action flag, this PR
uses the last phase that `Types.def` specifies for the given input
files. The effect of this is relevant when handling linking options
which are categorized as "input" like any other file.
Usually these should be filtered out if
there is no linking step. But, since `getFinalPhase` says there is a
linking flag, those are forwarded to the precompile handling which gets
confused with such "inputs". An accurate determination of the final
phase filters out those non-applicable linker options.

Note that the second condition of
`clang::diag::warn_drv_input_file_unused` was inverted: It would print

> clang: warning: -lfoo: 'linker' input unused when '' is present
[-Wunused-command-line-argument]

when passing a linker option to a non-link command that is not the
result of an action command flag. Inversely, when a non-link action flag
was used, it wasn't mentioned in the diagnostic message.


  Commit: 1871cb232f00d67193c3ef085e26b67b56029d21
      https://github.com/llvm/llvm-project/commit/1871cb232f00d67193c3ef085e26b67b56029d21
  Author: Baranov Victor <bar.victor.2002 at gmail.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/.clang-tidy

  Log Message:
  -----------
  [clang-tidy][NFC] Convert check list to yaml format (#221411)

Yaml format was introduced in 19-20 release which is old enough to
safely transition our file to new version since we are on 23 release
already.


  Commit: 71036f99e0dcc24b12cbcbcc2088b8d715465e0f
      https://github.com/llvm/llvm-project/commit/71036f99e0dcc24b12cbcbcc2088b8d715465e0f
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp

  Log Message:
  -----------
  [NFC] Stop relying on the LocationDescription conversion in unit tests. (#221004)

`LocationDescription` has an implicit conversion from a bare insertion
point, and it leaves DL default-constructed. `OpenMPIRBuilderTest`
depends on that in a number of places, either by naming an insertion
point directly or by handing `Builder.saveIP()` to an entry point that
takes a `LocationDescription`.

Spell out what each of those sites means instead. Where a live builder
is already sitting at the insertion point it is passed directly, and
where the test names an insertion point of its own the empty location is
written out, which is what it was getting before, so no test changes
behavior.

Co-authored-by: Cursor <cursoragent at cursor.com>


  Commit: 137d8e684984df207576c8f24bd8743ddb71c5c9
      https://github.com/llvm/llvm-project/commit/137d8e684984df207576c8f24bd8743ddb71c5c9
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/lib/Target/X86/X86RegisterInfo.cpp
    M llvm/test/CodeGen/X86/avx512f-large-stack.ll
    A llvm/test/CodeGen/X86/huge-frame-index.ll

  Log Message:
  -----------
  [X86] Fix eliminateFrameIndex dropping existing index register for huge frame offsets

When the frame offset does not fit in disp32 and the address mode already
uses an index register, the register-scavenging path overwrote the index
operand with the scratch register, silently dropping the index from the
effective address (and applying the stale scale to the frame offset).
Fold the offset into the base register with an LEA in this case instead.

Fixes #213960

Assisted-by: Cursor

Reviewers: RKSimon, qcolombet

Pull Request: https://github.com/llvm/llvm-project/pull/221016


  Commit: b9871b325ed34e4dea7ea81e8ec5c72fd6e1f0e7
      https://github.com/llvm/llvm-project/commit/b9871b325ed34e4dea7ea81e8ec5c72fd6e1f0e7
  Author: Andrzej WarzyƄski <andrzej.warzynski at arm.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    R clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_dup.c
    R clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_len.c
    M clang/test/CodeGen/AArch64/lit.local.cfg
    A clang/test/CodeGen/AArch64/sve/dup.c
    A clang/test/CodeGen/AArch64/sve/len.c

  Log Message:
  -----------
  [clang][CIR][AArch64] Move and reformat SVE test (#220599)

Adapts SVE tests to match the approach that we took for Neon. In
particular, test are moved to:
  * "clang/test/CodeGen/AArch64/sve"

There is no change in test coverage.


  Commit: 759e1fff9e41cf4ad313c117cd024650b4566a71
      https://github.com/llvm/llvm-project/commit/759e1fff9e41cf4ad313c117cd024650b4566a71
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/wide-vscale-range-max-runtime-vf.ll

  Log Message:
  -----------
  [LV] Use getMaxRuntimeElementCount for MaxPowerOf2RuntimeVF. (#221219)

Use new getMaxRuntimeElementCount to compute MaxPowerOf2RuntimeVF to
avoid overflow by performing computations in uint64_t.

This fixes an overflow in the test added in #219290. We now correctly
determine that a tail is needed for a low trip count loop.

PR: https://github.com/llvm/llvm-project/pull/221219


  Commit: 972cd3ddf3d58ecb79a4e6b62b35147513f3aeea
      https://github.com/llvm/llvm-project/commit/972cd3ddf3d58ecb79a4e6b62b35147513f3aeea
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp

  Log Message:
  -----------
  [lldb][Windows] Silence unused variable warning on Windows on Arm (#221176)

<...>/llvm-project/lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp(507,8):
warning: unused variable 'log' [-Wunused-variable]
  507 |   Log *log = GetLog(WindowsLog::Exception);
      |        ^~~

Move that line into the `#ifndef __aarch64__` block to fix this.


  Commit: c84706fd8cab200aa460b7737fa5412a0c1628d8
      https://github.com/llvm/llvm-project/commit/c84706fd8cab200aa460b7737fa5412a0c1628d8
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/load.ll
    M llvm/test/CodeGen/AArch64/neon-extadd-extract.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll
    M llvm/test/CodeGen/AArch64/sve-insert-vector-to-predicate-load.ll

  Log Message:
  -----------
  [AArch64][SVE] Lower extended v2i8 loads using SVE. (#217006)

Loads of v2i8 are promoted to v2i32, which requires two extend
operations; v2i8 -> v2i16, then v2i16 -> v2i32. This comes largely for
free when using SVE's extending loads.


  Commit: 330bb868b4a5d6035a1511169dacc72e913d009f
      https://github.com/llvm/llvm-project/commit/330bb868b4a5d6035a1511169dacc72e913d009f
  Author: Mikhail Titov <42744001+Anchels at users.noreply.github.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/docs/LibFuzzer.md

  Log Message:
  -----------
  [docs][libFuzzer] Fix formatting and collapsed definition lists (#206709)

This PR fixes broken formatting and collapsed definition lists in the
libFuzzer documentation by adding missing blank lines.

Closes #206706

Signed-off-by: Anchels <mishtitov at gmail.com>


  Commit: 95de5eb9942a20285afd59f7c197ba005a9b937b
      https://github.com/llvm/llvm-project/commit/95de5eb9942a20285afd59f7c197ba005a9b937b
  Author: Henrich Lauko <xlauko at mail.muni.cz>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
    M clang/include/clang/CIR/Dialect/IR/CIROps.td

  Log Message:
  -----------
  [CIR] Drop dead ceremony around the CIR enum attributes (#220890)

Five things that no longer earn their place in the CIR enum attribute
machinery.

CIR_CleanupKindAttr carried three. Its cppClassName restated the default
AttrDef already derives. Its skipDefaultBuilders plus hand-written
AttrBuilder existed only to default $value to CleanupKind::All, which no
caller relies on, so the generated builders stayed suppressed for
nothing.
And its summary and description restated the name, overriding the enum's
own
"cleanup kind" that EnumAttr would otherwise inherit. The isNormal, isEH
and
isNormalAndEH helpers stay.

CIR_TLSModelAttr's summary restated its name the same way, so only that
goes.
CIR_DefaultValuedEnumParameter has never had a user.


  Commit: d246c5ee925edc79ed12e6269faa296b83362075
      https://github.com/llvm/llvm-project/commit/d246c5ee925edc79ed12e6269faa296b83362075
  Author: Madhur Amilkanthwar <madhura at nvidia.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h

  Log Message:
  -----------
  [SLP][modularisation][NFC] Move order/mask helpers to SLPUtils (#221663)

Move the following BoUpSLP-independent order/mask helpers out of
SLPVectorizer.cpp into SLPVectorizer/SLPUtils.{h,cpp}:

  reorderReuses
  reorderOrder
  isReverseOrder
  isRepeatedNonIdentityClusteredMask
  combineOrders

They sit with the existing permutation helpers. Behavior is unchanged.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922


  Commit: 905559e7a56c74029584fd2682dc592251d4d80f
      https://github.com/llvm/llvm-project/commit/905559e7a56c74029584fd2682dc592251d4d80f
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-09-07 (Mon, 07 Sep 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/.clang-tidy
    M clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Types.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/Types.cpp
    R clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_dup.c
    R clang/test/CIR/CodeGenBuiltins/AArch64/acle_sve_len.c
    M clang/test/CodeGen/AArch64/lit.local.cfg
    A clang/test/CodeGen/AArch64/sve/dup.c
    A clang/test/CodeGen/AArch64/sve/len.c
    A clang/test/Driver/Inputs/object0.o
    M clang/test/Driver/aix-ld.c
    A clang/test/Driver/pch-inputs.h
    M lldb/source/Plugins/Process/Windows/Common/NativeProcessWindows.cpp
    M llvm/docs/LibFuzzer.md
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
    M llvm/test/CodeGen/AArch64/load.ll
    M llvm/test/CodeGen/AArch64/neon-extadd-extract.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-scatter.ll
    M llvm/test/CodeGen/AArch64/sve-insert-vector-to-predicate-load.ll
    M llvm/test/CodeGen/X86/avx512f-large-stack.ll
    A llvm/test/CodeGen/X86/huge-frame-index.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/wide-vscale-range-max-runtime-vf.ll
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp

  Log Message:
  -----------
  Rebase

Created using spr 1.3.7


Compare: https://github.com/llvm/llvm-project/compare/0f138f68467d...905559e7a56c

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