LLVM/project f45cd9cllvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify issue195176.ll

Revert "[SCEV] Fix ScalarEvolution::getBackedgeTakenInfo when L not found (#2…"

This reverts commit b7e08b6467d554c73997b6eb6b7a2bdec51c444e.
DeltaFile
+0-82llvm/test/Transforms/IndVarSimplify/issue195176.ll
+1-1llvm/lib/Analysis/ScalarEvolution.cpp
+1-832 files

LLVM/project c193b2dflang/docs Extensions.md

[flang][docs] Documented `c_float128` and `c_float128_complex` extension (#201614)

flang has supported this for a long time, but it wasn't documented as an
extension
DeltaFile
+4-0flang/docs/Extensions.md
+4-01 files

LLVM/project 131ca5cllvm/utils/gn/secondary/bolt/unittests/Profile BUILD.gn, llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility BUILD.gn

[gn build] Port commits (#201639)

3e447333fe32
a7a53bfbcff4
DeltaFile
+1-0llvm/utils/gn/secondary/bolt/unittests/Profile/BUILD.gn
+1-0llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
+2-02 files

LLVM/project 3e41fd5clang/test/OpenMP target_teams_generic_loop_codegen_as_parallel_for.cpp amdgcn_target_device_vla.cpp

fix tests after merge
DeltaFile
+32-42clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
+19-24clang/test/OpenMP/amdgcn_target_device_vla.cpp
+7-9clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
+7-9clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
+5-6clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
+70-905 files

LLVM/project ff25d31lldb/test/API/commands/expression/call-throws TestCallThatThrows.py, lldb/test/API/functionalities/step-avoids-no-debug TestStepNoDebug.py

[lldb] xfail tests for arm64e caused by compiler bugs (#201454)

These tests are caused by bugs in clang where arm64e support is not yet
complete.
DeltaFile
+2-0lldb/test/API/functionalities/step-avoids-no-debug/TestStepNoDebug.py
+2-0lldb/test/API/lang/objc/exceptions/TestObjCExceptions.py
+1-0lldb/test/API/python_api/unnamed_symbol_lookup/TestUnnamedSymbolLookup.py
+1-0lldb/test/API/commands/expression/call-throws/TestCallThatThrows.py
+1-0lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
+7-05 files

LLVM/project c0d4cdclldb/source/Plugins/Process/Utility lldb-riscv-register-enums.h RegisterInfos_riscv32.h, lldb/source/Utility RISCV_DWARF_Registers.h

Merge branch 'main' into users/hvdijk/directx-delay-converting-debug-info
DeltaFile
+3,563-3,543llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
+4,489-13lldb/source/Utility/RISCV_DWARF_Registers.h
+4,473-0lldb/source/Plugins/Process/Utility/lldb-riscv-register-enums.h
+4,253-32lldb/source/Plugins/Process/Utility/RegisterInfos_riscv32.h
+921-907llvm/test/CodeGen/X86/vector-interleaved-load-i64-stride-8.ll
+440-474utils/bazel/MODULE.bazel.lock
+18,139-4,969144 files not shown
+21,318-6,860150 files

LLVM/project 6ea777ellvm/include/llvm/IR ModuleSummaryIndex.h ModuleSummaryIndexYAML.h, llvm/lib/Bitcode/Reader BitcodeReader.cpp

[NFC][CFI] Refactor `CfiFunctionIndex` to externalize GUID calculation
DeltaFile
+55-48llvm/include/llvm/IR/ModuleSummaryIndex.h
+28-11llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
+11-10llvm/lib/LTO/LTO.cpp
+14-6llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+12-7llvm/test/Transforms/LowerTypeTests/Inputs/import-icall.yaml
+12-6llvm/test/Transforms/LowerTypeTests/export-icall.ll
+132-887 files not shown
+171-11413 files

LLVM/project a8267ccclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Separate floating-point bin ops from integer bin ops (#201462)

This change creates new FP-specific binary operations and updates the
existing binary operations that previously accepted any arithmetic type
to only allow integer and vector-of-integer types.

This change is being done to prepare for extended floating-point
handling such as strict FP semantics and fast-math handling. It also
simplifies the handling of integer overflow flags.

Assisted-by: Cursor / claude-opus-4.8
DeltaFile
+175-46clang/include/clang/CIR/Dialect/IR/CIROps.td
+96-96clang/test/CIR/CodeGen/complex-mul-div.cpp
+66-35clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+33-44clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+12-29clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+18-18clang/test/CIR/CodeGenOpenACC/atomic-capture.cpp
+400-26822 files not shown
+582-42828 files

LLVM/project e492f11.ci compute_projects.py compute_projects_test.py

[lldb][windows] enable CI tests (#198906)
DeltaFile
+3-19.ci/compute_projects.py
+7-7.ci/compute_projects_test.py
+10-262 files

LLVM/project 5b12f6eutils/bazel MODULE.bazel.lock MODULE.bazel

[bazel] Bump versions of BCR deps + bazel 8.6->8.7 (#201613)

After merging #197316, I noticed a warning about a `rules_cc` version
mismatch (`--check_direct_dependencies=off`). Might as well bump all the
versions since we haven't done that in a while.

This doesn't bump the bazel version to 9 yet, but we could try that
next. Just bumping 8.6 -> 8.7 to keep things fresh but at the same
compatibility level.
DeltaFile
+409-394utils/bazel/MODULE.bazel.lock
+11-11utils/bazel/MODULE.bazel
+0-5utils/bazel/.bazelrc
+1-1utils/bazel/.bazelversion
+421-4114 files

LLVM/project 119e576lldb/cmake/modules AddLLDB.cmake LLDBConcatFiles.cmake, lldb/scripts extract-dynamic-script-interpreter-exports.py

[lldb] Build liblldb exports from script-interpreter imports (#201392)

With LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS, the script interpreter
plugins are built as standalone shared libraries that resolve their
lldb_private/llvm references through liblldb's re-exports. liblldb was
falling back to liblldb-private.exports, which allowlists the
lldb_private/llvm namespaces wholesale.

Generate the export list per build instead. For each plugin, run llvm-nm
on its compiled objects, keep undefined references in namespaces liblldb
owns, subtract the plugin's own definitions, and concatenate the
per-plugin lists with liblldb.exports.

The plugin's SHARED target LINK_LIBS liblldb, which makes the plugin's
compile order depend on liblldb. Wiring the exports file in via
add_llvm_symbol_exports' built-in target dependency would form a cycle
through that order-only edge. Add NO_TARGET_DEPENDENCY to
add_llvm_symbol_exports so we can apply the file via LINK_DEPENDS alone;
that still triggers a relink when the symbol set changes, without

    [5 lines not shown]
DeltaFile
+100-0lldb/scripts/extract-dynamic-script-interpreter-exports.py
+61-0lldb/cmake/modules/AddLLDB.cmake
+28-1lldb/source/API/CMakeLists.txt
+18-0lldb/cmake/modules/LLDBConcatFiles.cmake
+11-0llvm/cmake/modules/AddLLVM.cmake
+7-2lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
+225-31 files not shown
+230-37 files

LLVM/project c32bdballdb/source/Plugins/Process/Utility lldb-riscv-register-enums.h RegisterInfos_riscv32.h, lldb/source/Utility RISCV_DWARF_Registers.h

Merge remote-tracking branch 'origin/main' into xteam-red-codegen
DeltaFile
+3,563-3,543llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
+6,598-111llvm/test/CodeGen/X86/clmul-vector.ll
+3,092-2,392llvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
+4,489-13lldb/source/Utility/RISCV_DWARF_Registers.h
+4,473-0lldb/source/Plugins/Process/Utility/lldb-riscv-register-enums.h
+4,253-32lldb/source/Plugins/Process/Utility/RegisterInfos_riscv32.h
+26,468-6,0913,162 files not shown
+143,614-74,2363,168 files

LLVM/project 16198c7flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP resolve01.f90

Apply suggestions from code review

Co-authored-by: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
DeltaFile
+1-1flang/lib/Semantics/check-omp-structure.cpp
+1-1flang/test/Semantics/OpenMP/resolve01.f90
+2-22 files

LLVM/project 69f7aebclang/docs UsersManual.rst, clang/lib/Driver Driver.cpp

Revert "[clang] Add -fcrash-diagnostics-tar for tarball of crash reproducer files" (#201622)

Reverts llvm/llvm-project#198838

Test failing at
https://lab.llvm.org/buildbot/#/builders/190/builds/43494
DeltaFile
+7-73clang/lib/Driver/Driver.cpp
+0-36clang/test/Driver/crash-diagnostics-tar.c
+0-16clang/test/Driver/crash-diagnostics-modules.c
+0-4clang/docs/UsersManual.rst
+2-2clang/test/Driver/lld-repro.c
+2-2clang/tools/driver/driver.cpp
+11-13327 files not shown
+37-17033 files

LLVM/project 2cab66cclang/test/OpenMP nvptx_SPMD_codegen.cpp nvptx_target_teams_generic_loop_codegen.cpp

[clang][OpenMP] Improve loop structure for distributed loops

This is a part of a series of patches that rework OpenMP cross-team
reductions.

This patches wires the existing
`kmp_sched_distr_static_chunk_sched_static_chunkone` to be used by
CodeGen.

Example of the intended change of this patch:
```
target teams distribute parallel for reduction(+:s)
  for (i = 0; i < N; i++) s += a[i];
```

Before:
```
__kmpc_distribute_static_init(91)
for (team_lb = team*nthreads; team_lb < N; team_lb += nteams*nthreads) {

    [67 lines not shown]
DeltaFile
+2,345-3,605clang/test/OpenMP/nvptx_SPMD_codegen.cpp
+316-1,156clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
+301-1,141clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
+223-543clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
+120-360clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
+59-179clang/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp
+3,364-6,98410 files not shown
+3,652-7,51016 files

LLVM/project 0e6dcf2clang/lib/Sema SemaTemplateInstantiateDecl.cpp, clang/test/AST ast-dump-templates-pattern.cpp

fixup
DeltaFile
+7-0clang/test/CodeGenCXX/explicit-instantiation.cpp
+6-0clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+1-1clang/test/AST/ast-dump-templates-pattern.cpp
+14-13 files

LLVM/project 6b7fd98clang/include/clang/AST DeclTemplate.h, clang/lib/AST DeclTemplate.cpp

[clang] fix getTemplateInstantiationArgs

This implements a new strategy for collecting the template arguments, by
relying on the qualifiers and template parameter lists to navigate the template
context of out-of-line definitions.

This greatly simplifies the signature of that function, by removing a bunch
of workarounds, and simpliffying a couple that weren't removed yet.

Since this now relies on qualifiers and template parameter lists,
this patch expends most of its effort making sure these are placed,
transformed and propagated to template instantiations.

Also makes the explicit specialization AST nodes stop abusing the template
parameter lists by storing it's own template parameter list, creating a
dedicated field for them, similar to partial specializations.
DeltaFile
+194-429clang/lib/Sema/SemaTemplateInstantiate.cpp
+257-164clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+151-147clang/lib/Sema/SemaTemplate.cpp
+96-95clang/include/clang/AST/DeclTemplate.h
+59-129clang/lib/Sema/SemaConcept.cpp
+60-92clang/lib/AST/DeclTemplate.cpp
+817-1,05653 files not shown
+1,458-1,71659 files

LLVM/project 1eb226bclang/lib/Sema SemaTemplateInstantiateDecl.cpp, clang/test/CodeGenCXX default-arguments.cpp

fixup
DeltaFile
+12-1clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+12-0clang/test/CodeGenCXX/default-arguments.cpp
+24-12 files

LLVM/project 5a4516cutils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes 2a577a4 (#201625)

This fixes 2a577a44a35975f1ac25096861ab87e4c5ad9ddd.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+4-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+4-01 files

LLVM/project b6d82d2llvm/lib/Transforms/IPO ExpandVariadics.cpp, llvm/test/CodeGen/NVPTX vaargs.ll

[ExpandVariadics] Expand vaarg instructions (#201156)

Expand vaarg instructions within ExpandVariadics (Clang generally does
not emit these instructions but other front-ends may). This pass already
has all the necessary information to expand these instructions and doing
this in IR as part of this pass is simpler than lowering these
instructions during ISel after type legalization. This fixed a
type-mismatch bug in NVPTX.
DeltaFile
+56-4llvm/lib/Transforms/IPO/ExpandVariadics.cpp
+10-10llvm/test/CodeGen/NVPTX/vaargs.ll
+66-142 files

LLVM/project b7e08b6llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify issue195176.ll

[SCEV] Fix ScalarEvolution::getBackedgeTakenInfo when L not found (#201502)

By the end of ScalarEvolution::getBackEdgeTakenInfo():
```
  ...
  BackedgeTakenInfo Result = computeBackedgeTakenCount(L);

  if (Result.hasAnyInfo()) {
    // Invalidate any expression using an addrec in this loop.
    ...
  }

  return BackedgeTakenCounts.find(L)->second = std::move(Result);
```
BackedgeTakenCounts may no longer contain an entry for L, resulting in a
crash (https://github.com/llvm/llvm-project/issues/195176). This patch
fixes the issue by inserting the entry if it does not exist (and
otherwise keeping the same behavior).


    [3 lines not shown]
DeltaFile
+82-0llvm/test/Transforms/IndVarSimplify/issue195176.ll
+1-1llvm/lib/Analysis/ScalarEvolution.cpp
+83-12 files

LLVM/project a7a53bflldb/source/Plugins/Process/Utility lldb-riscv-register-enums.h RegisterInfos_riscv32.h, lldb/source/Plugins/Process/elf-core RegisterContextPOSIXCore_riscv32.cpp RegisterUtilities.h

[lldb][RISCV] Handle subsets of CSRs in RV32 core dump images (#142932)

The standard RISC-V ISA sets aside a 12-bit encoding space for up to
4,096 CSRs. However, many of these may remain unutilized and needn't be
saved in core dump images. To address this, we've come up with a new
note, _NT_CSREGMAP_, that saves subsets of CSRs as key-value pairs. This
change provisions support for handling the subsets of CSRs saved in
32-bit RISC-V core dump images by building the register information for
GPRs, FPRs, and CSRs dynamically.

Kindly refer to the corresponding topic ([Add RISC-V CSRs to core
dumps](https://discourse.llvm.org/t/add-risc-v-csrs-to-core-dumps/84348))
for additional details.
DeltaFile
+4,489-13lldb/source/Utility/RISCV_DWARF_Registers.h
+4,473-0lldb/source/Plugins/Process/Utility/lldb-riscv-register-enums.h
+4,253-32lldb/source/Plugins/Process/Utility/RegisterInfos_riscv32.h
+291-32lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_riscv32.cpp
+143-0lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+117-0lldb/source/Plugins/Process/elf-core/RegisterUtilities.h
+13,766-778 files not shown
+13,958-9214 files

LLVM/project 2a577a4mlir/include/mlir/Dialect/OpenACC OpenACCCGOps.td OpenACC.h, mlir/lib/Dialect/OpenACC/IR OpenACC.cpp

[mlir][acc] Add operation for private handle to memref (#201603)

This MR introduces a new operation `acc.unwrap_private` for creating a
pointer-like view of the `acc.private_type` handle. This operation will
be used when materializing `acc.private_local` into the memory view
needed to access the allocated private memory. This new operation is
just a simple cast and thus it gets ViewLikeOpInterface attached to it.

Additionally, `acc.private_type` is now treated as a pointer-like type
to ease conversions to other pointer-like types via
PointerLikeType::genCast.
DeltaFile
+27-0mlir/test/Dialect/OpenACC/ops-cg-privatization.mlir
+23-0mlir/include/mlir/Dialect/OpenACC/OpenACCCGOps.td
+21-0mlir/unittests/Dialect/OpenACC/OpenACCTypeInterfacesTest.cpp
+18-0mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+1-0mlir/include/mlir/Dialect/OpenACC/OpenACC.h
+90-05 files

LLVM/project 82ecbebclang/lib/Driver Driver.cpp, clang/test/Driver crash-diagnostics-tar.c crash-diagnostics-modules.c

Revert "[clang] Add -fcrash-diagnostics-tar for tarball of crash reproducer f…"

This reverts commit e44d060dfd617e8a5e37b61adcb38ed4ac5d782d.
DeltaFile
+7-73clang/lib/Driver/Driver.cpp
+0-36clang/test/Driver/crash-diagnostics-tar.c
+0-16clang/test/Driver/crash-diagnostics-modules.c
+2-2clang/test/Driver/crash-report-modules.m
+2-2clang/test/Driver/lld-repro.c
+2-2clang/test/Driver/crash-report-null.test
+13-13127 files not shown
+37-17033 files

LLVM/project 9a423a2llvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine select_meta.ll

[InstCombine] Avoid propagating invalid metadata in FoldOpIntoSelect (#199155)

Fixes #186471

FoldOpIntoSelect may create a select with a different result type from
the original instruction. The existing implementation blindly copied all
metadata from the original select, which could propagate invalid
type-specific metadata to the transformed instruction.

In particular, folding an fcmp over a floating-point select could copy
!fpmath metadata onto a non-FP select, producing invalid IR and causing
verifier failures.

This change preserves only metadata that remains valid for the
transformed select and propagates !fpmath only for FP-typed selects.
Debug locations are also preserved explicitly.
DeltaFile
+16-1llvm/test/Transforms/InstCombine/select_meta.ll
+11-1llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+27-22 files

LLVM/project 8b140d4llvm/include/llvm/Target/GlobalISel Combine.td, llvm/lib/Target/AArch64 AArch64Combine.td

[AArch64][GlobalISel] Add select to and combines (#200131)

This adds combines for
// select c, x, 0 -> and c, x
// select c, 0, x -> and (not c), x
// select (not c), x, y -> select c, y, x

We need to freeze the value in the first two. The second is only
profitable if hasAndNot, so it excluded from all_combines.
https://alive2.llvm.org/ce/z/eG-aHT

This helps alleviate regressions when G_SELECT is made legal for vector
operations under AArch64. The AMD tests I am not sure about - let me
know if they look worse. The third combine is mostly useful
post-legalize.
DeltaFile
+73-0llvm/test/CodeGen/AArch64/GlobalISel/combine-select-zero.mir
+30-1llvm/include/llvm/Target/GlobalISel/Combine.td
+16-14llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
+10-9llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
+3-3llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
+3-1llvm/lib/Target/AArch64/AArch64Combine.td
+135-286 files

LLVM/project 6d1eed6llvm/lib/CodeGen ReachingDefAnalysis.cpp

[RDA] Slightly optimize enterBasicBlock() (NFC) (#201608)

Instead of initializing LiveRegs and doing an elementwise std::max with
the first incoming predecessor, directly copy the data for the first
predecessor.
DeltaFile
+13-5llvm/lib/CodeGen/ReachingDefAnalysis.cpp
+13-51 files

LLVM/project 01dbfa0flang-rt/lib/runtime io-stmt.cpp edit-input.cpp, flang-rt/unittests/Runtime Namelist.cpp ListInputTest.cpp

[flang-rt] Extension: accept '!' as value separator in NAMELIST input (#200441)

Treat '!' as a self-delimiting value separator when reading NAMELIST
input, so that "name=value!comment" is accepted without an intervening
blank, comma, slash, or end of record. This matches gfortran, ifx, and
classic nvfortran behavior on real-world namelist input files.

F2023 13.11.3.6 p.1 requires a value separator before a '!' comment
introducer in namelist input, so this is a documented extension. The
change does not affect '!' characters inside character literal
constants, which continue to be taken literally.

The extension was documented in flang/docs/Extensions.md.

Assisted-by: AI
DeltaFile
+50-0flang-rt/unittests/Runtime/Namelist.cpp
+18-0flang-rt/unittests/Runtime/ListInputTest.cpp
+9-0flang/docs/Extensions.md
+8-0flang-rt/lib/runtime/io-stmt.cpp
+1-1flang-rt/lib/runtime/edit-input.cpp
+86-15 files

LLVM/project e44d060clang/include/clang/Options Options.td, clang/lib/Driver Driver.cpp

[clang] Add -fcrash-diagnostics-tar for tarball of crash reproducer files (#198838)

Makes it easier to move around crash diagnostics.
DeltaFile
+73-7clang/lib/Driver/Driver.cpp
+36-0clang/test/Driver/crash-diagnostics-tar.c
+16-0clang/test/Driver/crash-diagnostics-modules.c
+2-2clang/tools/driver/driver.cpp
+4-0clang/include/clang/Options/Options.td
+2-2clang/test/Driver/lld-repro.c
+133-1127 files not shown
+170-3733 files

LLVM/project fbe7392mlir/lib/Dialect/X86/Transforms VectorContractToAMXDotProduct.cpp VectorContractToPackedTypeDotProduct.cpp, mlir/test/Dialect/X86 vector-contract-to-packed-type-dotproduct.mlir

[mlir][x86] Fix - replace `vector.load` with `vector.transfer_read` (#201503)

This patch replaces `vector.load` with `vector.transfer_read` to load
elements as `vector<2x32xi8>` instead of `vector<64xi8>`. This fixes the
online shuffling for `int8` and `f8` types.
DeltaFile
+34-15mlir/lib/Dialect/X86/Transforms/VectorContractToAMXDotProduct.cpp
+17-4mlir/lib/Dialect/X86/Transforms/VectorContractToPackedTypeDotProduct.cpp
+10-0mlir/test/Dialect/X86/AMX/vector-contract-to-tiled-dp.mlir
+6-0mlir/test/Dialect/X86/vector-contract-to-packed-type-dotproduct.mlir
+67-194 files