[all-commits] [llvm/llvm-project] f6a359: [CodeGen] Teach ReplaceWithVeclib split vector llv...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Jul 15 00:16:52 PDT 2026


  Branch: refs/heads/users/MaskRay/spr/cycleinfo-remove-genericcycletoplevelcycle-nfc
  Home:   https://github.com/llvm/llvm-project
  Commit: f6a359fe20904afe5cc899d3c2fda258322f1f71
      https://github.com/llvm/llvm-project/commit/f6a359fe20904afe5cc899d3c2fda258322f1f71
  Author: Kito Cheng <kito.cheng at sifive.com>
  Date:   2026-07-15 (Wed, 15 Jul 2026)

  Changed paths:
    M llvm/lib/CodeGen/ReplaceWithVeclib.cpp
    A llvm/test/CodeGen/X86/sincos-fpmath.ll
    M llvm/test/CodeGen/X86/veclib-llvm.sincos.ll

  Log Message:
  -----------
  [CodeGen] Teach ReplaceWithVeclib split vector llvm.sincos when only sin/cos veclib mappings exist (#194639)

Some vector math libraries provide vector sin and vector cos but no
vector sincos or no sincos with an ABI that LLVM can emit.

The one of the common case is glibc libmvec on x86: it exposes
`_ZGV{b,c,d,e}N{2,4,8,16}vvv_sincos{,f}` symbols, but those use a
vectors-of-pointers output ABI that expandMultipleResultFPLibCall does
not currently support. As a result, sincos will falls back to scalar
sincos calls even when the target has a fully working vector sin and
vector cos.

So we trying to split it into separate sin and cos calls, which will
then be replaced with vector calls if the target supports it, it
generally better than scalarized sincos calls.


  Commit: 2033c4569af6ae3665a731dd276ea9795d531256
      https://github.com/llvm/llvm-project/commit/2033c4569af6ae3665a731dd276ea9795d531256
  Author: Kazu Hirata <kazu at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M llvm/include/llvm/ProfileData/SampleProfReader.h
    M llvm/lib/ProfileData/SampleProfReader.cpp

  Log Message:
  -----------
  [SampleProfile] Remove ProfileHasAttribute parameter from readFuncMetadata (NFC) (#208604)

This patch removes the ProfileHasAttribute parameter from
readFuncMetadata overloads.

Because ProfileHasAttribute is set once in readImpl during section
header parsing and never modified afterward, readFuncMetadata observes
the exact same immutable value regardless of whether it is passed as a
function parameter or read from the class member variable.

Assisted-by: Antigravity


  Commit: 4148172fb742eaca83b427e43b0ff5691fe28d72
      https://github.com/llvm/llvm-project/commit/4148172fb742eaca83b427e43b0ff5691fe28d72
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M lld/test/lit.cfg.py

  Log Message:
  -----------
  [lld] Remove ability to use the external shell

The external shell is going to get removed soon, so remove the ability
to force the use of it for lld tests.

Reviewers: ilovepi, MaskRay, petrhosek

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


  Commit: 3f46a5e91cdf2ade1d8ca350f4a57af8221407ea
      https://github.com/llvm/llvm-project/commit/3f46a5e91cdf2ade1d8ca350f4a57af8221407ea
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M llvm/test/FileCheck/lit.local.cfg
    M llvm/test/lit.cfg.py
    M llvm/test/tools/UpdateTestChecks/lit.local.cfg
    M llvm/utils/mlgo-utils/tests/lit.cfg

  Log Message:
  -----------
  [LLVM] Drop ability to use external shell

The external shell is getting removed soon, so drop the ability to force
the use of it for running LLVM tests.

Reviewers: ilovepi, petrhosek, arichardson

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


  Commit: bf8924c7e10d4b0571c73f0b55274fb585a65c23
      https://github.com/llvm/llvm-project/commit/bf8924c7e10d4b0571c73f0b55274fb585a65c23
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M llvm/utils/lit/tests/Inputs/shtest-define/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-output-printing/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-pushd-popd/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-ulimit/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-umask/lit.cfg
    M llvm/utils/lit/tests/lit.cfg
    M llvm/utils/lit/tests/per-test-coverage-by-lit-cfg.py

  Log Message:
  -----------
  [lit] Drop explicitly setting execute_external=False

That parameter will be going away soon.

Reviewers: jh7370, arichardson, hnrklssn, ilovepi

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


  Commit: a2fac66e0678ecb0ffe90cbd40afbc97eb84cf70
      https://github.com/llvm/llvm-project/commit/a2fac66e0678ecb0ffe90cbd40afbc97eb84cf70
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M flang-rt/test/lit.cfg.py
    M flang/test/lit.cfg.py

  Log Message:
  -----------
  [Flang] Drop option to use external shell for testing

The external shell will be deleted soon, so drop the option to enable
the use of it for testing flang/flang-rt.

Reviewers: petrhosek, clementval, ilovepi

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


  Commit: dcbf2a9eee64a100d22d4194293e828864cbbdbc
      https://github.com/llvm/llvm-project/commit/dcbf2a9eee64a100d22d4194293e828864cbbdbc
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M clang-tools-extra/clangd/test/lit.cfg.py
    M clang-tools-extra/include-cleaner/test/lit.cfg.py
    M clang-tools-extra/test/lit.cfg.py

  Log Message:
  -----------
  [clang-tools-extra] Drop option to use external shell

The external shell is going to be removed from lit soon, so drop the
option to enable using it.

Reviewers: petrhosek, compnerd, ilovepi

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


  Commit: 00112b0ac171c360ae60d2f7ffabb7f22d62cdd0
      https://github.com/llvm/llvm-project/commit/00112b0ac171c360ae60d2f7ffabb7f22d62cdd0
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    M compiler-rt/test/builtins/Unit/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py

  Log Message:
  -----------
  [compiler-rt] Drop support for using the external shell

The lit external shell is going to be removed soon, so drop support for
using it to run the compiler-rt tests.

Reviewers: petrhosek, ilovepi, thurstond

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


  Commit: 7c7f62c8880c0a4d94ea9607ea038ad6690264db
      https://github.com/llvm/llvm-project/commit/7c7f62c8880c0a4d94ea9607ea038ad6690264db
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-07-14 (Tue, 14 Jul 2026)

  Changed paths:
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_control_chars.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/lit.local.cfg
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/pass.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/utf8_command.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py
    A llvm/utils/lit/tests/Inputs/shtest-format/fail_with_bad_encoding.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/fail_with_control_chars.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/utf8_command.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/write-bad-encoding.py
    A llvm/utils/lit/tests/Inputs/shtest-format/write-control-chars.py
    M llvm/utils/lit/tests/shtest-format.py

  Log Message:
  -----------
  [lit] Remove external shell tests for shtest-format

fail.txt was redundant with an internal shell test.

Move the other tests into the internal shell directory as they are not
redundant.

Reviewers: arichardson, jh7370, hnrklssn, ilovepi

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


  Commit: bd1983e7ec9fef429787997684b48644dee583c4
      https://github.com/llvm/llvm-project/commit/bd1983e7ec9fef429787997684b48644dee583c4
  Author: AZero13 <gfunni234 at gmail.com>
  Date:   2026-07-15 (Wed, 15 Jul 2026)

  Changed paths:
    M llvm/lib/TableGen/TGParser.cpp

  Log Message:
  -----------
  [TableGen] V is always a TypedInit, so use cast (#209208)

No need to dyn_cast. It is functionally impossible for V to not be a
TypedInit at this point.


  Commit: 848d409e60845352cfce85c2a23d1d262a0c68f3
      https://github.com/llvm/llvm-project/commit/848d409e60845352cfce85c2a23d1d262a0c68f3
  Author: Sairudra More <sairudra60 at gmail.com>
  Date:   2026-07-15 (Wed, 15 Jul 2026)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A flang/test/Integration/OpenMP/target-inreduction-llvmir.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-common.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-equivalence.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-firstprivate.f90
    R flang/test/Lower/OpenMP/Todo/target-inreduction.f90
    A flang/test/Lower/OpenMP/target-inreduction-unused.f90
    A flang/test/Lower/OpenMP/target-inreduction.f90
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Dialect/OpenMP/host-op-filtering.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction-device.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction-multi.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir

  Log Message:
  -----------
  [flang][OpenMP] Lower target in_reduction (#199967)

This patch carries `in_reduction` through `omp.target` for host
execution.

The lowering looks up the task-reduction private storage with
`__kmpc_task_reduction_get_th_data` and binds the target region argument
to that private pointer. This makes uses inside the target region refer
to the task-private reduction storage instead of continuing to use the
original variable.

This also fixes the `omp::TargetOp::build(TargetOperands)` path so
`in_reduction` operands are preserved instead of being dropped.

On the Flang side, `target in_reduction` list items are added to the
target map entries when needed, giving the translation a matching mapped
value to rewrite.

### Stack / review order

This PR is related to the OpenMP task-reduction translation stack:

1. #199565 — `omp.taskgroup task_reduction` translation
2. #199670 — `omp.taskloop` `reduction` / `in_reduction` translation
3. #202611 — explicit `omp.task in_reduction` translation

This PR is a target-specific sibling follow-up:

* #199967 — `omp.target in_reduction` host lowering

The intended main review order for the task/taskloop stack is:

#199565 → #199670 → #202611

This PR should be reviewed as the `omp.target in_reduction` host-side
lowering work built on the same task-reduction runtime model, not as a
dependency of #202611.

Addresses #199904.

Assisted-by: Claude Opus 4.8 and ChatGPT 5.5


  Commit: 60561ed255d3671156b88278975a512b530816a9
      https://github.com/llvm/llvm-project/commit/60561ed255d3671156b88278975a512b530816a9
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-07-15 (Wed, 15 Jul 2026)

  Changed paths:
    M clang-tools-extra/clangd/test/lit.cfg.py
    M clang-tools-extra/include-cleaner/test/lit.cfg.py
    M clang-tools-extra/test/lit.cfg.py
    M compiler-rt/test/builtins/Unit/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M flang-rt/test/lit.cfg.py
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A flang/test/Integration/OpenMP/target-inreduction-llvmir.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-common.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-equivalence.f90
    A flang/test/Lower/OpenMP/Todo/target-inreduction-firstprivate.f90
    R flang/test/Lower/OpenMP/Todo/target-inreduction.f90
    A flang/test/Lower/OpenMP/target-inreduction-unused.f90
    A flang/test/Lower/OpenMP/target-inreduction.f90
    M flang/test/lit.cfg.py
    M lld/test/lit.cfg.py
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/ProfileData/SampleProfReader.h
    M llvm/lib/CodeGen/ReplaceWithVeclib.cpp
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/ProfileData/SampleProfReader.cpp
    M llvm/lib/TableGen/TGParser.cpp
    A llvm/test/CodeGen/X86/sincos-fpmath.ll
    M llvm/test/CodeGen/X86/veclib-llvm.sincos.ll
    M llvm/test/FileCheck/lit.local.cfg
    M llvm/test/lit.cfg.py
    M llvm/test/tools/UpdateTestChecks/lit.local.cfg
    M llvm/utils/lit/tests/Inputs/shtest-define/lit.cfg
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_control_chars.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/lit.local.cfg
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/pass.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/utf8_command.txt
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
    R llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py
    A llvm/utils/lit/tests/Inputs/shtest-format/fail_with_bad_encoding.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/fail_with_control_chars.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/utf8_command.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/write-bad-encoding.py
    A llvm/utils/lit/tests/Inputs/shtest-format/write-control-chars.py
    M llvm/utils/lit/tests/Inputs/shtest-output-printing/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-pushd-popd/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-run-at-line/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-ulimit-nondarwin/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-ulimit/lit.cfg
    M llvm/utils/lit/tests/Inputs/shtest-umask/lit.cfg
    M llvm/utils/lit/tests/lit.cfg
    M llvm/utils/lit/tests/per-test-coverage-by-lit-cfg.py
    M llvm/utils/lit/tests/shtest-format.py
    M llvm/utils/mlgo-utils/tests/lit.cfg
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Dialect/OpenMP/host-op-filtering.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction-device.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction-multi.mlir
    A mlir/test/Target/LLVMIR/openmp-target-in-reduction.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir

  Log Message:
  -----------
  .

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/897abc0a8854...60561ed255d3

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