LLVM/project 912ed5aclang/include/clang/CIR/Interfaces ASTAttrInterfaces.td ASTAttrInterfaces.h, clang/lib/CIR/Interfaces ASTAttrInterfaces.cpp CMakeLists.txt

[CIR] Add ASTVarDeclInterface for AST attribute access

Add the ASTVarDeclInterface which provides methods to access clang AST
VarDecl information from CIR attributes. This interface enables:
- mangleStaticGuardVariable: Mangle guard variable names using clang's
  MangleContext
- isLocalVarDecl: Check if a variable is function-local
- getTLSKind: Get thread-local storage kind
- isInline: Check if the variable is inline
- getTemplateSpecializationKind: Get template specialization info
- getVarDecl: Direct access to the underlying VarDecl pointer

This infrastructure is needed for proper handling of static local
variables with guard variables in LoweringPrepare.
DeltaFile
+51-0clang/include/clang/CIR/Interfaces/ASTAttrInterfaces.td
+22-0clang/include/clang/CIR/Interfaces/ASTAttrInterfaces.h
+21-0clang/lib/CIR/Interfaces/ASTAttrInterfaces.cpp
+9-0clang/include/clang/CIR/Interfaces/CMakeLists.txt
+2-0clang/lib/CIR/Interfaces/CMakeLists.txt
+105-05 files

LLVM/project d766461lldb/source/Plugins/Highlighter/TreeSitter CMakeLists.txt

Fix bogus component
DeltaFile
+0-1lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt
+0-11 files

LLVM/project c14b57eclang/lib/CodeGen CGExpr.cpp, clang/test/CodeGenCXX cxx2a-consteval.cpp template-cxx20.cpp

[clang] CodeGen: fix ConstantExpr LValue emission

This fixes a regression introduced in #161029, though not the fault of that
patch, only by incidental changes regarding the preservation of constant expression
nodes.

The LValue emission of ConstantExpr was doing strange things with regards to
what type corresponds to the result of the constant expression, which are not
justified by any tests or in the discussions of the relevant patches.

See
https://github.com/llvm/llvm-project/commit/09669e6c5fa1e8db9c1091cc264640fb0377d6b6
and https://github.com/llvm/llvm-project/pull/78041 and
https://github.com/llvm/llvm-project/commit/51e4aa87e05c45bebf9658a47980b1934c88be31

This simplifies it to just use the expression type.

Since this regression was never released, there are no release notes.

Fixes #177807
DeltaFile
+25-2clang/test/CodeGenCXX/cxx2a-consteval.cpp
+2-12clang/lib/CodeGen/CGExpr.cpp
+12-1clang/test/CodeGenCXX/template-cxx20.cpp
+39-153 files

LLVM/project 3a08e2alldb/cmake/modules FindTreeSitter.cmake LLDBConfig.cmake, lldb/source/Plugins/Highlighter CMakeLists.txt

[lldb] Add tree-sitter based syntax highlighting

This adds the necessary infrastructure to use tree-sitter for syntax
highlighting in LLDB. It provides the base class for a tree-sitter
highlighter plugin. Its primary function is interfacing with the
tree-sitter library, and converting captures to highlighting styles.

Adding a new tree-sitter highlighter consists of creating an LLDB plugin
that inherits from this class. The plugin has two core responsibilities:

1. Loading the tree-sitter grammar.
2. Specifying the tree-sitter syntax highlighting query.

Everything else is handled by the base class, making it extremely easy
to add a new language.

For more context and the motivation behind using tree-sitter for syntax
highlighting, see #170250.
DeltaFile
+231-0lldb/source/Plugins/Highlighter/TreeSitter/TreeSitterHighlighter.cpp
+77-0lldb/source/Plugins/Highlighter/TreeSitter/TreeSitterHighlighter.h
+18-0lldb/cmake/modules/FindTreeSitter.cmake
+10-0lldb/source/Plugins/Highlighter/TreeSitter/CMakeLists.txt
+3-0lldb/source/Plugins/Highlighter/CMakeLists.txt
+1-0lldb/cmake/modules/LLDBConfig.cmake
+340-06 files

