LLVM/project ac20606clang/lib/UnifiedSymbolResolution USRGeneration.cpp

address comments
DeltaFile
+1-1clang/lib/UnifiedSymbolResolution/USRGeneration.cpp
+1-11 files

LLVM/project c6a17f1compiler-rt/lib/instrumentor-tools/flop-counter CMakeLists.txt

[Instrumentor][FIX] Ensure CXX headers are available (#205693)

Try to address failure in #205221, which results in <atomic> not found.
This is CMake code copied from other compiler-rt projects using
<atomic>.
DeltaFile
+7-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+7-01 files

LLVM/project 8e20284clang/lib/UnifiedSymbolResolution USRGeneration.cpp, clang/unittests/Index IndexTests.cpp

address comments
DeltaFile
+64-14clang/unittests/Index/IndexTests.cpp
+7-7clang/lib/UnifiedSymbolResolution/USRGeneration.cpp
+71-212 files

LLVM/project 86ecfffclang/include/clang/AST DeclBase.h, clang/lib/Sema SemaDeclCXX.cpp

[Clang] Don't suppress vtable emission for classes with -fmodules-debuginfo (#204662)

847f9cb0e868 made `Sema::DefineUsedVTables` skip
`Consumer.HandleVTable()` when `Class->shouldEmitInExternalSource()` is
true. This works for named C++20 modules as they have an object file,
but does not hold for -fmodules-debuginfo / -fpch-debuginfo.

This patch additionally gates that on `Class->isInNamedModule()`. This
is the same pattern used by the rest of codegen for this situation.

Needing to check this everywhere is a bit unfortunate. It would be good
to eventually refactor this class of checks to have clearer semantics
around named modules, debug info, and -fmodules-codgen.

Fixes https://github.com/llvm/llvm-project/issues/198587

Assisted-by: Claude Code: opus-4-8
DeltaFile
+28-0clang/test/PCH/pch-debuginfo-vtable.cpp
+6-1clang/lib/Sema/SemaDeclCXX.cpp
+4-0clang/include/clang/AST/DeclBase.h
+38-13 files

LLVM/project 66ed5f9lldb/include/lldb/Target Language.h, lldb/source/Breakpoint BreakpointResolverName.cpp

[lldb][NFC] Remove ConstString from Language::MethodNameVariant (#205688)

Language::MethodNameVariant is for when a given method name may have
several language-defined variants. For example, we may see an
objective-C method name with a category that should be searchable via
the name without the category.

The ObjCLanguage plugin computes these names without checking that they
are actually useful or even exist. Because these variant names are
stored in ConstString, they will live forever even if they are never
used.
DeltaFile
+8-8lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
+6-6lldb/include/lldb/Target/Language.h
+4-4lldb/source/Symbol/Symtab.cpp
+1-1lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
+1-1lldb/source/Breakpoint/BreakpointResolverName.cpp
+20-205 files

LLVM/project 51312e9clang/include/clang/AST OpenMPClause.h, clang/lib/AST OpenMPClause.cpp

[OpenMP][Clang] Fix parsing of num_teams lower-bound modifier
DeltaFile
+46-35clang/lib/Sema/SemaOpenMP.cpp
+12-44clang/lib/Parse/ParseOpenMP.cpp
+41-2clang/include/clang/AST/OpenMPClause.h
+15-15clang/lib/AST/OpenMPClause.cpp
+17-11clang/test/OpenMP/teams_num_teams_messages.cpp
+16-7clang/lib/Sema/TreeTransform.h
+147-11412 files not shown
+204-13018 files

LLVM/project 518040aclang/lib/Driver ToolChain.cpp, clang/test/Driver print-multi-selection-flags.c

[RISCV][clang] Use fcf-protection flag in Multilib Selection (#205202)

This ensures that we can separate out multilibs that are or are not
built with control flow protection enabled.

The initial version of the patch claims all values of these flags are
incompatible. It might be the case that we could make this logic more
complex if some versions do become compatible.
DeltaFile
+13-0clang/test/Driver/print-multi-selection-flags.c
+12-0clang/lib/Driver/ToolChain.cpp
+25-02 files

LLVM/project 0e46814compiler-rt/lib/instrumentor-tools/flop-counter CMakeLists.txt

[Instrumentor][FIX] Ensure CXX headers are available
DeltaFile
+7-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+7-01 files

LLVM/project ea36234clang/test/AST ast-dump-openmp-teams-distribute-parallel-for-simd.c ast-dump-openmp-teams-distribute-parallel-for.c, clang/test/OpenMP target_teams_distribute_simd_codegen.cpp target_parallel_for_simd_codegen.cpp

Merge branch 'main' into users/kparzysz/c01-clause-check
DeltaFile
+1,701-810llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
+0-2,193clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
+0-2,193clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
+1,076-934clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
+1,070-932clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
+0-1,970clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
+3,847-9,032389 files not shown
+16,465-28,209395 files

LLVM/project b576ec6compiler-rt/lib/instrumentor-tools instrumentor_runtime.h, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp README.md

[Instrumentor] Add runtime examples: [1/N] A flop counter (#205221)

This adds a instrumentor-tools folder into compiler RT to showcase
use cases of the instrumentor. The initial example is a program that,
via instrumentation, counts the number of flops performed. Call and
 intrinsic support will follow after #198042.

Partially developed by Claude (AI), tested and verified by me.
DeltaFile
+293-0compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+164-0compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+77-0compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+75-0compiler-rt/test/instrumentor-tools/lit.cfg.py
+67-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+54-0compiler-rt/test/instrumentor-tools/CMakeLists.txt
+730-010 files not shown
+941-116 files

LLVM/project 6cc609bllvm/lib/Target/Xtensa XtensaInstrInfo.td XtensaISelLowering.cpp, llvm/test/CodeGen/Xtensa trap.ll

[Xtensa] Fix trap/debugtrap operations lowering. (#200872)

Fix debug operation lowering for Xtensa.

Co-authored-by: Andrei Safronov <safronov at espressif.com>
DeltaFile
+136-0llvm/test/CodeGen/Xtensa/trap.ll
+22-2llvm/lib/Target/Xtensa/XtensaInstrInfo.td
+2-0llvm/lib/Target/Xtensa/XtensaISelLowering.cpp
+1-0llvm/lib/Target/Xtensa/XtensaSubtarget.h
+161-24 files

LLVM/project 1c83076compiler-rt/lib/instrumentor-tools instrumentor_runtime.h, compiler-rt/lib/instrumentor-tools/flop-counter flop_counter_runtime.cpp README.md

[Instrumentor] Add runtime examples: [1/N] A flop counter

This adds a instrumentor-tools folder into compiler RT to showcase
use cases of the instrumentor. The initial example is a program that,
via instrumentation, counts the number of flops performed. Call and
intrinsic support will follow after #198042.

Partially developped by Claude (AI), tested and verified by me.
DeltaFile
+293-0compiler-rt/lib/instrumentor-tools/instrumentor_runtime.h
+164-0compiler-rt/lib/instrumentor-tools/flop-counter/flop_counter_runtime.cpp
+77-0compiler-rt/lib/instrumentor-tools/flop-counter/README.md
+75-0compiler-rt/test/instrumentor-tools/lit.cfg.py
+67-0compiler-rt/lib/instrumentor-tools/flop-counter/CMakeLists.txt
+54-0compiler-rt/test/instrumentor-tools/CMakeLists.txt
+730-010 files not shown
+941-116 files

LLVM/project d4cf04bclang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp LiveOrigins.cpp

Revert "[LifetimeSafety] Fix liveness propagation for all origin flows (#205323)" (#205687)

Revert "[LifetimeSafety] Fix liveness propagation for all origin flows
(#205323)"

This reverts commit 8d2a578b2130742c8790f3dba5fb414962eafcd5.

Revert "[LifetimeSafety] Model GNU statement expressions (#204841)"

This reverts commit 361f3b24f2a8703eb7a32c1ae081f490888238f3.
DeltaFile
+0-70clang/test/Sema/LifetimeSafety/safety.cpp
+6-23clang/test/Sema/LifetimeSafety/invalidations.cpp
+0-21clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+3-14clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+0-1clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+9-1295 files

LLVM/project 3d2974allvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add subtype IDs to complement type IDs for vectors/arrays (#205466)

If the type of an argument passed to the instrumentation is a vector or
array, we still want to filter on the underlying type, and the
instrumentation might also need to know. Thus, we can now pass a subtype
ID, which is -1 except if it's a vector or array, then it's the element
type ID. Structs need to be handled differently.
DeltaFile
+90-11llvm/lib/Transforms/IPO/Instrumentor.cpp
+22-22llvm/test/Instrumentation/Instrumentor/default_rt.c
+39-0llvm/test/Instrumentation/Instrumentor/numeric_subtypeid.ll
+21-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+20-0llvm/test/Instrumentation/Instrumentor/default_config.json
+10-10llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+202-439 files not shown
+257-5515 files

LLVM/project 20fea2ellvm/docs ProgrammersManual.rst ProgrammersManual.md, mlir/lib/Dialect/XeGPU/Transforms XeGPULayoutImpl.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+0-4,257llvm/docs/ProgrammersManual.rst
+3,954-0llvm/docs/ProgrammersManual.md
+0-2,502llvm/docs/CodeGenerator.rst
+0-2,490llvm/docs/SourceLevelDebugging.rst
+1,554-816mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
+2,339-0llvm/docs/SourceLevelDebugging.md
+7,847-10,065895 files not shown
+47,777-33,424901 files

LLVM/project d28147ellvm/docs ProgrammersManual.rst ProgrammersManual.md, mlir/lib/Dialect/XeGPU/Transforms XeGPULayoutImpl.cpp

fix

Created using spr 1.3.7
DeltaFile
+0-4,257llvm/docs/ProgrammersManual.rst
+3,954-0llvm/docs/ProgrammersManual.md
+0-2,502llvm/docs/CodeGenerator.rst
+0-2,490llvm/docs/SourceLevelDebugging.rst
+1,554-816mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
+2,339-0llvm/docs/SourceLevelDebugging.md
+7,847-10,065898 files not shown
+47,813-33,429904 files

LLVM/project 3c95aabclang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

Revert "[LifetimeSafety] Model GNU statement expressions (#204841)"

This reverts commit 361f3b24f2a8703eb7a32c1ae081f490888238f3.
DeltaFile
+0-70clang/test/Sema/LifetimeSafety/safety.cpp
+0-15clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+0-1clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+0-863 files

LLVM/project b149ea2clang/lib/Analysis/LifetimeSafety LiveOrigins.cpp FactsGenerator.cpp, clang/test/Sema/LifetimeSafety invalidations.cpp

Revert "[LifetimeSafety] Fix liveness propagation for all origin flows (#205323)"

This reverts commit 8d2a578b2130742c8790f3dba5fb414962eafcd5.
DeltaFile
+6-23clang/test/Sema/LifetimeSafety/invalidations.cpp
+3-14clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+0-6clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+9-433 files

LLVM/project 6bf6094clang/docs ReleaseNotes.rst, clang/lib/Sema SemaChecking.cpp

[Sema] Fix ICE when passing vector types to `abs` (#205017)

fix for ICE in `Sema::CheckAbsoluteValueFunction`

We failed to reject non-scalar types. 

Fixes: #204777
DeltaFile
+10-0clang/test/Sema/builtin-abs-invalid.c
+6-0clang/lib/Sema/SemaChecking.cpp
+1-0clang/docs/ReleaseNotes.rst
+17-03 files

LLVM/project 8c87cf1lldb/source/Plugins/ObjectContainer/Universal-Mach-O ObjectContainerUniversalMachO.cpp, lldb/unittests/ObjectContainer ObjectContainerUniversalMachOTest.cpp

[lldb][Mach-O] Bounds-check GetArchitectureAtIndex against m_fat_archs (#205289)

`ObjectContainerUniversalMachO::GetArchitectureAtIndex` used
`m_header.nfat_arch` (read directly from the file and untrusted, up to
0xFFFFFFFF) as the bound before indexing `m_fat_archs`. When ParseHeader
exhausts the data partway through and breaks early, `m_fat_archs.size()`
can be smaller than `nfat_arch`, so the indexed load is out of bounds.
Bound the check on the actual vector size instead.

Found by lldb-target-fuzzer.

---------

Co-authored-by: Alex Langford <nirvashtzero at gmail.com>
DeltaFile
+27-0lldb/unittests/ObjectContainer/ObjectContainerUniversalMachOTest.cpp
+1-1lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
+28-12 files

LLVM/project d7a29a8flang/cmake/caches BOLT.cmake BOLT-PGO.cmake, llvm/docs AdvancedBuilds.rst

[flang][cmake] Enable the runtimes in the CMake caches (#205642)

I've tried to introduce that in the PR #198863, but sadly, the buildbots
could not cope with this, so I decided to introduce it separately.

This patch also fixes the relevant places in the docs.
DeltaFile
+1-3llvm/docs/AdvancedBuilds.rst
+1-0flang/cmake/caches/BOLT.cmake
+1-0flang/cmake/caches/BOLT-PGO.cmake
+1-0flang/cmake/caches/PGO-stage2.cmake
+1-0flang/cmake/caches/PGO.cmake
+5-35 files

LLVM/project 238dbabutils/bazel/llvm-project-overlay/libc BUILD.bazel

Revert "[Bazel] Fixes 639c5a0" (#205681)

Reverts llvm/llvm-project#205273.  639c5a0 was rolled back.
DeltaFile
+0-16utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+0-161 files

LLVM/project 0b1ad4cclang/test/CodeGen/AArch64 neon-intrinsics.c, clang/test/CodeGen/AArch64/neon subtraction.c

[CIR][AArch64] Migrate vsubl_high/vsubw_high NEON tests to subtraction.c (#205508)

### summary

Part of : https://github.com/llvm/llvm-project/issues/185382

This is a light patch and a follow up of :
https://github.com/llvm/llvm-project/pull/204088

All lowering logic have been implemented in this PR :
https://github.com/llvm/llvm-project/pull/204285 , I just need to
migrate these intrinsics.

This PR completed with the assistance of Claude Opus4.8

Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
DeltaFile
+211-2clang/test/CodeGen/AArch64/neon/subtraction.c
+0-180clang/test/CodeGen/AArch64/neon-intrinsics.c
+211-1822 files

LLVM/project 5e99fb8utils/bazel/llvm-project-overlay/libc BUILD.bazel

Revert "[Bazel] Fixes 639c5a0 (#205273)"

This reverts commit fc03af0ea17f7f3c5a3fff42be9d6a369dc0910d.
DeltaFile
+0-16utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+0-161 files

LLVM/project b206777clang/lib/AST ExprConstant.cpp, llvm/include/llvm/ADT APInt.h

[APInt] Consistently use the terms pdep/pext instead of expandBits/compressBits (#205112)

After some bikeshedding in #200570 - we decided on the terms pdep/pext
DeltaFile
+21-36llvm/unittests/ADT/APIntTest.cpp
+6-6llvm/include/llvm/ADT/APInt.h
+4-4clang/lib/AST/ExprConstant.cpp
+2-2llvm/lib/Support/APInt.cpp
+2-2llvm/unittests/Support/KnownBitsTest.cpp
+2-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+37-523 files not shown
+43-589 files

LLVM/project 0f9ffd5llvm/lib/Analysis AssumptionCache.cpp, llvm/test/Transforms/DropUnnecessaryAssumes dereferenceable.ll

[AssumptionCache] Fix removeAffectedValues() when value is repeated in AssumeInst (#205275)

If a value appears more than once in an AssumeInst (e.g., `ptr %arg1` in
`call void @llvm.assume(i1 true) [ "dereferenceable"(ptr %arg1, i64 1),
"align"(ptr %arg1, i64 8) ]`) it will appear multiple times in the
result of findAffectedValues(). removeAffectedValues() may (depending on
how the results in AffectedValues.find_as(AV.Assume) are ordered),
nullify multiple values from AffectedValues.find_as(AV.Assume) in one
iteration of an outer for loop. The next iteration of that outer for
loop might then find a match only to a different AssumeInst, resulting
in an assertion failure.

This patch fixes the issue by counting the number of matching
ResultElems we expect to find.

This was a latent bug that was revealed by
https://github.com/llvm/llvm-project/pull/204432; the latter is not
itself buggy, but relies on AssumptionCache::removeAffectedValues().


    [2 lines not shown]
DeltaFile
+131-0llvm/test/Transforms/DropUnnecessaryAssumes/dereferenceable.ll
+34-1llvm/lib/Analysis/AssumptionCache.cpp
+165-12 files

LLVM/project 07d30c1clang/test/OpenMP target_teams_distribute_simd_codegen.cpp target_parallel_for_simd_codegen.cpp

[OpenMP][Offload] Use argument pointer array in host kernels (#205355)

This is a follow-up to #194333, which changed liboffload's kernel launch
interface to take an array of pointers to arguments instead of a
contiguous argument buffer, but left the old path intact for OpenMP, to
be cleaned up iteratively in later changes.

This patch modifies the offload host kernels, and the OpenMP clang
codegen, to also use argument pointer arrays. The host was the only
plugin that did not support the new submission path. With it converted,
OpenMP can migrate to use the new path in all scenarios, after which
everything related to contiguous argument buffer and its construction
can be removed from plugin interface and the backends.

The change itself is fairly straightforward. The bulk of the diff is
automated test updates. In the runtime, the host kernel signature
becomes an array of pointers (void **), and the codegen is updated to
match. With each argument being a pointer, the kernel function now adds
one load to read the argument's value.

Assisted-by: Claude
DeltaFile
+1,076-934clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
+1,070-932clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
+594-474clang/test/OpenMP/target_firstprivate_codegen.cpp
+479-381clang/test/OpenMP/target_teams_codegen.cpp
+416-344clang/test/OpenMP/target_teams_distribute_codegen.cpp
+356-288clang/test/OpenMP/target_parallel_for_codegen.cpp
+3,991-3,35325 files not shown
+6,683-5,41331 files

LLVM/project fc03af0utils/bazel/llvm-project-overlay/libc BUILD.bazel

[Bazel] Fixes 639c5a0 (#205273)

This fixes 639c5a014fad13c683b01c66a1474b7aa47ce7ee.

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

LLVM/project c85e715utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[mlir][bazel]: only depend on needed LLVM translations in ExecutionEngine (#205619)

ExecutionEngine currently pulls in `AllToLLVMIRTranslations` which
includes heavy dependencies on GPU dialects (notably NVVMDialect.cpp
which takes a whopping 2 minutes to compile!), despite the
ExecutionEngine not doing anything GPU-specific.

This change reduces the dependencies to just the subset of LLVMIR
translations that ExecutionEngine actually uses: Builtin, LLVM dialect,
and OpenMP dialect.
DeltaFile
+3-1utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+3-11 files

LLVM/project 1338319clang/include/clang/Basic TargetInfo.h, clang/lib/Basic/Targets AMDGPU.h AMDGPU.cpp

clang: Replace getTargetID API with isProcessorName (#205653)

The "target ID" naming is an AMDGPUism. Replace the getTargetID query
with an isProcessorName predicate so the target reports whether the
string should be considered a match. This makes alias handling more
natural than checking for exact match, and avoids an unnecessary
parse of the target ID.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+5-9clang/lib/Basic/Targets/AMDGPU.h
+6-2clang/lib/Basic/Targets/AMDGPU.cpp
+4-4clang/include/clang/Basic/TargetInfo.h
+1-2clang/lib/Sema/SemaAMDGPU.cpp
+16-174 files