LLVM/project 80743bdlld/ELF Writer.cpp SyntheticSections.h, lld/test/ELF/linkerscript discard-eh-frame.s pt_gnu_eh_frame.s

[ELF] Fix /DISCARD/ .eh_frame regression after #179089

When .eh_frame is discarded while .eh_frame_hdr is not, #179089 caused a
crash for `/DISCARD/ : { *(.eh_frame) }`.

Simplify the PT_GNU_EH_FRAME condition from https://reviews.llvm.org/D30885 (2017).
DeltaFile
+44-0lld/test/ELF/linkerscript/discard-eh-frame.s
+0-13lld/test/ELF/linkerscript/pt_gnu_eh_frame.s
+1-2lld/ELF/Writer.cpp
+1-1lld/ELF/SyntheticSections.h
+46-164 files

LLVM/project 3ed9bd6llvm/utils/TableGen RegisterInfoEmitter.cpp

[NFC][TableGen] Use std::move to avoid copy (#180775)

DeltaFile
+1-1llvm/utils/TableGen/RegisterInfoEmitter.cpp
+1-11 files

LLVM/project e710ff2lld/ELF/Arch AArch64.cpp

[ELF] Simplify AArch64::relocateAlloc. NFC
DeltaFile
+6-5lld/ELF/Arch/AArch64.cpp
+6-51 files

LLVM/project 0675fa4llvm/test/tools/llvm-dwp/X86 prioritize_discard_path_soft_stop.test, llvm/tools/llvm-dwp llvm-dwp.cpp Opts.td

[llvm-dwp] Adds --prioritize-discard-path to explicitly control dwp overflow order. (#180909)

Adds `--prioritize-discard-path` for llvm-dwp to explicitly specify the
path of DWO files to be prioritized for discarding when dwp overflows.
As described in [[this
RFC](https://discourse.llvm.org/t/rfc-debuginfo-mitigating-non-deterministic-dwp-overflow/89587)].
DeltaFile
+41-0llvm/test/tools/llvm-dwp/X86/prioritize_discard_path_soft_stop.test
+29-0llvm/tools/llvm-dwp/llvm-dwp.cpp
+5-0llvm/tools/llvm-dwp/Opts.td
+75-03 files

LLVM/project 8a3b830lld/ELF RelocScan.h Relocations.cpp, lld/ELF/Arch X86.cpp X86_64.cpp

[ELF] Add target-specific relocation scanning for x86 (#178846)

Implement scanSection/scanSectionImpl for i386 and x86-64 to

* enable devirtualization of getRelExpr calls
* eliminate abstraction overhead for PLT-to-PCRel optimization, TLS
relocations
* optimize for R_X86_64_PC32 and R_X86_64_PLT32: they consist of 95%
  relocations in `lld/ELF/**/*.o` files.

at the cost of more code.

TLS relocation handling is inlined into scanSectionImpl. Also,

- Remove getTlsGdRelaxSkip
- Replace TLS-optimization-specific expressions:
- R_RELAX_TLS_GD_TO_LE, R_RELAX_TLS_LD_TO_LE, R_RELAX_TLS_IE_TO_LE →
R_TPREL
  - R_RELAX_TLS_GD_TO_IE → R_GOT_PC

    [13 lines not shown]
DeltaFile
+146-86lld/ELF/Arch/X86.cpp
+144-44lld/ELF/Arch/X86_64.cpp
+105-2lld/ELF/RelocScan.h
+11-1lld/ELF/Relocations.cpp
+406-1334 files

LLVM/project 2ff9310llvm/test/tools/llvm-ir2vec/bindings ir2vec-bindings.py, llvm/tools/llvm-ir2vec/Bindings PyIR2Vec.cpp

[llvm-ir2vec] Adding BB Embeddings Map API to ir2vec python bindings (#180135)

Returns a BB Embedding Map based on the input function name
 `getBBEmbMap(funcName) -> Map<BB name, Embedding>`
DeltaFile
+38-3llvm/tools/llvm-ir2vec/Bindings/PyIR2Vec.cpp
+28-0llvm/test/tools/llvm-ir2vec/bindings/ir2vec-bindings.py
+25-0llvm/tools/llvm-ir2vec/lib/Utils.cpp
+6-2llvm/tools/llvm-ir2vec/lib/Utils.h
+97-54 files

LLVM/project 526dc25clang/lib/Driver/ToolChains/Arch PPC.cpp, clang/test/Driver aix-as.c

[AIX] [PowerPC] Auto-enable modern-aix-as feature by default with integrated assembler. (#180778)

**Issue**:
Certain instruction aliases (e.g. `mfsprg`) defined in PowerPC tablegen
as InstAlias are gated behind the ModernAs predicate as InstAlias.

Without the `+modern-aix-as` target feature enabled, the `ModernAs`
predicate is not satisfied and these instructions aliases are
unavailable. This caused assembly failures on AIX unless user manually
specify below options.
   `-Xclang -target-feature -Xclang +modern-aix-as`

**Solution**:
Automatically enable the` +modern-aix-as` target feature when:
 - The target triple is AIX.
- The integrated assembler is being used (default or -`fintegrated-as`).

This feature is not enabled when `-fno-integrated-as` is specified.

Co-authored-by: Riyaz Ahmad <riyaz.ahmad at ibm.com>
DeltaFile
+22-0clang/test/Driver/aix-as.c
+7-0clang/lib/Driver/ToolChains/Arch/PPC.cpp
+29-02 files

LLVM/project 0319d8dllvm/lib/ProfileData/Coverage CoverageMapping.cpp, llvm/test/tools/llvm-cov mcdc-macro.test

Revert "[MC/DC] Make covmap tolerant of nested Decisions (#125407)" (#181069)

This reverts commit 8f690ec7ffd8d435a0212a191634b544b0741c4f because it
caused errors in collecting coverage.
DeltaFile
+175-142llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
+7-7llvm/test/tools/llvm-cov/mcdc-macro.test
+182-1492 files

LLVM/project e2ac2e0utils/bazel/llvm-project-overlay/lldb BUILD.bazel

[bazel][lldb] Port #179832 (#181087)

Co-authored-by: Pranav Kant <prka at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
+1-01 files

LLVM/project 477e73fclang/docs StandardCPlusPlusModules.rst ReleaseNotes.rst, clang/include/clang/Options Options.td

[C++20] [Modules] Support to generate reduced BMI only (#181081)

Introduced --precompile-reduced-bmi. This allows users to generate
Reduced BMI only.
Previously, users can only generate the reduced BMI as a by product of
other process (e.g, generating an object file or a full BMI). This is
not ideal.
DeltaFile
+14-4clang/docs/StandardCPlusPlusModules.rst
+13-0clang/test/Driver/module-fgen-reduced-bmi-precompile.cppm
+9-4clang/lib/Driver/Driver.cpp
+8-4clang/lib/Driver/ToolChains/Clang.cpp
+4-0clang/docs/ReleaseNotes.rst
+3-0clang/include/clang/Options/Options.td
+51-126 files

LLVM/project dde762alibc/shared/math f16sqrtf.h, libc/src/__support/math f16sqrtf.h CMakeLists.txt

[libc][math] Refactor `f16sqrtf` to Header Only. (#180749)

fix https://github.com/llvm/llvm-project/issues/175329
DeltaFile
+32-0libc/src/__support/math/f16sqrtf.h
+29-0libc/shared/math/f16sqrtf.h
+12-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+11-0libc/src/__support/math/CMakeLists.txt
+2-6libc/src/math/generic/f16sqrtf.cpp
+1-2libc/src/math/generic/CMakeLists.txt
+87-93 files not shown
+91-99 files

LLVM/project 514b3e1llvm/lib/Transforms/IPO ThinLTOBitcodeWriter.cpp

[NFC] `CfiFunctions` are relevant when promoting from the original module only
DeltaFile
+5-1llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+5-11 files

LLVM/project 46283adclang/lib/Sema SemaOverload.cpp

[NFC][HLSL] Remove Dead code (#181060)

DeltaFile
+0-2clang/lib/Sema/SemaOverload.cpp
+0-21 files

LLVM/project 82373f6llvm/lib/Transforms/IPO ThinLTOBitcodeWriter.cpp

[NFC] `CfiFunctions` are relevant when promoting from the original module only
DeltaFile
+1-1llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+1-11 files

LLVM/project 4b16646llvm/lib/Transforms/IPO ThinLTOBitcodeWriter.cpp

[NFC] `const`-ify argument in `promoteInternals`
DeltaFile
+1-1llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+1-11 files

LLVM/project 63a6e54mlir/include/mlir/Dialect/AMDGPU/IR AMDGPUOps.td, mlir/lib/Conversion/AMDGPUToROCDL AMDGPUToROCDL.cpp

[mlir][AMDGPU] Update gather_to_lds with explicit-async support

This commit takes advantage of the new `load.async.to.lds` intrinsic
in order to add an `async` mode to `gather_to_lds`. In this mode,
completion of the load needs to be managed with `asyncmark` and
`wait.asyncmark` intrinsics instead of being implicitly derived by
alias analysis.

This commit adds the flag, a lowering for it, and updates tests.

Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
DeltaFile
+38-0mlir/test/Conversion/AMDGPUToROCDL/load_lds.mlir
+13-5mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+10-2mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
+6-6mlir/test/Dialect/AMDGPU/ops.mlir
+67-134 files

LLVM/project 2e870e6libc/shared rpc_util.h rpc_dispatch.h

[libc] Fix incorrect element type in RPC handler
DeltaFile
+2-1libc/shared/rpc_util.h
+2-1libc/shared/rpc_dispatch.h
+4-22 files

LLVM/project df92c4cmlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[mlir][ROCDL] Add async variants of pre-gfx12 LDS load intrinsics

These are MLIR wrappers around #180466.

-----

Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
DeltaFile
+92-0mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+24-0mlir/test/Dialect/LLVMIR/rocdl.mlir
+24-0mlir/test/Target/LLVMIR/rocdl.mlir
+140-03 files

LLVM/project 2ada4b8mlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[mlir][ROCDL] Wrap asyncmark and wait.asyncmark intrinsics (#181054)

(see op-level and LLVM documentation for details so I'm not repeating
myself, but these are the general operations for compiler-operated
asynchronous operation tracking, which frees programmers from having to
deal with all the different counters, allows certain optimization, and
doesn't require precise alias analysis)

-----

Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
DeltaFile
+55-0mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+14-0mlir/test/Dialect/LLVMIR/rocdl.mlir
+14-0mlir/test/Target/LLVMIR/rocdl.mlir
+83-03 files

LLVM/project 141431fclang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/include/clang/CIR/Interfaces ASTAttrInterfaces.td

[CIR][LoweringPrepare] Emit guard variables for static local initialization

This implements the lowering of static local variables with the Itanium C++ ABI
guard variable pattern in LoweringPrepare.

When a GlobalOp has the static_local attribute and a ctor region, this pass:
1. Creates a guard variable global (mangled name from AST)
2. Inserts the guard check pattern at each GetGlobalOp use site:
   - Load guard byte with acquire ordering
   - If zero, call __cxa_guard_acquire
   - If acquire returns non-zero, inline the ctor region code
   - Call __cxa_guard_release
3. Clears the static_local attribute and ctor region from the GlobalOp
DeltaFile
+406-1clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+35-2clang/test/CIR/CodeGen/static-local.cpp
+19-4clang/lib/CIR/CodeGen/CIRGenDeclCXX.cpp
+20-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+0-12clang/include/clang/CIR/Interfaces/ASTAttrInterfaces.td
+6-3clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+486-227 files not shown
+500-3613 files

LLVM/project 60ad66emlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[mlir][ROCDL] Add async variants of pre-gfx12 LDS load intrinsics

These are MLIR wrappers around #180466.
DeltaFile
+92-0mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+24-0mlir/test/Target/LLVMIR/rocdl.mlir
+24-0mlir/test/Dialect/LLVMIR/rocdl.mlir
+140-03 files

LLVM/project 131ac5cmlir/include/mlir/Dialect/LLVMIR ROCDLOps.td, mlir/test/Dialect/LLVMIR rocdl.mlir

[mlir][ROCDL] Wrap asyncmark and wait.asyncmark intrinsics

(see op-level and LLVM documentation for details so I'm not repeating
myself, but these are the general operations for compiler-operated
asynchronous operation tracking, which frees programmers from having
to deal with all the different counters, allows certain optimization,
and doesn't require precise alias analysis)

-----

Co-authored-by: Claude Opus 4.5 <noreply at anthropic.com>
DeltaFile
+55-0mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
+14-0mlir/test/Target/LLVMIR/rocdl.mlir
+14-0mlir/test/Dialect/LLVMIR/rocdl.mlir
+83-03 files

LLVM/project 0377416clang/lib/CIR/CodeGen CIRGenBuiltinX86.cpp, clang/test/CIR/CodeGenBuiltins/X86 cmp-builtins.c

[CIR][X86] Add support for cmp builtins (#174318)

Part of https://github.com/llvm/llvm-project/issues/167765
Add support for cmp builtins
DeltaFile
+720-0clang/test/CIR/CodeGenBuiltins/X86/cmp-builtins.c
+16-14clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
+736-142 files

LLVM/project d063dc6clang-tools-extra/docs/clang-tidy/checks/hicpp multiway-paths-covered.rst function-size.rst, clang-tools-extra/docs/clang-tidy/checks/readability magic-numbers.rst

[clang-tidy][NFC] Update broken HICPP documentation links (#180525)

The original links to the High Integrity C++ Coding Standard now
redirects to an [irrelevant page](https://www.perforce.com/resources)
because Perforce made the document private (it now requires email to
apply).

This PR updates all HICPP-related documentation links to point to the
application form, ensuring users can still find the official source for
these rules.
DeltaFile
+3-3clang-tools-extra/docs/clang-tidy/checks/hicpp/multiway-paths-covered.rst
+3-3clang-tools-extra/docs/clang-tidy/checks/hicpp/function-size.rst
+1-1clang-tools-extra/docs/clang-tidy/checks/hicpp/use-nullptr.rst
+1-1clang-tools-extra/docs/clang-tidy/checks/hicpp/use-override.rst
+1-1clang-tools-extra/docs/clang-tidy/checks/hicpp/vararg.rst
+1-1clang-tools-extra/docs/clang-tidy/checks/readability/magic-numbers.rst
+10-1027 files not shown
+37-3733 files

LLVM/project c14c838libcxxabi CMakeLists.txt, libcxxabi/src fallback_malloc.cpp

[libcxxabi] Make fallback malloc heap size configurable via CMake

The emergency fallback heap used during exception handling when
malloc() fails (e.g. under OOM) was hardcoded to 512 bytes, which
is only enough for a few in-flight exceptions. In contrast, libstdc++
reserves ~73 KiB for this purpose.

Add a LIBCXXABI_FALLBACK_MALLOC_HEAP_SIZE CMake option (default 512)
so that builds targeting programs that need to survive OOM conditions
can increase the pool size. Validate the value at both CMake configure
time and C++ compile time, since the heap's unsigned short offsets
limit it to ~256 KiB.
DeltaFile
+19-0libcxxabi/CMakeLists.txt
+12-1libcxxabi/src/fallback_malloc.cpp
+31-12 files

LLVM/project a99d523clang/lib/AST ExprConstant.cpp

Use more restrictive condition for adding ExprWithCleanups
DeltaFile
+1-4clang/lib/AST/ExprConstant.cpp
+1-41 files

LLVM/project efdc085clang/lib/AST ExprConstant.cpp, clang/lib/Sema SemaExprCXX.cpp

Use setExprNeedsCleanups in BuildCXXNew and avoid breaking c++98

This approach is much cleaner, but broke checkICE reporting in c++98.
Stepping through a debugger shows that this happend because the
static_assert test didn not recognize ExprWithCleanups as transparent to
constant evaluation. To addresse this, we update CheckICE to recurse
into the sub-expression, and keep the old behavior.
DeltaFile
+1-15clang/lib/Sema/SemaExprCXX.cpp
+4-1clang/lib/AST/ExprConstant.cpp
+5-162 files

LLVM/project cb0ff14clang/lib/CodeGen CGCall.cpp, clang/lib/Sema SemaExprCXX.cpp

[clang] Use uniform lifetime bounds under exceptions

To do this we have to slightly modify how some expressions are handled
in Sema. Principally, we need to ensure that calls to new for
non-trivial types still have their destructors run. Generally this isn't
an issue, since these just get sunk into the surrounding scope. With
more lifetime annotations being produced for the expressions, we found
that some calls to `new` in an unreachable switch arm would not be
wrapped in ExprWithCleanups. As a result, they remain on the EhStack
when processing the default label, and since the dead arm doesn't
dominate the default label, we can end up with a case where the def-use
chain is broken (e.g. the def doesn't dominate all uses). Technically
this path would be impossible to reach due to the active bit, but it
still failed to satisfy a dominance relationship.

With that in place, we can remove the constraint on only using tighter
lifetimes when exceptions are disabled.
DeltaFile
+36-0clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+15-1clang/lib/Sema/SemaExprCXX.cpp
+2-4clang/lib/CodeGen/CGCall.cpp
+53-53 files

LLVM/project cef586bclang/test/CodeGen lifetime-bug-2.cpp

Save test for conflicting cleanups
DeltaFile
+36-0clang/test/CodeGen/lifetime-bug-2.cpp
+36-01 files

LLVM/project 97f7f9dclang/lib/CodeGen CGCall.cpp CGCall.h, clang/test/CodeGen stack-usage-lifetimes.c lifetime-invoke-c.c

[clang] Use tighter lifetime bounds for C temporary arguments

In C, consecutive statements in the same scope are under
CompoundStmt/CallExpr, while in C++ they typically fall under
CompoundStmt/ExprWithCleanup. This leads to different behavior with
respect to where pushFullExprCleanUp inserts the lifetime end markers
(e.g., at the end of scope).

For these cases, we can track and insert the lifetime end markers right
after the call completes. Allowing the stack space to be reused
immediately. This partially addresses #109204 and #43598 for improving
stack usage.
DeltaFile
+89-0clang/test/CodeGen/stack-usage-lifetimes.c
+29-19clang/test/CodeGen/lifetime-invoke-c.c
+20-6clang/lib/CodeGen/CGCall.cpp
+12-12clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+15-5clang/test/CodeGen/lifetime-bug.cpp
+19-0clang/lib/CodeGen/CGCall.h
+184-422 files not shown
+186-448 files