LLVM/project bb716c7llvm/utils/gn/secondary/clang/lib/Driver BUILD.gn, llvm/utils/gn/secondary/clang/lib/Frontend BUILD.gn

gn build: Port d090311aa7df

e60a69ab8a9e created a dependency on clangFrontend from clangDriver.
This broke the build of clang-offload-bundler because it only depends
on Driver (and only in debug builds, probably because the dependency was
dead code in clang-offload-bundler). Add the dependency to fix the build,
which also ports d090311aa7df from CMake.
DeltaFile
+1-0llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
+0-1llvm/utils/gn/secondary/clang/lib/Frontend/BUILD.gn
+1-12 files

LLVM/project ef0386ellvm/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy BUILD.gn

[gn build] Port e66574702479
DeltaFile
+1-0llvm/utils/gn/secondary/clang-tools-extra/unittests/clang-tidy/BUILD.gn
+1-01 files

LLVM/project 968b544llvm/utils/gn/secondary/clang/lib/Analysis/Scalable BUILD.gn

[gn build] Port a1c4c1de0519
DeltaFile
+0-2llvm/utils/gn/secondary/clang/lib/Analysis/Scalable/BUILD.gn
+0-21 files

LLVM/project 0d5eebcllvm/utils/gn/secondary/llvm/unittests/CAS BUILD.gn

[gn build] Port 382697a6f0c1
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/CAS/BUILD.gn
+1-01 files

LLVM/project 77efa4allvm/lib/Target/RISCV RISCVSchedSiFive7.td, llvm/test/tools/llvm-mca/RISCV/SiFive7 vector-fp.s vmv.s

