[all-commits] [llvm/llvm-project] 4a9d03: [MLIR][XeGPU] Distribute load_nd/store_nd/prefetch...
Steven Wu via All-commits
all-commits at lists.llvm.org
Mon Aug 18 14:43:04 PDT 2025
Branch: refs/heads/users/cachemeifyoucan/spr/cas-add-mappedfileregionbumpptr
Home: https://github.com/llvm/llvm-project
Commit: 4a9d038acd637c5742e6d1622d4ad803059825bd
https://github.com/llvm/llvm-project/commit/4a9d038acd637c5742e6d1622d4ad803059825bd
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
Log Message:
-----------
[MLIR][XeGPU] Distribute load_nd/store_nd/prefetch_nd with offsets from Wg to Sg (#153432)
This PR adds pattern to distribute the load/store/prefetch nd ops with
offsets from workgroup to subgroup IR. This PR is part of the transition
to move offsets from create_nd to load/store/prefetch nd ops.
Create_nd PR : #152351
Commit: 1b60236200735abc39e5bd3a2280123e9789dec5
https://github.com/llvm/llvm-project/commit/1b60236200735abc39e5bd3a2280123e9789dec5
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
[SimplifyCFG] Avoid redundant calls in gather. (NFC) (#154133)
Split out from https://github.com/llvm/llvm-project/pull/154007 as it
showed compile time improvements
NFC as there needs to be at least two icmps that is part of the chain.
Commit: 97f554249c564e769956abfcb3266925745482c5
https://github.com/llvm/llvm-project/commit/97f554249c564e769956abfcb3266925745482c5
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-different-insert-position.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-gep-nowrap-flags.ll
Log Message:
-----------
[VPlan] Preserve nusw in createInBoundsPtrAdd (#151549)
Rename createInBoundsPtrAdd to createNoWrapPtrAdd, and preserve nusw as
well as inbounds at the callsite.
Commit: 8135b7c1abd7d22f98cf3dbd7d7a93c9fc7755c6
https://github.com/llvm/llvm-project/commit/8135b7c1abd7d22f98cf3dbd7d7a93c9fc7755c6
Author: Tobias Stadler <mail at stadler-tobias.de>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
Log Message:
-----------
[LV] Emit all remarks for unvectorizable instructions (#153833)
If ExtraAnalysis is requested, emit all remarks caused by unvectorizable instructions - instead of only the first.
This is in line with how other places handle DoExtraAnalysis and it can be quite helpful to get info about all instructions in a loop that prevent vectorization.
Commit: 4eb1a07d7d1a9722e84490b0ff79d3ae5e260f76
https://github.com/llvm/llvm-project/commit/4eb1a07d7d1a9722e84490b0ff79d3ae5e260f76
Author: Yang Bai <baiyang0132 at gmail.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
M mlir/include/mlir/Dialect/Vector/Transforms/LoweringPatterns.h
M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
M mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
M mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
A mlir/lib/Dialect/Vector/Transforms/LowerVectorFromElements.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp
M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
A mlir/test/Dialect/Vector/vector-from-elements-lowering.mlir
M mlir/test/Dialect/Vector/vector-gather-lowering.mlir
M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
M mlir/test/python/dialects/transform_vector_ext.py
Log Message:
-----------
[mlir][vector] Support multi-dimensional vectors in VectorFromElementsLowering (#151175)
This patch introduces a new unrolling-based approach for lowering
multi-dimensional `vector.from_elements` operations.
**Implementation Details:**
1. **New Transform Pattern**: Added `UnrollFromElements` that unrolls a
N-D(N>=2) from_elements op to a (N-1)-D from_elements op align the
outermost dimension.
2. **Utility Functions**: Added `unrollVectorOp` to reuse the unroll
algo of vector.gather for vector.from_elements.
3. **Integration**: Added the unrolling pattern to the
convert-vector-to-llvm pass as a temporal transformation.
4. Use direct LLVM dialect operations instead of intermediate
vector.insert operations for efficiency in `VectorFromElementsLowering`.
**Example:**
```mlir
// unroll
%v = vector.from_elements %e0, %e1, %e2, %e3 : vector<2x2xf32>
=>
%poison_2d = ub.poison : vector<2x2xf32>
%vec_1d_0 = vector.from_elements %e0, %e1 : vector<2xf32>
%vec_2d_0 = vector.insert %vec_1d_0, %poison_2d [0] : vector<2xf32> into vector<2x2xf32>
%vec_1d_1 = vector.from_elements %e2, %e3 : vector<2xf32>
%result = vector.insert %vec_1d_1, %vec_2d_0 [1] : vector<2xf32> into vector<2x2xf32>
// convert-vector-to-llvm
%v = vector.from_elements %e0, %e1, %e2, %e3 : vector<2x2xf32>
=>
%poison_2d = ub.poison : vector<2x2xf32>
%poison_2d_cast = builtin.unrealized_conversion_cast %poison_2d : vector<2x2xf32> to !llvm.array<2 x vector<2xf32>>
%poison_1d_0 = llvm.mlir.poison : vector<2xf32>
%c0_0 = llvm.mlir.constant(0 : i64) : i64
%vec_1d_0_0 = llvm.insertelement %e0, %poison_1d_0[%c0_0 : i64] : vector<2xf32>
%c1_0 = llvm.mlir.constant(1 : i64) : i64
%vec_1d_0_1 = llvm.insertelement %e1, %vec_1d_0_0[%c1_0 : i64] : vector<2xf32>
%vec_2d_0 = llvm.insertvalue %vec_1d_0_1, %poison_2d_cast[0] : !llvm.array<2 x vector<2xf32>>
%poison_1d_1 = llvm.mlir.poison : vector<2xf32>
%c0_1 = llvm.mlir.constant(0 : i64) : i64
%vec_1d_1_0 = llvm.insertelement %e2, %poison_1d_1[%c0_1 : i64] : vector<2xf32>
%c1_1 = llvm.mlir.constant(1 : i64) : i64
%vec_1d_1_1 = llvm.insertelement %e3, %vec_1d_1_0[%c1_1 : i64] : vector<2xf32>
%vec_2d_1 = llvm.insertvalue %vec_1d_1_1, %vec_2d_0[1] : !llvm.array<2 x vector<2xf32>>
%result = builtin.unrealized_conversion_cast %vec_2d_1 : !llvm.array<2 x vector<2xf32>> to vector<2x2xf32>
```
---------
Co-authored-by: Nicolas Vasilache <Nico.Vasilache at amd.com>
Co-authored-by: Yang Bai <yangb at nvidia.com>
Co-authored-by: James Newling <james.newling at gmail.com>
Co-authored-by: Diego Caballero <dieg0ca6aller0 at gmail.com>
Commit: c2e7fad44691ed44281bde9e8322e70be0e6aeec
https://github.com/llvm/llvm-project/commit/c2e7fad44691ed44281bde9e8322e70be0e6aeec
Author: Panagiotis Karouzakis <45971450+karouzakisp at users.noreply.github.com>
Date: 2025-08-19 (Tue, 19 Aug 2025)
Changed paths:
M llvm/lib/Analysis/DemandedBits.cpp
A llvm/test/Analysis/DemandedBits/ashr.ll
A llvm/test/Analysis/DemandedBits/lshr.ll
M llvm/test/Analysis/DemandedBits/shl.ll
Log Message:
-----------
[DemandedBits] Support non-constant shift amounts (#148880)
This patch adds support for the shift operators to handle non-constant
shift operands.
ashr proof -->https://alive2.llvm.org/ce/z/EN-siK
lshr proof --> https://alive2.llvm.org/ce/z/eeGzyB
shl proof --> https://alive2.llvm.org/ce/z/dpvbkq
Commit: 6960bf556c3eb7e3fcd5da3de28f55310bea341e
https://github.com/llvm/llvm-project/commit/6960bf556c3eb7e3fcd5da3de28f55310bea341e
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
R .github/workflows/llvm-project-tests.yml
R .github/workflows/llvm-project-workflow-tests.yml
Log Message:
-----------
[Github] Drop llvm-project-tests
All users of this have been claned up so we can now drop it fully.
Reviewers: cmtice, tstellar
Reviewed By: cmtice
Pull Request: https://github.com/llvm/llvm-project/pull/153877
Commit: 99829573cc8460782e4f10713ef24d5af9f82036
https://github.com/llvm/llvm-project/commit/99829573cc8460782e4f10713ef24d5af9f82036
Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M clang/lib/Parse/ParseDecl.cpp
Log Message:
-----------
[Clang][Webassembly] Remove unrachable code in ParseTypeQualifierListOpt (#153729)
Static analysis flagged this goto as unreachable and indeed it is, so
removing it.
Commit: 7f27482a32180def47c71f490501ea0e560bfa9f
https://github.com/llvm/llvm-project/commit/7f27482a32180def47c71f490501ea0e560bfa9f
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-constants.ll
Log Message:
-----------
[AMDGPU][LowerBufferFatPointers] Fix lack of rewrite when loading/storing null (#154128)
Fixes #154056.
The fat buffer lowering pass was erroniously detecting that it did not
need to run on functions that only load/store to the null constant (or
other such constants). We thought this would be covered by specializing
constants out to instructions, but that doesn't account foc trivial
constants like null. Therefore, we check the operands of instructions
for buffer fat pointers in order to find such constants and ensure the
pass runs.
---------
Co-authored-by: Nikita Popov <github at npopov.com>
Commit: 350f4a3e3b0ebd9695f9c2194db5fd86ff551489
https://github.com/llvm/llvm-project/commit/350f4a3e3b0ebd9695f9c2194db5fd86ff551489
Author: LauraElanorJones <laura.elanor.jones at gmail.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/test/API/python_api/value/TestValueAPI.py
M lldb/utils/lui/lldbutil.py
Log Message:
-----------
Decent to Descent (#154040)
[lldb] Rename RecursiveDecentFormatter to RecursiveDescentFormatter (NFC)
Commit: 58de8f2c25291549dc1cabe364d399e564bca042
https://github.com/llvm/llvm-project/commit/58de8f2c25291549dc1cabe364d399e564bca042
Author: Justin Fargnoli <jfargnoli at nvidia.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Analysis/InlineCost.cpp
A llvm/test/Transforms/Inline/inline-all-viable-calls.ll
Log Message:
-----------
[Inliner] Add option (default off) to inline all calls regardless of the cost (#152365)
Add a default off option to the inline cost calculation to always inline
all viable calls regardless of the cost/benefit and cost/threshold
calculations.
For performance reasons, some users require that all calls be inlined.
Rather than forcing them to adjust the inlining threshold to an
arbitrarily high value, offer an option to inline all calls.
Commit: 7e8ff2afa9ddfe1d7c42bb58cc9523006c34396b
https://github.com/llvm/llvm-project/commit/7e8ff2afa9ddfe1d7c42bb58cc9523006c34396b
Author: Shaoce SUN <sunshaoce at outlook.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
M llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll
M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/fp-constant.mir
Log Message:
-----------
[RISCV][GISel] Optimize +0.0 to use fcvt.d.w for s64 on rv32 (#153978)
Resolve the TODO: on RV32, when constructing the double-precision
constant `+0.0` for `s64`, `BuildPairF64Pseudo` can be optimized to use
the `fcvt.d.w` instruction to generate the result directly.
Commit: d49aab10bd424f67a0df0d70f653f8deeb498a16
https://github.com/llvm/llvm-project/commit/d49aab10bd424f67a0df0d70f653f8deeb498a16
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.32bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-llvm-debuginfo-analyzer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
M llvm/test/CodeGen/AMDGPU/clamp-modifier.ll
M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fold-int-pow2-with-fmul-or-fdiv.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/function-args.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
M llvm/test/CodeGen/AMDGPU/mad.u16.ll
M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-add.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
Log Message:
-----------
Revert "[AMDGPU][True16][CodeGen] use vgpr16 for zext patterns (#1538… (#154163)
This reverts commit 7c53c6162bd43d952546a3ef7d019babd5244c29.
This patch hit an issue in hip test. revert and will reopen later
Commit: 8d256733a05ceeda8b854cc7665724c425236673
https://github.com/llvm/llvm-project/commit/8d256733a05ceeda8b854cc7665724c425236673
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port #151175: VectorFromElementsLowering (#154169)
Commit: 064f02dac0c81c19350a74415b3245f42fed09dc
https://github.com/llvm/llvm-project/commit/064f02dac0c81c19350a74415b3245f42fed09dc
Author: Kyle Wang <ec1wng at gmail.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
A llvm/test/Transforms/VectorCombine/alias.ll
Log Message:
-----------
[VectorCombine] Preserve scoped alias metadata (#153714)
Right now if a load op is scalarized, the `!alias.scope` and `!noalias`
metadata are dropped. This PR is to keep them if exist.
Commit: ade755d62b70eae9dfc460f19f0da7ab80e9a1fd
https://github.com/llvm/llvm-project/commit/ade755d62b70eae9dfc460f19f0da7ab80e9a1fd
Author: Thurston Dang <thurston at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512bw-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512bw-intrinsics.ll
Log Message:
-----------
[msan] Add Instrumentation for Avx512 Instructions: pmaddw, pmaddubs (#153919)
This applies the pmadd handler (recently improved in https://github.com/llvm/llvm-project/pull/153353) to the Avx512
equivalent of the pmaddw and pmaddubs intrinsics:
<16 x i32> @llvm.x86.avx512.pmaddw.d.512(<32 x i16>, <32 x i16>)
<32 x i16> @llvm.x86.avx512.pmaddubs.w.512(<64 x i8>, <64 x i8>)
Commit: 0fb1057e40110e558e0fef8e183e485c4d01311b
https://github.com/llvm/llvm-project/commit/0fb1057e40110e558e0fef8e183e485c4d01311b
Author: Steven Perron <stevenperron at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.h
M llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
A llvm/test/CodeGen/SPIRV/extensions/enable-all-extensions-avoid-invalid.ll
Log Message:
-----------
[SPIRV] Filter disallowed extensions for env (#150051)
Not all SPIR-V extensions are allows in every environment. When we use
the `-spirv-ext=all` option, the backend currently believes that all
extensions can be used.
This commit filters out the extensions on the command line to remove
those that are not known to be allowed for the current environment.
Alternatives considered: I considered modifying the
SPIRVExtensionsParser::parse to use a different list of extensions for
"all" depending on the target triple. However that does not work because
the target triple is not available, and cannot be made available in a
reasonable way.
Fixes #147717
---------
Co-authored-by: Victor Lomuller <victor at codeplay.com>
Commit: 8429f7faaa5c5afdece49be04bc5720d5110b6d1
https://github.com/llvm/llvm-project/commit/8429f7faaa5c5afdece49be04bc5720d5110b6d1
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
A flang/test/Lower/OpenMP/Todo/dyn-groupprivate-clause.f90
A flang/test/Parser/OpenMP/dyn-groupprivate-clause.f90
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Parsing support for DYN_GROUPPRIVATE (#153615)
This does not perform semantic checks or lowering.
Commit: 43df97a909fbb0ebc8416b9faa88de21447fc3fe
https://github.com/llvm/llvm-project/commit/43df97a909fbb0ebc8416b9faa88de21447fc3fe
Author: Matthias Braun <matze at braunis.de>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/tools/llvm-profgen/CSPreInliner.h
M llvm/tools/llvm-profgen/ErrorHandling.h
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/PerfReader.h
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
M llvm/tools/llvm-profgen/llvm-profgen.cpp
Log Message:
-----------
llvm-profgen: Avoid "using namespace" in headers (#147631)
Avoid global `using namespace` directives in headers as they are bad
style.
Commit: 549d7c4f35a99598a269004ee13b237d2565b5ec
https://github.com/llvm/llvm-project/commit/549d7c4f35a99598a269004ee13b237d2565b5ec
Author: Trevor Gross <tmgross at umich.edu>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/test/CodeGen/Generic/half.ll
M llvm/test/CodeGen/SPARC/fp16-promote.ll
M llvm/test/CodeGen/SPARC/half.ll
M llvm/test/CodeGen/SPARC/llvm.sincos.ll
Log Message:
-----------
[SPARC] Change `half` to use soft promotion rather than `PromoteFloat` (#152727)
`half` currently uses the default legalization of promoting to a `f32`;
however, this implementation implements math in a way that results in
incorrect rounding. Switch to the soft promote implementation, which
does not have this problem.
The SPARC ABI does not specify a `_Float16` type, so there is no concern
with keeping interface compatibility.
Fixes the SPARC part of
https://github.com/llvm/llvm-project/issues/97975
Fixes the SPARC part of
https://github.com/llvm/llvm-project/issues/97981
Commit: 4b94c08a57b2b026aa434ef69823d579d56cfbda
https://github.com/llvm/llvm-project/commit/4b94c08a57b2b026aa434ef69823d579d56cfbda
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M lldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py
Log Message:
-----------
[lldb] Relax the error message in TestProcessCrashInfo.py (#153653)
The error message has been updated in macOS 26. Relax the error message
to check the more generic "BUG IN CLIENT OF LIBMALLOC" rather than the
error message that comes after.
Commit: d30fd562e8a45c90e8b256890100442b61e0dac8
https://github.com/llvm/llvm-project/commit/d30fd562e8a45c90e8b256890100442b61e0dac8
Author: Utkarsh Saxena <usx at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M clang/test/Analysis/LifetimeSafety/benchmark.py
Log Message:
-----------
[LifetimeSafety] Enhance benchmark script for new sub analyses (#149577)
Enhanced the lifetime safety analysis benchmark script with more
detailed performance metrics and a new nested loop test case. This is a
worst case for loan expiry analysis.
### What changed?
- Added a new test case `nested_loops` that generates code with N levels
of nested loops to test how analysis performance scales with loop
nesting depth
- Improved the trace file analysis to extract durations for sub-phases
of the lifetime analysis (FactGenerator, LoanPropagation, ExpiredLoans)
- Enhanced the markdown report generation to include:
- Relative timing results as percentages of total Clang time
- More detailed complexity analysis for each analysis phase
Report
# Lifetime Analysis Performance Report
> Generated on: 2025-08-18 13:29:57
---
## Test Case: Pointer Cycle in Loop
**Timing Results:**
| N (Input Size) | Total Time | Analysis Time (%) | Fact Generator (%) |
Loan Propagation (%) | Expired Loans (%) |
|:---------------|-----------:|------------------:|-------------------:|---------------------:|------------------:|
| 10 | 10.75 ms | 24.61% | 0.00% | 24.38% | 0.00% |
| 25 | 64.98 ms | 86.08% | 0.00% | 86.02% | 0.00% |
| 50 | 709.37 ms | 98.53% | 0.00% | 98.51% | 0.00% |
| 75 | 3.13 s | 99.63% | 0.00% | 99.63% | 0.00% |
| 100 | 9.44 s | 99.85% | 0.00% | 99.84% | 0.00% |
| 150 | 45.31 s | 99.96% | 0.00% | 99.96% | 0.00% |
**Complexity Analysis:**
| Analysis Phase | Complexity O(n<sup>k</sup>) |
|:------------------|:--------------------------|
| Total Analysis | O(n<sup>3.87</sup> ± 0.01) |
| FactGenerator | (Negligible) |
| LoanPropagation | O(n<sup>3.87</sup> ± 0.01) |
| ExpiredLoans | (Negligible) |
---
## Test Case: CFG Merges
**Timing Results:**
| N (Input Size) | Total Time | Analysis Time (%) | Fact Generator (%) |
Loan Propagation (%) | Expired Loans (%) |
|:---------------|-----------:|------------------:|-------------------:|---------------------:|------------------:|
| 10 | 8.54 ms | 0.00% | 0.00% | 0.00% | 0.00% |
| 50 | 40.85 ms | 65.09% | 0.00% | 64.61% | 0.00% |
| 100 | 207.70 ms | 93.58% | 0.00% | 93.46% | 0.00% |
| 200 | 1.54 s | 98.82% | 0.00% | 98.78% | 0.00% |
| 400 | 12.04 s | 99.72% | 0.00% | 99.71% | 0.01% |
| 800 | 96.73 s | 99.94% | 0.00% | 99.94% | 0.00% |
**Complexity Analysis:**
| Analysis Phase | Complexity O(n<sup>k</sup>) |
|:------------------|:--------------------------|
| Total Analysis | O(n<sup>3.01</sup> ± 0.00) |
| FactGenerator | (Negligible) |
| LoanPropagation | O(n<sup>3.01</sup> ± 0.00) |
| ExpiredLoans | (Negligible) |
---
## Test Case: Deeply Nested Loops
**Timing Results:**
| N (Input Size) | Total Time | Analysis Time (%) | Fact Generator (%) |
Loan Propagation (%) | Expired Loans (%) |
|:---------------|-----------:|------------------:|-------------------:|---------------------:|------------------:|
| 10 | 8.25 ms | 0.00% | 0.00% | 0.00% | 0.00% |
| 50 | 27.25 ms | 51.87% | 0.00% | 45.71% | 5.93% |
| 100 | 113.42 ms | 82.48% | 0.00% | 72.74% | 9.62% |
| 200 | 730.05 ms | 95.24% | 0.00% | 83.95% | 11.25% |
| 400 | 5.40 s | 98.74% | 0.01% | 87.05% | 11.68% |
| 800 | 41.86 s | 99.62% | 0.00% | 87.77% | 11.84% |
**Complexity Analysis:**
| Analysis Phase | Complexity O(n<sup>k</sup>) |
|:------------------|:--------------------------|
| Total Analysis | O(n<sup>2.97</sup> ± 0.00) |
| FactGenerator | (Negligible) |
| LoanPropagation | O(n<sup>2.96</sup> ± 0.00) |
| ExpiredLoans | O(n<sup>2.97</sup> ± 0.00) |
---
Commit: 1bb72170501b95afd8124c4026bf927385be9b47
https://github.com/llvm/llvm-project/commit/1bb72170501b95afd8124c4026bf927385be9b47
Author: Usama Hameed <u_hameed at apple.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cpp
Log Message:
-----------
[Sanitizers][Darwin][Test] The top few frames are inaccurate in UBSan. (#153899)
XFailing until further investigation
rdar://158303080
Commit: e7c2c80fa16644b8c4e47c75caffaea8bc20a30d
https://github.com/llvm/llvm-project/commit/e7c2c80fa16644b8c4e47c75caffaea8bc20a30d
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.prng.ll
Log Message:
-----------
[AMDGPU] Combine prng(undef) -> undef (#154160)
Commit: 3d6177c14b4dca7412d929ef364196a98403ef01
https://github.com/llvm/llvm-project/commit/3d6177c14b4dca7412d929ef364196a98403ef01
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
Log Message:
-----------
[AMDGPU] Avoid setting op_sel_hi bits if there is matrix_b_scale. NFCI. (#154176)
This is NFCI now as there is no matrix_b_scale without matrix_b_reuse,
but technically this condition shall be here.
Commit: 986d7aa675e957e0160aeb2f045a6abf1bf2082e
https://github.com/llvm/llvm-project/commit/986d7aa675e957e0160aeb2f045a6abf1bf2082e
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M lldb/unittests/ProtocolServer/ProtocolMCPServerTest.cpp
Log Message:
-----------
Bump ProtocolServerMCPTest timeout to 200ms (#154182)
This should reduce flakes observed in the Fuchsia AArch64 Linux LLDB CI
builders.
Commit: 9403c2d64d63c16a09739d943eaa22b8e3499b7a
https://github.com/llvm/llvm-project/commit/9403c2d64d63c16a09739d943eaa22b8e3499b7a
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Lex/DependencyDirectivesScanner.h
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/Driver.cpp
M clang/lib/Lex/DependencyDirectivesScanner.cpp
A clang/test/Driver/modules-driver-cxx20-module-usage-scanner.cpp
Log Message:
-----------
Reland [clang][modules-driver] Add scanner to detect C++20 module presence (#153497)
This patch is part of a series to support driver managed module builds
for C++ named modules and Clang modules.
This introduces a scanner that detects C++ named module usage early in
the driver with only negligible overhead.
For now, it is enabled only with the `-fmodules-driver` flag and serves
solely diagnostic purposes. In the future, the scanner will be enabled
for any (modules-driver compatible) compilation with two or more inputs,
and will help the driver determine whether to implicitly enable the
modules driver.
Since the scanner adds very little overhead, we are also exploring
enabling it for compilations with only a single input. This approach
could allow us to detect `import std` usage in a single-file
compilation, which would then activate the modules driver. For
performance measurements on this, see
https://github.com/naveen-seth/llvm-dev-cxx-modules-check-benchmark.
RFC for driver managed module builds:
https://discourse.llvm.org/t/rfc-modules-support-simple-c-20-modules-use-from-the-clang-driver-without-a-build-system
This patch relands the reland (2d31fc8) for commit ded1426. The earlier
reland failed due to a missing link dependency on `clangLex`. This
reland fixes the issue by adding the link dependency after discussing it
in the following RFC:
https://discourse.llvm.org/t/rfc-driver-link-the-driver-against-clangdependencyscanning-clangast-clangfrontend-clangserialization-and-clanglex
Commit: 2ac7fe0c720d66efd34364b1dc883e60ef4c6f04
https://github.com/llvm/llvm-project/commit/2ac7fe0c720d66efd34364b1dc883e60ef4c6f04
Author: Steven Wu <stevenwu at apple.com>
Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths:
R .github/workflows/llvm-project-tests.yml
R .github/workflows/llvm-project-workflow-tests.yml
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Options.td
M clang/include/clang/Lex/DependencyDirectivesScanner.h
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/Driver.cpp
M clang/lib/Lex/DependencyDirectivesScanner.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/test/Analysis/LifetimeSafety/benchmark.py
A clang/test/Driver/modules-driver-cxx20-module-usage-scanner.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cpp
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
A flang/test/Lower/OpenMP/Todo/dyn-groupprivate-clause.f90
A flang/test/Parser/OpenMP/dyn-groupprivate-clause.f90
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/test/API/functionalities/process_crash_info/TestProcessCrashInfo.py
M lldb/test/API/python_api/value/TestValueAPI.py
M lldb/unittests/ProtocolServer/ProtocolMCPServerTest.cpp
M lldb/utils/lui/lldbutil.py
M llvm/CMakeLists.txt
M llvm/include/llvm/CAS/MappedFileRegionBumpPtr.h
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Analysis/DemandedBits.cpp
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.h
M llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
A llvm/test/Analysis/DemandedBits/ashr.ll
A llvm/test/Analysis/DemandedBits/lshr.ll
M llvm/test/Analysis/DemandedBits/shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.32bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-llvm-debuginfo-analyzer.ll
M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
M llvm/test/CodeGen/AMDGPU/clamp-modifier.ll
M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fold-int-pow2-with-fmul-or-fdiv.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/function-args.ll
M llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/global-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/idot4u.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.prng.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/local-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-constants.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
M llvm/test/CodeGen/AMDGPU/mad.u16.ll
M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-add.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
M llvm/test/CodeGen/Generic/half.ll
M llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll
M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/fp-constant.mir
M llvm/test/CodeGen/SPARC/fp16-promote.ll
M llvm/test/CodeGen/SPARC/half.ll
M llvm/test/CodeGen/SPARC/llvm.sincos.ll
A llvm/test/CodeGen/SPIRV/extensions/enable-all-extensions-avoid-invalid.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512bw-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512bw-intrinsics.ll
A llvm/test/Transforms/Inline/inline-all-viable-calls.ll
M llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-different-insert-position.ll
M llvm/test/Transforms/LoopVectorize/interleaved-accesses-gep-nowrap-flags.ll
A llvm/test/Transforms/VectorCombine/alias.ll
M llvm/tools/llvm-profgen/CSPreInliner.h
M llvm/tools/llvm-profgen/ErrorHandling.h
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/PerfReader.h
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
M llvm/tools/llvm-profgen/llvm-profgen.cpp
M llvm/unittests/CAS/ProgramTest.cpp
M mlir/include/mlir/Dialect/Vector/TransformOps/VectorTransformOps.td
M mlir/include/mlir/Dialect/Vector/Transforms/LoweringPatterns.h
M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
M mlir/lib/Dialect/Vector/TransformOps/VectorTransformOps.cpp
M mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
A mlir/lib/Dialect/Vector/Transforms/LowerVectorFromElements.cpp
M mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp
M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
A mlir/test/Dialect/Vector/vector-from-elements-lowering.mlir
M mlir/test/Dialect/Vector/vector-gather-lowering.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
M mlir/test/python/dialects/transform_vector_ext.py
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
try fix windows again
Created using spr 1.3.6
Compare: https://github.com/llvm/llvm-project/compare/9b7be348634f...2ac7fe0c720d
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