LLVM/project 3b89e77compiler-rt/lib/sanitizer_common/symbolizer sanitizer_wrappers.cpp

[compiler-rt] [sanitizers] Add includes for symbolizer (#201929)

After ce5b2e876494cb95f02d9f915081e2b8781e74d1 this stopped building.
DeltaFile
+2-0compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
+2-01 files

LLVM/project 0bb7ad1clang/include/clang/ScalableStaticAnalysisFramework/Core/Model EntityLinkage.h, clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary TUSummaryExtractor.cpp

[SSAF] Let function parameters inherit linkage from their parent functions

SSAF treats parameters as entities and may not always associate them
back to their parent functions. Therefore, it needs to identify
parameters of functions with external linkage across different
TUs. Treating them as having no linkage (as in C++) causes the same
parameter in different TUs to be assigned different EntityIDs. As a
result, the behavior of the parameter across multiple TUs cannot be
correlated.

rdar://178844032
DeltaFile
+63-0clang/test/Analysis/Scalable/PointerFlow/external-inline-function-in-multi-tu.test
+42-0clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
+18-0clang/lib/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.cpp
+4-2clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/EntityLinkage.h
+127-24 files

LLVM/project de59f9ellvm/include/llvm/BinaryFormat DXContainer.h, llvm/include/llvm/ObjectYAML DXContainerYAML.h

[DirectX][ObjectYAML] Add SRCI part support (#199446)

Add support for DXContainer SRCI in the ObjectYAML pipeline so it can be
represented in structured YAML and round-tripped through
yaml2obj/obj2yaml.

SRCI is emitted into shader PDB files. It stores shader source code that
is displayed in PIX, and shader compilation flags.
DeltaFile
+324-4llvm/lib/Object/DXContainer.cpp
+243-0llvm/lib/MC/DXContainerInfo.cpp
+213-0llvm/unittests/Object/DXContainerTest.cpp
+185-0llvm/include/llvm/BinaryFormat/DXContainer.h
+179-0llvm/lib/ObjectYAML/DXContainerYAML.cpp
+151-0llvm/include/llvm/ObjectYAML/DXContainerYAML.h
+1,295-414 files not shown
+2,627-520 files

LLVM/project 3590131mlir/include/mlir/Dialect/SPIRV/IR SPIRVCLOps.td, mlir/test/Dialect/SPIRV/IR ocl-ops.mlir

[mlir][SPIR-V] Add OpenCL cbrt op (#201914)
DeltaFile
+21-0mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
+16-0mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
+2-0mlir/test/Target/SPIRV/ocl-ops.mlir
+39-03 files

LLVM/project afa1a62flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp

[flang][OpenMP][NFC] Share declare mapper helpers for iterator modifier lowering

Move mapper lookup and implicit default mapper creation into reusable
OpenMP lowering helpers so regular map lowering and iterator-generated
map entries can use the same resolution path.

This prepares Flang iterator modifier lowering for map and motion clauses
without changing the generated IR for existing non-iterator maps.
DeltaFile
+153-0flang/lib/Lower/OpenMP/Utils.cpp
+6-142flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+7-0flang/lib/Lower/OpenMP/Utils.h
+166-1423 files

LLVM/project 2c3b350flang/lib/Lower/OpenMP Utils.h

Add doxygen documentation to resolveMapperId
DeltaFile
+18-0flang/lib/Lower/OpenMP/Utils.h
+18-01 files

LLVM/project d2dc471llvm/lib/Target/AMDGPU AMDGPUBarrierLatency.cpp, llvm/test/CodeGen/AMDGPU ldsdmacnt_sched.mir

[AMDGPU] Do not always add latency between LDSDMA -> S_WAIT_LDSDMA

Change-Id: Ibeee5f7bfdeab730ebbc5a1724b716ca2ce0d335
DeltaFile
+351-0llvm/test/CodeGen/AMDGPU/ldsdmacnt_sched.mir
+74-0llvm/lib/Target/AMDGPU/AMDGPUBarrierLatency.cpp
+425-02 files

LLVM/project 276cc2fllvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/lib/Target/DirectX/DirectXIRPasses DXILDebugInfo.cpp

[DirectX] Rewrite DIGlobalVariableExpression to DXDIGlobalVariable (#199791)

DIGlobalVariable used to have an `expr` operand. Starting from
bceaaa964360 `expr` is now an operand of DIGlobalVariableExpression,
which references both the variable and the expression.

Before:
    !0 = !DIGlobalVariable(expr: !1)
    !1 = !DIExpression(DW_OP_plus, 4)

Now:
    !2 = !DIGlobalVariableExpression(var: !3, expr: !4)
!3 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false,
isDefinition: true, type: !6)
    !4 = !DIExpression(DW_OP_plus, 4)

DXIL does not support DIGlobalVariableExpression, so we have to fold
`expr` back to DIGlobalVariable.


    [2 lines not shown]
DeltaFile
+39-0llvm/test/CodeGen/DirectX/DebugInfo/di-globalvariable.ll
+36-0llvm/test/tools/dxil-dis/di-globalvariable.ll
+17-0llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
+1-1llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+93-14 files

LLVM/project 3e0046ccompiler-rt/lib/sanitizer_common/symbolizer sanitizer_wrappers.cpp

fix

Created using spr 1.3.7
DeltaFile
+1-0compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
+1-01 files

LLVM/project c3e9d05lld/MachO LTO.cpp, lld/test/MachO icf-safe-thunks.ll

[lld-macho][LTO] Emit `__llvm_addrsig` for `--icf=safe_thunks` (#188486)

LTO was emitting `__llvm_addrsig` metadata when `--icf=safe` was
specified, but not for `--icf=safe_thunks`. After the recent PR
https://github.com/llvm/llvm-project/pull/188400 that makes safe ICF
conservative without `__llvm_addrsig` (marking all symbols as
address-significant when the section is absent), this omission caused
safe_thunks to silently degrade for all LTO-compiled objects: every
symbol became `keepUnique`, preventing body folding entirely.

Fix this by also enabling `EmitAddrsig` when `icfLevel` is
`safe_thunks`. This allows the LTO backend to emit precise
address-significance metadata, so that only truly address-significant
functions get thunk treatment while non-address-significant identical
functions can still be body-folded.

Add a regression test that verifies LTO + `--icf=safe_thunks` correctly
body-folds non-address-significant identical functions, which would fail
without this fix due to missing addrsig metadata.
DeltaFile
+59-0lld/test/MachO/icf-safe-thunks.ll
+2-1lld/MachO/LTO.cpp
+61-12 files

LLVM/project 75db4ceclang/test/CodeGenCUDA increment-index-for-thunks.cu, clang/test/CodeGenCXX ptrauth-global-constant-initializers.cpp microsoft-abi-vtables-return-thunks.cpp

Restore unnamed_addr on vtables in -fno-rtti builds (#201846)

This is a follow-up to #200108 which dropped unnamed_addr from vtables
since it can break dynamic_cast under some circumstances. However, that
caused significant binary size regressions due to preventing ICF of
vtables.

This patch restores unnamed_addr on vtables in -fno-rtti builds, since
those do not support dynamic_cast, recovering the binary size savings at
least for those using that configuration.
DeltaFile
+10-10clang/test/CodeGenCXX/ptrauth-global-constant-initializers.cpp
+8-8clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
+8-8clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
+6-6clang/test/CodeGenCXX/dllimport.cpp
+6-6clang/test/CodeGenCUDA/increment-index-for-thunks.cu
+5-5clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
+43-4312 files not shown
+77-6518 files

LLVM/project 350a72bflang/lib/Semantics resolve-names.cpp, flang/test/Semantics/OpenMP declare-target-symbols.f90 declare-target08.f90

[flang][OpenMP] Implicit declarations of procedures in DECLARE_TARGET

This replaces commit 8f5df8891840b, since it was rejecting the following
case:
```
  function baz(a)
    !$omp declare target to(baz)
    real, intent(in) :: a
    baz = a
  end

  program main
    real :: a
    !$omp declare target(baz)
    integer, save :: baz        ! error: 'baz' is already declared
  end
```
Instead of flagging an error, the 'baz' in the directive should be
resolved to the explicitly declared variable.

    [24 lines not shown]
DeltaFile
+103-87flang/lib/Semantics/resolve-names.cpp
+35-0flang/test/Semantics/OpenMP/declare-target-symbols.f90
+4-4flang/test/Semantics/OpenMP/declare-target08.f90
+142-913 files

LLVM/project 0dcca55mlir/lib/Dialect/SPIRV/IR SPIRVDialect.cpp, mlir/test/Dialect/SPIRV/IR types.mlir

[mlir][SPIR-V] Validate float types in parseAndVerifyType (#201910)
DeltaFile
+16-0mlir/test/Dialect/SPIRV/IR/types.mlir
+6-1mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
+22-12 files

LLVM/project 6ffd9f8mlir/include/mlir/Dialect/SPIRV/IR SPIRVCLOps.td, mlir/test/Dialect/SPIRV/IR ocl-ops.mlir

[mlir][SPIR-V] Add OpenCL erfc op (#201906)
DeltaFile
+23-0mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
+16-0mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
+2-0mlir/test/Target/SPIRV/ocl-ops.mlir
+41-03 files

LLVM/project 1227b19llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

[SelectionDAG] Fix -Wunused-variable (#201932)

NumDstElts is only used in assertions so mark it [[maybe_unused]] to
prevent any issues with non-asserts builds and -Wunused-variable.
DeltaFile
+1-1llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-11 files

LLVM/project 07852a5llvm/lib/TargetParser RISCVISAInfo.cpp, llvm/unittests/TargetParser RISCVISAInfoTest.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1
DeltaFile
+188-12llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+64-18llvm/lib/TargetParser/RISCVISAInfo.cpp
+252-302 files

LLVM/project ca81b02compiler-rt/lib/sanitizer_common/symbolizer sanitizer_wrappers.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-0compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
+1-01 files

LLVM/project fa9e7b7llvm/lib/Target/AMDGPU SIOptimizeExecMasking.cpp, llvm/test/CodeGen/AMDGPU debug-independence-exec-masking.mir

AMDGPU: fix assert when calling LiveRegUnits::stepBackward (#201887)

`stepBackward` assert added in
https://github.com/llvm/llvm-project/pull/193104.
Found while building `aqlprofile` as part of TheRock.
DeltaFile
+27-0llvm/test/CodeGen/AMDGPU/debug-independence-exec-masking.mir
+2-1llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
+29-12 files

LLVM/project 6a8608eclang/test/Driver crash-diagnostics-tar.c

[clang] Disable crash-diagnostic-tar.c if backtraces are disabled (#201921)

PR #201643 adds a test that fails if backtraces are disabled, e.g. in
tests for a stripped build. This was failing the Fuchsia CI, so this
change disables this test in such cases. It is likely possible to make
this test finer-grained to allow it to succeed with backtraces disabled.
DeltaFile
+1-0clang/test/Driver/crash-diagnostics-tar.c
+1-01 files

LLVM/project ab9644aclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenExprComplex.cpp

[CIR] Update CIR unary operations (#201727)

This creates a floating-point-specific FNegOp and updates the type
constraints on the existing unary operations to match the types that are
actually produced by the Clang AST.

This change also moves complex types out of the unary operations. A
ComplexConjOp is added to handle what was previously being incorrectly
referred to as "not", while inc, dec, and minus are just expanded to
their component representation during codegen. We may want to consider
adding operations like cir.complex.add later, but for now I'm just
removing this type from the unary ops. I'm doing this for two reasons:
(1) the old use was inconsistent with how we handle other arithmetic
operations on complex types, and (2) I will soon need to attach
FP-specific attributes to add and subtract of complex types (and so also
inc and dec).

Assisted-by: Cursor / claude-opus-4.8
DeltaFile
+74-36clang/test/CIR/CodeGen/complex-unary.cpp
+65-11clang/include/clang/CIR/Dialect/IR/CIROps.td
+16-37clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+16-29clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+12-30clang/test/CIR/Transforms/canonicalize.cir
+36-4clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
+219-14713 files not shown
+339-21719 files

LLVM/project 9b19babllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 sve-load-store-legalisation.ll

scalable vector test updates
DeltaFile
+772-772llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll
+4-20llvm/test/CodeGen/AArch64/sve-load-store-legalisation.ll
+4-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+780-7943 files

LLVM/project d1128fdllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

Make this work on scalable vectors
DeltaFile
+12-15llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+12-151 files

LLVM/project c09535fllvm/test/CodeGen/AArch64 sve-fixed-vector-llrint.ll sve-fixed-vector-lrint.ll, llvm/test/CodeGen/AMDGPU bf16.ll

[SelectionDAG] Fold extracts spanning concat operands

Factor the extract_subvector-of-CONCAT_VECTORS logic and handle
extracts that cover multiple whole concat operands by rebuilding a
smaller concat directly.

AI note: an LLM generated the code and the test, I've read them

Co-Authored-By: OpenAI Codex <codex at openai.com>
DeltaFile
+992-904llvm/test/CodeGen/AMDGPU/bf16.ll
+187-229llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll
+187-229llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll
+196-176llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
+142-140llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
+120-120llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
+1,824-1,79811 files not shown
+2,204-2,27917 files

LLVM/project 1118fa1flang/test/Semantics/OpenMP linear-clause01.f90

[flang][OpenMP] Fix failure in linear-clause01.f90 test (#201920)

Apparently the order of some OpenMP checks changed since the pre-commit
CI tested PR #189170.
Now the error `The list item 'i' must be a dummy argument` occurs
instead of
`'cc' is a common block name and must not appear in a LINEAR clause`.
DeltaFile
+1-1flang/test/Semantics/OpenMP/linear-clause01.f90
+1-11 files

LLVM/project 989ef9cllvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/X86 freeze-vector.ll

[DAG] isGuaranteedNotToBeUndefOrPoison - add ISD::BITCAST demanded elements handling (#200933)

Bitcasts preserve undef/poison status, but vector bitcasts can change
which source lanes cover a demanded result lane. Map the demanded
element mask through fixed-length vector bitcasts before checking the
source where possible.

AI note: an LLM generated the code and the test, I've read them

Fixes #161512

Co-Authored-By: OpenAI Codex <codex at openai.com>

---------

Co-authored-by: OpenAI Codex <codex at openai.com>
DeltaFile
+12-36llvm/test/CodeGen/X86/freeze-vector.ll
+40-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+52-362 files

LLVM/project e3fee08llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/AArch64 conditional-branches-cost.ll

[VPlan] Remove special cost logic for stores predicated by header mask. (#196632)

Update the predicated memop costs with uniform operands to 
match the code we generate.

Depends on https://github.com/llvm/llvm-project/pull/196630

PR: https://github.com/llvm/llvm-project/pull/196632
DeltaFile
+16-66llvm/test/Transforms/LoopVectorize/SystemZ/pr47665.ll
+9-40llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
+8-26llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
+0-30llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+33-1624 files

LLVM/project ff65d81lldb/include/lldb/Host/windows/PythonPathSetup PythonPathSetup.h, lldb/source/Host/windows/PythonPathSetup PythonPathSetup.cpp CMakeLists.txt

[lldb] Drop client-side Python pre-load and remove PythonPathSetup (#200533)

PythonPathSetup was a Windows-only helper that pre-mapped python3xx.dll
into lldb.exe / lldb-dap.exe so liblldb.dll's direct imports from
python3xx.dll would resolve when the delay-load thunk for liblldb fired
on the first SB call. ScriptInterpreterRuntimeLoader's Windows backend
has subsumed that responsibility, so this commit deletes the helper and
rewrites the two clients on the new API.

The Windows pre-load itself stays in the clients: the central load in
SystemInitializerFull::Initialize() lives behind the liblldb.dll thunk
that the import binding fires against, so the loader still has to run
from the binary that statically links lldbHost (lldb.exe / lldb-dap.exe)
before the first SB call lands.
DeltaFile
+0-103lldb/source/Host/windows/PythonPathSetup/PythonPathSetup.cpp
+0-52lldb/include/lldb/Host/windows/PythonPathSetup/PythonPathSetup.h
+34-13lldb/tools/lldb-dap/tool/lldb-dap.cpp
+19-8lldb/tools/driver/Driver.cpp
+0-10lldb/source/Host/windows/PythonPathSetup/CMakeLists.txt
+0-4lldb/tools/driver/CMakeLists.txt
+53-1902 files not shown
+53-1958 files

LLVM/project f7d9d0cllvm/docs Reference.rst, llvm/docs/CommandGuide index.rst

[doc] Address various sphinx warnings (nearly NFC)

It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global TOC tree to the root doc, and it is very easy to end up with
multiple.

This patch tries to address the warnings in llvm/docs/, namely:

  $ sphinx-build -b html -jauto llvm/docs/ /tmp/sphinx-out
  checking consistency...
  llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack
  llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionsForHeterogeneousDebugging
  llvm/docs/CommandGuide/llvm-reduce.rst: document is referenced in multiple toctrees: ['CommandGuide/index', 'CommandGuide/index', 'Reference'], selecting: Reference <- CommandGuide/llvm-reduce
  llvm/docs/GitHub.rst: document is referenced in multiple toctrees: ['GettingInvolved', 'UserGuides'], selecting: UserGuides <- GitHub
  llvm/docs/GlobalISel/IRTranslator.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/IRTranslator
  llvm/docs/GlobalISel/InstructionSelect.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/InstructionSelect
  llvm/docs/GlobalISel/Legalizer.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/Legalizer
  llvm/docs/GlobalISel/MIRPatterns.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'UserGuides'], selecting: UserGuides <- GlobalISel/MIRPatterns

    [29 lines not shown]
DeltaFile
+88-39llvm/docs/CommandGuide/index.rst
+30-21llvm/docs/GlobalISel/index.rst
+21-21llvm/tools/llvm-debuginfo-analyzer/README.md
+0-14llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
+0-8llvm/docs/GlobalISel/Pipeline.rst
+0-3llvm/docs/Reference.rst
+139-1063 files not shown
+140-1119 files

LLVM/project 4bf77a4lldb/bindings/python CMakeLists.txt, lldb/source/Plugins/ScriptInterpreter/Python CMakeLists.txt lldb-python.h

[lldb][windows] Fix Python library link for LLDB_ENABLE_PYTHON_LIMITED_API (#201407)

When `LLDB_ENABLE_PYTHON_LIMITED_API` is `ON`, `liblldb` should link
against `python3.dll` (stable ABI) rather than the `python310.dll`.

Previously, two issues prevented this on Windows:

1. The `ScriptInterpreter` plugin explicitly linked
`${Python3_LIBRARIES}` regardless of whether the limited API was
enabled.

2. Python's `pyconfig.h` emits a `#pragma` to select the import library
at link time, choosing `python3.lib` or `python310.lib` depending on
whether `Py_LIMITED_API` is defined. However,
`LLDB_ENABLE_PYTHON_LIMITED_API` was only surfaced through Config.h,
which is not included early enough in the compilation chain to affect
pyconfig.h in all translation units.

This patch fixes both issues.

This is needed for https://github.com/llvm/llvm-project/pull/200533.
DeltaFile
+13-4lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
+5-0lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h
+3-0lldb/bindings/python/CMakeLists.txt
+21-43 files

LLVM/project ae48a36compiler-rt/lib/orc record_section_tracker.h

[orc] Add missing <iterator> include (#201916)

Fixes build after libc++ PR #195509 which drops transitive includes.
DeltaFile
+1-0compiler-rt/lib/orc/record_section_tracker.h
+1-01 files