[all-commits] [llvm/llvm-project] e588c7: [X86] Attempt to fold trunc(srl(load(p), amt) -> lo...
Marco Elver via All-commits
all-commits at lists.llvm.org
Tue Oct 28 08:30:21 PDT 2025
Branch: refs/heads/users/melver/spr/alloctoken-clang-implement-__builtin_alloc_token_infer-and-llvmalloctokenid
Home: https://github.com/llvm/llvm-project
Commit: e588c7fa713d8bdd5c424831ca42136b560ff66b
https://github.com/llvm/llvm-project/commit/e588c7fa713d8bdd5c424831ca42136b560ff66b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bfloat-calling-conv.ll
M llvm/test/CodeGen/X86/trunc-srl-load.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca.ll
Log Message:
-----------
[X86] Attempt to fold trunc(srl(load(p),amt) -> load(p+amt/8) (#165266)
As reported on #164853 - we only attempt to reduce shifted loads for constant shift amounts, but we could do more with non-constant values if value tracking can confirm basic alignments.
This patch determines if a truncated shifted load of scalar integer shifts by a byte aligned amount and replaces the non-constant shift amount with a pointer offset instead.
I had hoped to make this a generic DAG fold, but reduceLoadWidth isn't ready to be converted to a KnownBits value tracking mechanism, and other targets don't have complex address math like X86.
Fixes #164853
Commit: 44cb8c1e000bbe301e046cf11f7bae915a08b8ab
https://github.com/llvm/llvm-project/commit/44cb8c1e000bbe301e046cf11f7bae915a08b8ab
Author: Björn Pettersson <bjorn.a.pettersson at ericsson.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/utils/lit/lit/TestRunner.py
A llvm/utils/lit/tests/Inputs/shtest-env-path/lit.cfg
A llvm/utils/lit/tests/Inputs/shtest-env-path/path.txt
A llvm/utils/lit/tests/Inputs/shtest-env-path/test.sh
A llvm/utils/lit/tests/shtest-env-path.py
Log Message:
-----------
[lit] Fix to make "RUN: env PATH=..." work as intended (#165308)
There was a bug in llvm-lit related to setting PATH using env in the
internal shell.
The new PATH wasn't used when looking up the command to be executed. So
when doing things like this in a test case
RUN: mkdir %t
RUN: env PATH=%t program ...
the internal shell would search for "program" using the orignal PATH and
not the PATH set by env when preceeding the command.
It seems like this was a simple mistake in commit 57782eff31e9d454,
since the logic to pick a PATH from the cmd_shenv instead of shenv
actually was added in that patch, but the resulting path wasn't used.
Commit: ec55aa4ef2c773fbc2723f38b7f96365e28f164b
https://github.com/llvm/llvm-project/commit/ec55aa4ef2c773fbc2723f38b7f96365e28f164b
Author: Ebuka Ezike <yerimyah1 at gmail.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[lldb][test] When an external stdlib is specified do not link to the system stdlib (#164462)
On linux if you specify the an external libc++ and clang will still link
to the system's libc++. This patch fixes that.
Fixes https://github.com/llvm/llvm-project/issues/116040
Commit: cc22c9c4559f9436c9c3f9f2fa95f0c7a3b4b31d
https://github.com/llvm/llvm-project/commit/cc22c9c4559f9436c9c3f9f2fa95f0c7a3b4b31d
Author: Clement Courbet <courbet at google.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M compiler-rt/lib/nsan/tests/NSanUnitTest.cpp
Log Message:
-----------
Revert "[nsan] More unit tests for `float128`. (#165248)" (#165391)
This reverts commit 2f869c427b6c800f37147458ac03d1fa6f9ad9d3.
Breaks build on some configurations
Commit: a8471342fae518796232208929a23c2b8a127a68
https://github.com/llvm/llvm-project/commit/a8471342fae518796232208929a23c2b8a127a68
Author: Kunqiu Chen <camsyn at foxmail.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/include/llvm/IR/AbstractCallSite.h
M llvm/unittests/IR/AbstractCallSiteTest.cpp
Log Message:
-----------
[AbstractCallSite] Handle Indirect Calls Properly (#163003)
AbstractCallSite handles three types of calls (direct, indirect, and
callback).
This patch fixes the handling of indirect calls in some methods, which
incorrectly assumed that non-direct calls are always callback calls.
Moreover, this PR adds 2 unit tests for direct call type and indirect
call type.
The aforementioned misassumption leads to the following problem:
---
## Problem
When the underlying call is **indirect**, some APIs of
`AbstractCallSite` behave unexpectedly.
E.g., `AbstractCallSite::getCalledFunction()` currently triggers an
**assertion failure**, instead of returning `nullptr` as documented:
```cpp
/// Return the function being called if this is a direct call, otherwise
/// return null (if it's an indirect call).
Function *getCalledFunction() const;
```
Actual unexpected assertion failure:
```
AbstractCallSite.h:197: int llvm::AbstractCallSite::getCallArgOperandNoForCallee() const: Assertion `isCallbackCall()' failed.
```
This is because `AbstractCallSite` mistakenly entered the branch that
handles Callback Calls as its guard condition (`!isDirectCall()`) does
not take into account the case of indirect calls
Commit: f162488b9468fe16671e254331e0d12f713127c4
https://github.com/llvm/llvm-project/commit/f162488b9468fe16671e254331e0d12f713127c4
Author: Paul Walker <paul.walker at arm.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M clang/test/CodeGen/AArch64/neon-across.c
Log Message:
-----------
[NFC][Clang] Regenerate CHECKs - CodeGen/AArch64/neon-across.c
Commit: 29c830cbf8c65fcab7f96f92c8466cbcc9924dd1
https://github.com/llvm/llvm-project/commit/29c830cbf8c65fcab7f96f92c8466cbcc9924dd1
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/test/tools/llvm-dwarfdump/X86/type_units_split_dwp_v4.s
Log Message:
-----------
[test][DebugInfo] Fix location of test build artifacts (#165349)
The test added in #161067 writes artifacts to the current dir, i.e.
`test.o` / `test.dwo` / `test.dwp`, which might not be writeable. Tests
should use `%t` for test artifact location, i.e. `%t.o` / `%t.dwo` /
`%t.dwp` However, since `"test.dwo"` is part of the assembly source file
used as a test input, and that's not something lit will substitute, that
typical approach doesn't work. We can instead ensure the output is in a
good location by running `cd %t` (after setting it up).
Commit: 566c7311d4497ab55db36fcae44579dc244fa4a4
https://github.com/llvm/llvm-project/commit/566c7311d4497ab55db36fcae44579dc244fa4a4
Author: Kunqiu Chen <camsyn at foxmail.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
A llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/switch_case.ll
A llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/switch_case.ll.expected
A llvm/test/tools/UpdateTestChecks/update_test_checks/switch_case.test
M llvm/utils/UpdateTestChecks/common.py
M llvm/utils/update_test_checks.py
Log Message:
-----------
[UTC] Indent switch cases (#165212)
LLVM prints switch cases indented by 2 additional spaces, as follows:
```LLVM
switch i32 %x, label %default [
i32 0, label %phi
i32 1, label %phi
]
```
Since this only changes the output IR of update_test_checks.py and does
not change the logic of the File Check Pattern, there seems to be no
need to update the existing test cases.
Commit: d30bd27e7f98c4bf752c50d7189f35ebbf742c3e
https://github.com/llvm/llvm-project/commit/d30bd27e7f98c4bf752c50d7189f35ebbf742c3e
Author: Aleksei Nurmukhametov <anurmukh at amd.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir
Log Message:
-----------
[mlir][complex] Fix exp accuracy (#164952)
This ports openxla/stablehlo#2682 implementation by @pearu.
Three tests were added to
`Integration/Dialect/Complex/CPU/correctness.mlir`. I also verified
accuracy using XLA's complex_unary_op_test and its MLIR emitters.
Commit: e5bb946d1818fb545b36c1b84abf3ab46f4faa5b
https://github.com/llvm/llvm-project/commit/e5bb946d1818fb545b36c1b84abf3ab46f4faa5b
Author: Fateme Hosseini <quic_fhossein at quicinc.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
A llvm/test/CodeGen/Hexagon/inst_masked_store_bug1.ll
Log Message:
-----------
Bug fixes for ISelLowering for HVX (#164416)
1. createHvxPrefixPred was computing an invalid byte count for small
predicate types, leading to a crash during instruction selection.
2. HexagonTargetLowering::SplitHvxMemOp assumed the memory vector type
is always simple. This patch adds a guard to avoid processing non-simple
vector types, which can lead to failure.
Patch By:
Fateme Hosseini
Co-authored-by: pavani karveti <quic_pkarveti at quicinc.com>
Co-authored-by: Sergei Larin <slarin at quicinc.com>
Co-authored-by: Pavani Karveti <pkarveti at qti.qualcomm.com>
Commit: 0621fd0b8837192612d21785ad60664516513cea
https://github.com/llvm/llvm-project/commit/0621fd0b8837192612d21785ad60664516513cea
Author: Connector Switch <c8ef at outlook.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__algorithm/generate_n.h
M libcxx/include/__algorithm/ranges_generate_n.h
Log Message:
-----------
[libcxx] Optimize `rng::generate_n` for segmented iterators (#165280)
Part of #102817.
This patch optimizes `rng::generate_n` for segmented iterators by
forwarding the implementation directly to `std::generate_n`.
- before
```
rng::generate_n(deque<int>)/32 21.7 ns 22.0 ns 32000000
rng::generate_n(deque<int>)/50 30.8 ns 30.7 ns 22400000
rng::generate_n(deque<int>)/1024 492 ns 488 ns 1120000
rng::generate_n(deque<int>)/8192 3938 ns 3924 ns 179200
```
- after
```
rng::generate_n(deque<int>)/32 11.0 ns 11.0 ns 64000000
rng::generate_n(deque<int>)/50 16.2 ns 16.1 ns 40727273
rng::generate_n(deque<int>)/1024 292 ns 286 ns 2240000
rng::generate_n(deque<int>)/8192 2291 ns 2302 ns 298667
```
Commit: 531fd45e9238d0485e3268aaf14ae15d01c7740f
https://github.com/llvm/llvm-project/commit/531fd45e9238d0485e3268aaf14ae15d01c7740f
Author: Shimin Cui <scui at ca.ibm.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SwitchLoweringUtils.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
A llvm/test/CodeGen/PowerPC/bittest.ll
Log Message:
-----------
[PPC] Set minimum of largest number of comparisons to use bit test for switch lowering (#155910)
Currently it is considered suitable to lower to a bit test for a set of
switch case clusters when the the number of unique destinations
(`NumDests`) and the number of total comparisons (`NumCmps`) satisfy:
`(NumDests == 1 && NumCmps >= 3) || (NumDests == 2 && NumCmps >= 5) ||
(NumDests == 3 && NumCmps >= 6)`
However it is found for some cases on powerpc, for example, when
NumDests is 3, and the number of comparisons for each destination is all
2, it's not profitable to lower the switch to bit test. This is to add
an option to set the minimum of largest number of comparisons to use bit
test for switch lowering.
---------
Co-authored-by: Shimin Cui <scui at xlperflep9.rtp.raleigh.ibm.com>
Commit: a4950c4fa137cdb80d0d697179a00f5de6816af2
https://github.com/llvm/llvm-project/commit/a4950c4fa137cdb80d0d697179a00f5de6816af2
Author: Mircea Trofin <mtrofin at google.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
Add switch_case.test to profcheck-xfail.txt (#165407)
Commit: bfb54e8ba6262a509343985c018f9a8d52963734
https://github.com/llvm/llvm-project/commit/bfb54e8ba6262a509343985c018f9a8d52963734
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sme-zt0-state.ll
Log Message:
-----------
[AArch64][SME] Disable tail calls for callees that require saving ZT0 (#165371)
We may need to load ZT0 after the call, so we can't perform a tail call.
Commit: 2aea02da79a7daae391b98e851c4b53c0b8dc84b
https://github.com/llvm/llvm-project/commit/2aea02da79a7daae391b98e851c4b53c0b8dc84b
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M compiler-rt/test/fuzzer/reduce_inputs.test
Log Message:
-----------
[Fuzzer][Test-Only] Increase runs for reduce-inputs.test (#165402)
This test fails on some arm64 macOS runs currently.
This patch bumps up the number of runs by 10x to hopefully get it
passing consistently.
rdar://162122184
Commit: 3172970bbed69f07913f46727d24930f1f60f4e7
https://github.com/llvm/llvm-project/commit/3172970bbed69f07913f46727d24930f1f60f4e7
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M compiler-rt/test/fuzzer/fuzzer-ubsan.test
Log Message:
-----------
[Fuzzer][Test-Only] Re-enable fuzzer-ubsan.test on Darwin (#165403)
This test is now XPASSing due to a linker update on the platform.
This patch removes the XFAIL from the test.
rdar://163149345
Commit: 28e9a2832fae1a05d35a9ce68537ec449a5a13c7
https://github.com/llvm/llvm-project/commit/28e9a2832fae1a05d35a9ce68537ec449a5a13c7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
DAG: Consider __sincos_stret when deciding to form fsincos (#165169)
Commit: 31fd2b03b3308c6cc4a1d0d4a7c9adf05172c453
https://github.com/llvm/llvm-project/commit/31fd2b03b3308c6cc4a1d0d4a7c9adf05172c453
Author: Marco Elver <elver at google.com>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
M clang/test/CodeGen/AArch64/neon-across.c
M compiler-rt/lib/nsan/tests/NSanUnitTest.cpp
M compiler-rt/test/fuzzer/fuzzer-ubsan.test
M compiler-rt/test/fuzzer/reduce_inputs.test
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__algorithm/generate_n.h
M libcxx/include/__algorithm/ranges_generate_n.h
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/IR/AbstractCallSite.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SwitchLoweringUtils.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sme-zt0-state.ll
A llvm/test/CodeGen/Hexagon/inst_masked_store_bug1.ll
A llvm/test/CodeGen/PowerPC/bittest.ll
M llvm/test/CodeGen/X86/bfloat-calling-conv.ll
M llvm/test/CodeGen/X86/trunc-srl-load.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
M llvm/test/CodeGen/X86/widen-load-of-small-alloca.ll
A llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/switch_case.ll
A llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/switch_case.ll.expected
A llvm/test/tools/UpdateTestChecks/update_test_checks/switch_case.test
M llvm/test/tools/llvm-dwarfdump/X86/type_units_split_dwp_v4.s
M llvm/unittests/IR/AbstractCallSiteTest.cpp
M llvm/utils/UpdateTestChecks/common.py
M llvm/utils/lit/lit/TestRunner.py
A llvm/utils/lit/tests/Inputs/shtest-env-path/lit.cfg
A llvm/utils/lit/tests/Inputs/shtest-env-path/path.txt
A llvm/utils/lit/tests/Inputs/shtest-env-path/test.sh
A llvm/utils/lit/tests/shtest-env-path.py
M llvm/utils/profcheck-xfail.txt
M llvm/utils/update_test_checks.py
M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir
Log Message:
-----------
rebase
Created using spr 1.3.8-beta.1
Compare: https://github.com/llvm/llvm-project/compare/7813272e6df4...31fd2b03b330
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