[RISCV][NFC] Simplify the vector pipe names in SiFive7 sched model (#181268)

Instead of creating a `VA` for single vector pipe configuration (e.g.
X280) and `VA1` + `VA2` for dual vector pipes ones (e.g. X390), we could
have just use `VA1` in the former case to simplify the related name
aliases.

NFC.
DeltaFile
+1,560-1,560llvm/test/tools/llvm-mca/RISCV/SiFive7/vector-fp.s
+122-122llvm/test/tools/llvm-mca/RISCV/SiFive7/vmv.s
+68-68llvm/test/tools/llvm-mca/RISCV/SiFive7/vrgather-vcompress.s
+26-26llvm/test/tools/llvm-mca/RISCV/SiFive7/mask.s
+14-18llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
+15-15llvm/test/tools/llvm-mca/RISCV/SiFive7/instruction-tables-tests.s
+1,805-1,8095 files not shown
+1,834-1,83811 files

LLVM/project d55219bllvm/utils/gn/secondary/lldb/source/Plugins/Highlighter/Clang BUILD.gn, llvm/utils/gn/secondary/lldb/source/Plugins/Highlighter/Default BUILD.gn

[gn] port 5e2518f2cc54de7 (lldb highlight plugins)

The GN build doesn't have unittests for lldb, so nothing depends
on these new targets. But it at least gets the build building again.
DeltaFile
+0-13llvm/utils/gn/secondary/lldb/source/Plugins/Language/ClangCommon/BUILD.gn
+13-0llvm/utils/gn/secondary/lldb/source/Plugins/Highlighter/Clang/BUILD.gn
+13-0llvm/utils/gn/secondary/lldb/source/Plugins/Highlighter/Default/BUILD.gn
+0-1llvm/utils/gn/secondary/lldb/source/Plugins/REPL/Clang/BUILD.gn
+0-1llvm/utils/gn/secondary/lldb/source/Plugins/Language/CPlusPlus/BUILD.gn
+0-1llvm/utils/gn/secondary/lldb/source/Plugins/Language/ObjC/BUILD.gn
+26-161 files not shown
+26-177 files

LLVM/project 90cc8c0mlir/include/mlir/Dialect/Linalg/IR LinalgInterfaces.h, mlir/lib/Dialect/Linalg/IR LinalgInterfaces.cpp

Revert "[mlir][linalg] Make conv dim inference return pairing (outputImage, filterLoop)" (#181272)

Reverts llvm/llvm-project#180859

Brakes buildbots:
https://lab.llvm.org/buildbot/#/builders/24/builds/17467
https://lab.llvm.org/buildbot/#/builders/52/builds/14978
DeltaFile
+0-173mlir/unittests/Dialect/Linalg/InferConvolutionDimsTest.cpp
+10-26mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp
+0-11mlir/unittests/Dialect/Linalg/CMakeLists.txt
+2-6mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.h
+0-1mlir/unittests/Dialect/CMakeLists.txt
+12-2175 files

LLVM/project d58edabclang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenDeclCXX.cpp CIRGenDecl.cpp

[CIR] Add CIRGen support for static local variables with non-constant initializers

This adds CIRGen infrastructure for C++ function-local static variables
that require guarded initialization (Itanium C++ ABI).

Changes:
- Add ASTVarDeclAttr to carry VarDecl AST through the pipeline
- Add emitGuardedInit() to CIRGenCXXABI for guarded initialization
- Add emitCXXGuardedInit() to CIRGenFunction
- Replace NYI in addInitializerToStaticVarDecl() with ctor region emission
- Set static_local attribute on GlobalOp and GetGlobalOp

The global's ctor region contains the initialization code, which will be
lowered by LoweringPrepare to emit the actual guard variable pattern with
__cxa_guard_acquire/__cxa_guard_release calls.
DeltaFile
+41-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+30-0clang/test/CIR/CodeGen/static-local.cpp
+18-0clang/lib/CIR/CodeGen/CIRGenDeclCXX.cpp
+14-3clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+3-2clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+111-57 files not shown
+124-1013 files

LLVM/project a3d8e35libc/src/__support/FPUtil/generic add_sub.h, libc/test/src/math/smoke AddTest.h SubTest.h

[libc][math] Fix result sign logic in fputil::generic::add_or_sub (#181231)

Fixes #181121.
DeltaFile
+16-2libc/test/src/math/smoke/AddTest.h
+16-2libc/test/src/math/smoke/SubTest.h
+3-4libc/src/__support/FPUtil/generic/add_sub.h
+35-83 files

LLVM/project 7487c75clang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGenOpenCL builtins-amdgcn-gfx1250-wmma-w32.cl .gdb_history

[AMDGPU] Change 9 SWMMAC builtins to use 64-bit index (#181246)

There 9 gfx1250 instructions have 64-bit packed index:

- v_swmmac_f16_16x16x128_bf8_bf8
- v_swmmac_f16_16x16x128_bf8_fp8
- v_swmmac_f16_16x16x128_fp8_bf8
- v_swmmac_f16_16x16x128_fp8_fp8
- v_swmmac_f32_16x16x128_bf8_bf8
- v_swmmac_f32_16x16x128_bf8_fp8
- v_swmmac_f32_16x16x128_fp8_bf8
- v_swmmac_f32_16x16x128_fp8_fp8
- v_swmmac_i32_16x16x128_iu8

Intrinsics accept anyint, but builtins are defined with i32 argument.

Fixes: SWDEV-579843
DeltaFile
+245-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.index.gfx1250.w32.ll
+21-20clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-wmma-w32.cl
+9-9clang/include/clang/Basic/BuiltinsAMDGPU.td
+12-4llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+11-0clang/test/CodeGenOpenCL/.gdb_history
+8-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+306-356 files

LLVM/project ac974fdllvm/test/Transforms/IndVarSimplify unreachable-exit.ll

[NFC] [IndVars] fix typo in test (#181262)

DeltaFile
+4-4llvm/test/Transforms/IndVarSimplify/unreachable-exit.ll
+4-41 files

LLVM/project c6f2471llvm/test/CodeGen/RISCV/rvv fixed-vectors-fp-setcc.ll setcc-fp.ll

[RISCV] Fix ordering of CHECK prefixes in some tests to mitigate UTC bug. NFCI (#181259)

This patch fixes the exact same problem as #173125 . Where certain order
of CHECK prefixes will somehow causing UTC to incorrectly (re)generate
surplus check lines and failed the tests.
DeltaFile
+2-2llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll
+2-2llvm/test/CodeGen/RISCV/rvv/setcc-fp.ll
+4-42 files

LLVM/project e771558mlir/include/mlir/Dialect/Tensor/Transforms Transforms.h, mlir/lib/Dialect/Tensor/Transforms ReshapePatterns.cpp

[mlir][tensor]-Handle Dynamic Offset in BubbleUpSliceOpThroughCollapse (#178921)

This patch extends the `BubbleUpExtractSliceThroughCollapseShape`
pattern to handle cases where `tensor.extract_slice` has a dynamic
offset.

During tile and fuse transformations, it is common to encounter IR where
`tensor.extract_slice` operations appear after `tensor.collapse_shape`.
These patterns are used as cleanup transformations to canonicalize the
IR by bubbling up the slice operation before the reshape. This enables
further optimizations and simplifications downstream.

Previously, the pattern only handled:
  1. Static offsets and sizes.
  2. Dynamic sizes with a single non-unit expanded dimension.

This left a gap for additional common cases where we may have:
 - Dynamic offsets with size == 1 (single element extraction).
 - Size greater than 1 but the offset is computed dynamically.

    [23 lines not shown]
DeltaFile
+193-103mlir/lib/Dialect/Tensor/Transforms/ReshapePatterns.cpp
+205-9mlir/test/Dialect/Tensor/bubble-up-extract-slice-op.mlir
+2-2mlir/include/mlir/Dialect/Tensor/Transforms/Transforms.h
+400-1143 files

LLVM/project 6c0e1a3llvm/test/Transforms/IndVarSimplify unreachable-exit.ll

nit

Created using spr 1.3.7
DeltaFile
+8-8llvm/test/Transforms/IndVarSimplify/unreachable-exit.ll
+8-81 files

LLVM/project 382697allvm/lib/CAS OnDiskCAS.cpp ObjectStore.cpp, llvm/unittests/CAS OnDiskCommonUtils.cpp OnDiskGraphDBTest.cpp

[llvm/CAS] Add file-based APIs to `ObjectStore` (#180657)

Also add optimized implementations for `OnDiskCAS` that can take
advantage of file cloning.
DeltaFile
+77-0llvm/unittests/CAS/OnDiskCommonUtils.cpp
+2-62llvm/unittests/CAS/OnDiskGraphDBTest.cpp
+58-0llvm/lib/CAS/OnDiskCAS.cpp
+44-0llvm/lib/CAS/ObjectStore.cpp
+43-0llvm/unittests/CAS/ObjectStoreTest.cpp
+10-31llvm/lib/CAS/OnDiskGraphDB.cpp
+234-935 files not shown
+326-9311 files

LLVM/project fc4cac3llvm/test/Transforms/IndVarSimplify unreachable-exit.ll

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+4-4llvm/test/Transforms/IndVarSimplify/unreachable-exit.ll
+4-41 files

LLVM/project 0e785f0llvm/test/Transforms/IndVarSimplify unreachable-exit.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+89-4llvm/test/Transforms/IndVarSimplify/unreachable-exit.ll
+89-41 files

LLVM/project 22a3f7butils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel

[bazel] Fix after #181026 (#181260)

DeltaFile
+3-3utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+3-31 files

LLVM/project ef85b0cllvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize first-order-recurrence-tail-folding.ll first-order-recurrence.ll

[VPlan] Check scalar VF in removeRedundantCanonicalIVs.

When the plan has only a scalar VF, we never generate vectors for IVs,
so we can always perform the replacement.
DeltaFile
+12-15llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
+6-7llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
+4-5llvm/test/Transforms/LoopVectorize/strict-fadd-interleave-only.ll
+2-1llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+24-284 files

LLVM/project 449dfd4llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp

Removed shouldExpandPowerOf2DivRem, rebased, fixed conflicts
DeltaFile
+1,099-947llvm/test/CodeGen/AMDGPU/rem_i128.ll
+726-612llvm/test/CodeGen/AMDGPU/div_i128.ll
+138-51llvm/test/CodeGen/AMDGPU/wait-xcnt-atomic-rmw-optimization.ll
+9-27llvm/test/CodeGen/AMDGPU/select-phi-s16-fp.ll
+0-7llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+0-5llvm/include/llvm/CodeGen/TargetLowering.h
+1,972-1,6491 files not shown
+1,972-1,6517 files

LLVM/project 686fd7fclang/test/CodeGenCUDA fp-contract.cu

Fixed test, addressed comment.
DeltaFile
+5-5clang/test/CodeGenCUDA/fp-contract.cu
+5-51 files

LLVM/project a527a88llvm/test/CodeGen/AMDGPU memory-legalizer-private-wavefront.ll memory-legalizer-private-workgroup.ll

[AMDGPU] Disable generic DAG combines at -O0 to preserve debuggability.

Disable generic DAG combines for AMDGPU at -O0 via disableGenericCombines()
to preserve instructions that users may want to set breakpoints
on during debugging.

Since power-of-2 division/remainder for types > i64 was dependent on
DAG combine optimizations, added shouldExpandPowerOf2DivRem()
to request IR-level expansion for these cases at -O0.
DeltaFile
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-wavefront.ll
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-workgroup.ll
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
+8,449-1,355llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
+8,449-1,355llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+8,069-1,315llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+50,599-8,12370 files not shown
+189,659-24,55276 files

LLVM/project d0ff94f.github/workflows release-tasks.yml release-documentation.yml

workflows/release-documentation: Add release environment (#181063)

This way we can limit access to the secrets to the main and release
branches.

This is a partial re-commit of b6ee085068972a41f3b2735a9f7e3ca48eab0f00
DeltaFile
+0-4.github/workflows/release-tasks.yml
+1-0.github/workflows/release-documentation.yml
+1-42 files

LLVM/project 89217a5clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenDeclCXX.cpp CIRGenDecl.cpp

[CIR] Add CIRGen support for static local variables with non-constant initializers

This adds CIRGen infrastructure for C++ function-local static variables
that require guarded initialization (Itanium C++ ABI).

Changes:
- Add ASTVarDeclAttr to carry VarDecl AST through the pipeline
- Add emitGuardedInit() to CIRGenCXXABI for guarded initialization
- Add emitCXXGuardedInit() to CIRGenFunction
- Replace NYI in addInitializerToStaticVarDecl() with ctor region emission
- Set static_local attribute on GlobalOp and GetGlobalOp

The global's ctor region contains the initialization code, which will be
lowered by LoweringPrepare to emit the actual guard variable pattern with
__cxa_guard_acquire/__cxa_guard_release calls.
DeltaFile
+41-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+30-0clang/test/CIR/CodeGen/static-local.cpp
+18-0clang/lib/CIR/CodeGen/CIRGenDeclCXX.cpp
+15-3clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+3-2clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+112-57 files not shown
+125-1013 files

LLVM/project d4cac78clang/include module.modulemap

[clang] Mark `PrivateFieldNames.def` as textual header in module map (#181250)

When building with modules enabled (`LLVM_ENABLE_MODULES=ON`), the
module system attempts to transform the inclusion of
`PrivateFieldNames.def` into a module import. Since this `#include`
appears inside the `SerializationFormat` class definition (to generate
accessor methods via macros), the resulting module import violates C++
modules rules that imports must appear at file scope. The fix is to mark
`PrivateFieldNames.def` as a textual header in the `Clang_Analysis`
module to ensure the file is processed as a traditional textual include.

rdar://170257449
DeltaFile
+1-0clang/include/module.modulemap
+1-01 files

LLVM/project f952dbcllvm/test/Transforms/IndVarSimplify unreachable-exit.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+4-4llvm/test/Transforms/IndVarSimplify/unreachable-exit.ll
+4-41 files