LLVM/project a3f1267libcxx/include/__locale_dir locale_base_api.h

[libc++] Revert changes to locale_base_api.h accidentally committed in f5b6e4f (#198413)

These changes weren't intended to be in the patch and don't make sense
as-is, so this reverts them.
DeltaFile
+0-3libcxx/include/__locale_dir/locale_base_api.h
+0-31 files

LLVM/project 93a14f8llvm/lib/MC MCSubtargetInfo.cpp

[NFC] Optimize `SetImpliedBits` (#193289)

This function sometimes shows up on my profiles of slow compiles as
using up to ~3% of CPU cycles. This change reduces this to ~0%. So, it's
not a huge improvement, but it's not nothing.

Currently, this function recursively sets all implied bits for every
feature, which does a lot of redundant work. Many features are implied
by multiple different other features.

This changes the algorithm to only process newly implied bits.

I suspect that a better fix would be to avoid so many calls to
`SetImpliedBits` in the first place, but this is a deeper change that is
probably best made by someone who understands the structure of the
surrounding code.

Fixes #155808
DeltaFile
+17-9llvm/lib/MC/MCSubtargetInfo.cpp
+17-91 files

LLVM/project 53ebfe0lldb/tools/lldb-dap/extension package.json, lldb/tools/lldb-dap/extension/src process-tree.ts debug-configuration-provider.ts

[lldb-dap] Add process picker command to VS Code extension (#197513)

Adds a process picker command to the LLDB DAP extension that will prompt
the user to select a process. It's based on #128943 but uses lldb-dap to
provide the list of processes through the platform abstraction
(#197330).

The new command is hidden from the command palette, but can be used in
an "attach" debug configuration to select a process at the start of a
debug session. It also comes with a new debug configuration snippet
called "LLDB: Attach to Process" that will fill in the appropriate
variable substitution.

```
{
    "type": "lldb-dap",
    "request": "attach",
    "name": "Attach to Process",
    "pid": "${command:pickProcess}"

    [8 lines not shown]
DeltaFile
+165-0lldb/tools/lldb-dap/extension/test/unit/process-tree.test.ts
+132-0lldb/tools/lldb-dap/extension/src/commands/pick-process.ts
+111-0lldb/tools/lldb-dap/extension/src/process-tree.ts
+56-3lldb/tools/lldb-dap/extension/package.json
+44-8lldb/tools/lldb-dap/extension/src/debug-configuration-provider.ts
+37-0lldb/tools/lldb-dap/extension/test/unit/pid-helpers.test.ts
+545-116 files not shown
+616-2812 files

LLVM/project 488a363llvm/lib/DWARFLinker/Parallel DWARFLinkerImpl.cpp, llvm/test/tools/dsymutil/X86 modules.m

[DWARFLinker] Fix .debug_names emission for -gmodules in parallel linker (#198047)

The parallel linker tripped up the DWARF verifier for the .debug_names
section when the input contained -gmodules skeleton CUs. The issue was
caused by, link(), which reset UniqueUnitID to zero. By that point
addObjectFile() had already handed out IDs to clang module CUs loaded
from .pcm files, so the regular compile units loaded after the reset
reused those IDs. emitDWARFv5DebugNamesSection then collapsed two
distinct CUs onto the same CUidToIdx slot, sending one CU's .debug_names
entries to the other CU's index. Stop resetting the counter since the
constructor already initializes it.
DeltaFile
+20-0llvm/test/tools/dsymutil/X86/modules.m
+4-2llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
+24-22 files

LLVM/project b6d5a3eclang/test/CodeGenOpenCL builtins-amdgcn-gfx12-5-generic-err.cl, llvm/lib/TargetParser TargetParser.cpp

[AMDGPU] Remove some features from `gfx12-5-generic` (#198396)

Fixes LCOMPILER-2213.
DeltaFile
+33-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-5-generic-err.cl
+7-6llvm/lib/TargetParser/TargetParser.cpp
+40-62 files

LLVM/project b0c0807lldb/unittests/SymbolFile/DWARF DWARFASTParserClangTests.cpp

[lldb] Fix "Debugger::Initialize called more than once!" (#198409)

When running multiple tests from the same binary,
1bac9410365260e250ab9483f096a411da5936b0 caused debugger_initialize_flag
to be called more than once.

We use the shared location: TestUtilities::g_debugger_initialize_flag to
ensure that the flag is initialized only once, following what is done in
other tests.
DeltaFile
+2-2lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
+2-21 files

LLVM/project 707f7e5.ci compute_projects_test.py compute_projects.py

[CI] Build/test LLVM/Clang/libcxx on shared libc changes (#198379)

libc is now being used/planned on being used in more places around the
repo, particularly inside of APFloat, for constexpr evaluation, and
inside of libc++. Setup premerge to handle this. I'm only aware of the
APFloat planned usage that should reland soon, but running the clang
tests should not hurt.
DeltaFile
+17-0.ci/compute_projects_test.py
+5-1.ci/compute_projects.py
+22-12 files

LLVM/project 23fdc1ellvm/test/tools/dsymutil/AArch64 cas-config.test, llvm/tools/dsymutil DwarfLinkerForBinary.cpp

[dsymutil] Trim trailing comma and newline in JSON output

Assisted-by: claude
DeltaFile
+7-5llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
+4-4llvm/test/tools/dsymutil/AArch64/cas-config.test
+11-92 files

LLVM/project c2b7a6bllvm/lib/Target/AMDGPU AMDGPU.td

[AMDGPU] Change the base feature of FeatureISAVersion12_5_Generic to FeatureISAVersion12_50_Common
DeltaFile
+4-2llvm/lib/Target/AMDGPU/AMDGPU.td
+4-21 files

LLVM/project 87490edllvm/include/llvm/ABI Types.h, llvm/unittests CMakeLists.txt

[llvm][ABI] Revert "Add NonTrivialCopyConstructor and NonTrivialDestructor RecordFlags" (#198402)

Reverts #194427 (`4f11693`).  That breakout was merged before @nikic
and @vortex73 finished review.

We are not landing this work from our fork; Narayan owns the LLVM ABI
Lowering Library on #140112.  #194433 is closed.

Sorry for the premature merge.
DeltaFile
+0-79llvm/unittests/ABI/TypesTest.cpp
+1-11llvm/include/llvm/ABI/Types.h
+0-8llvm/unittests/ABI/CMakeLists.txt
+0-1llvm/unittests/CMakeLists.txt
+1-994 files

LLVM/project 1053f6allvm/include/llvm/Transforms/Utils SSAUpdaterImpl.h

[llvm] Add missing include in SSAUpdaterImpl.h (#198400)

Add a missing include file in SSAUpdaterImpl.h. This fixes the module
build failure when including this header.
DeltaFile
+1-0llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
+1-01 files

LLVM/project 8cbebddclang/test/CodeGenOpenCL builtins-amdgcn-gfx12-5-generic-err.cl, llvm/lib/TargetParser TargetParser.cpp

[AMDGPU] Remove some features from `gfx12-5-generic`
DeltaFile
+33-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-5-generic-err.cl
+7-6llvm/lib/TargetParser/TargetParser.cpp
+40-62 files

LLVM/project 6beacfbllvm/lib/Transforms/Vectorize VPlanConstruction.cpp VPlanUtils.cpp

[VPlan] Add helpers to get header, latch and middle VPBB from CFG (NFC) (#198378)

Retrieving header, latch and middle VPBBs from the plain CFG is a
somewhat common operation. Add dedicated helpers.
DeltaFile
+8-14llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+12-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+9-0llvm/lib/Transforms/Vectorize/VPlanUtils.h
+29-143 files

LLVM/project 9721f89flang/lib/Semantics check-declarations.cpp, flang/test/Semantics declarations09.f90

[flang] Add diagnostics for conflicting EXTERNAL/INTRINSIC and TARGET attributes (#197831)

Flang silently accepted declarations with both EXTERNAL and TARGET (or
INTRINSIC and TARGET) attributes on the same entity. This violates the
Fortran standard since TARGET requires a variable, but EXTERNAL/INTRINSIC
makes the entity a procedure.

Add CheckConflicting calls in CheckProcEntity to diagnose both cases.
All other major Fortran compilers already reject these combinations.

Fixes #197830

Assisted-by: Claude Opus 4.6.

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
DeltaFile
+17-0flang/test/Semantics/declarations09.f90
+4-0flang/lib/Semantics/check-declarations.cpp
+21-02 files

LLVM/project c8f686eclang/lib/CIR/CodeGen CIRGenExprCXX.cpp CIRGenClass.cpp, clang/test/CIR/CodeGenCXX new-array-init-list-non-trivial-dtor.cpp

[CIR] Add support for partial array cleanup with ILE (#198000)

This adds support for partial array cleanup when an array of a
destructed type is initialized, or partially initialized with an init
list expression.

In the case where the array is only partially initialized with the ILE
and the remainder gets implicit initialization, the cleanup for both
pieces of initialization is handled by the same cleanup scope. This is a
difference from classic codegen, but there is a FIXME in the classic
codegen implementation suggesting exactly this change.

Assisted-by: Cursor / claude-opus-4.7-thinking-xhigh
DeltaFile
+267-0clang/test/CIR/CodeGenCXX/new-array-init-list-non-trivial-dtor.cpp
+15-12clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+21-3clang/lib/CIR/CodeGen/CIRGenClass.cpp
+2-2clang/lib/CIR/CodeGen/CIRGenFunction.h
+305-174 files

LLVM/project ccc8e8cllvm/include/llvm/Transforms/Utils SSAUpdaterImpl.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-0llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
+1-01 files

LLVM/project 4f11693llvm/include/llvm/ABI Types.h, llvm/unittests CMakeLists.txt

[llvm][ABI] Add NonTrivialCopyConstructor and NonTrivialDestructor RecordFlags (#194427)

Breakout from @vortex73's PR #140112.

Add HasNonTrivialCopyConstructor and HasNonTrivialDestructor flags to
RecordFlags, with accessor methods on RecordType. These flags are needed
by target-specific ABI classifiers (e.g. X86_64) to determine whether a
C++ record type must be passed indirectly per the Itanium ABI.

Also adds unit test infrastructure for the ABI library
(llvm/unittests/ABI/) with tests for the new flags and their interaction
with existing flags.

This is Narayan's design and logic from the LLVM ABI Lowering Library,
adapted to the current upstream API.

Made with [Cursor](https://cursor.com)

Co-authored-by: Narayan Raul Kamath <vortex73 at users.noreply.github.com>
DeltaFile
+79-0llvm/unittests/ABI/TypesTest.cpp
+11-1llvm/include/llvm/ABI/Types.h
+8-0llvm/unittests/ABI/CMakeLists.txt
+1-0llvm/unittests/CMakeLists.txt
+99-14 files

LLVM/project b5e5e2aclang/lib/CIR/CodeGen CIRGenExprScalar.cpp, clang/test/CIR/CodeGen character-literal.c

[CIR] Allow implicit truncation in CharacterLiteral codegen (#197269)

`VisitCharacterLiteral` is calling the `IntAttr::get(Type, int64_t)`
builder, which builds the underlying `APInt` with
`isSigned=type.isSigned()` and no implicit truncation. That asserts the
moment a high-bit character literal like `'\xFF'` (which the AST stores
as `CharacterLiteral 'int' 4294967295`) comes through with `int` as the
destination type:

```
APInt.h:121: Assertion `llvm::isIntN(BitWidth, val) &&
                       "Value is not an N-bit signed value"' failed.
```

Classic CodeGen passes `IsSigned=false, ImplicitTrunc=true` here, with a
comment that says character literals are stored unsigned even for signed
char. Just mirror that: build the `APInt` explicitly with those flags
and hand it to `IntAttr::get`. After this the CIR const folder produces
`#cir.int<-1> : !s8i` for `signed char c = '\xFF';` and the lowered

    [7 lines not shown]
DeltaFile
+54-0clang/test/CIR/CodeGen/character-literal.c
+7-2clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+61-22 files

LLVM/project fbbc9callvm/lib/DebugInfo/DWARF DWARFVerifier.cpp, llvm/test/tools/llvm-dwarfdump verify_debug_names_compile_unit_with_dwo_id.yaml

[DWARFVerifier] Don't require .dwo for non-skeleton CUs (#198112)

The presence of `DW_AT_(GNU_)dwo_id` alone does not make a compile unit
a skeleton: a regular `DW_TAG_compile_unit` is allowed to carry a DWO
id. DWARF 5 marks skeleton CUs with `DW_TAG_skeleton_unit` while older
pre DWARF 5 identifies them by absence of children.

Before this change, the verifier would any CU whose header reported a
DWO id as a skeleton, then tried and failed to load its (non-existent)
.dwo and reported an error. This updates the verifier to gate the check
on the CU being an actual skeleton CU.
DeltaFile
+62-0llvm/test/tools/llvm-dwarfdump/verify_debug_names_compile_unit_with_dwo_id.yaml
+11-3llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
+73-32 files

LLVM/project 4628cbdflang/docs OpenACC-extensions.md OpenACC.md, flang/include/flang/Support Fortran-features.h

[flang][openacc] add optional extension to allow default none scalars (#197718)

Adds the flag, `-facc-allow-default-none-scalars`. When this flag is
enabled, Flang reverts to the pre-3.2 behavior: scalar variables
referenced inside a `default(none)` compute region without an explicit
data clause do not produce an error. Instead, Flang infers implicit data
attributes for those scalars via the same implicit-copy logic applied in
regions without `default(none)`.

- Adds tests and documentation.
- Makes an explicit extensions doc for OpenACC to mirror the OpenMP
extensions doc.
- Moves the intentional deviations to from the standard to the
extensions doc.
DeltaFile
+77-0flang/test/Semantics/OpenACC/acc-default-none-scalars.f90
+63-0flang/docs/OpenACC-extensions.md
+30-3flang/lib/Semantics/resolve-directives.cpp
+4-16flang/docs/OpenACC.md
+7-0flang/lib/Frontend/CompilerInvocation.cpp
+3-2flang/include/flang/Support/Fortran-features.h
+184-214 files not shown
+191-2110 files

LLVM/project 33cf7c0lldb/source/Plugins/SymbolFile/DWARF SymbolFileDWARF.cpp, lldb/unittests/SymbolFile/DWARF DWARFDIETest.cpp

[LLDB] Support reading size of constant values from DWARF directly (#198392)

Some type systems (such as Swift) cannot determine a type's byte size
without an execution context (e.g. types whose layout depends on runtime
metadata). In those cases the debug info might still carry the static
size of the value's box, which is enough if the value is a constant.

This patch adds a unit test that mocks up an analogous situation using
TypeSystemClang.

Assisted-by: claude
DeltaFile
+107-0lldb/unittests/SymbolFile/DWARF/DWARFDIETest.cpp
+45-7lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+152-72 files

LLVM/project 03431a2utils/bazel/llvm-project-overlay/mlir/test BUILD.bazel

[bazel] Fix 20d89aca503c0fb5e5ab3801f79a32b2d82149a7 (#198397)

Missing layering check deps
DeltaFile
+2-0utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
+2-01 files

LLVM/project 998fd80clang/test/CodeGenOpenCL builtins-amdgcn-swmmac-gfx12-5-generic-err.cl, llvm/lib/TargetParser TargetParser.cpp

[AMDGPU] Remove some features from `gfx12-5-generic`
DeltaFile
+33-0clang/test/CodeGenOpenCL/builtins-amdgcn-swmmac-gfx12-5-generic-err.cl
+6-6llvm/lib/TargetParser/TargetParser.cpp
+39-62 files

LLVM/project ac4170fllvm/lib/Transforms/Vectorize VPlanUtils.cpp, llvm/test/Transforms/LoopVectorize/RISCV live-out.ll

[VPlan] Conservatively handle VPPhi in isUniformAcrossVFsAndUFs. (#198387)

Should be NFC in terms of optimizations, but fixes a infinite cycle when
running the VPlan verifier for extracts of a lane mask on RISCV
(https://github.com/llvm/llvm-project/issues/198274).
DeltaFile
+3-3llvm/test/Transforms/LoopVectorize/RISCV/live-out.ll
+4-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+7-32 files

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

[Bazel] Fixes 6a86650 (#198355)

This fixes 6a866508f88c9c8ee7c1d43c1ee09bdd0300c76a.

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

LLVM/project 721fb42llvm/lib/Target/AMDGPU AMDGPU.td AMDGPURemoveIncompatibleFunctions.cpp, llvm/lib/Target/AMDGPU/MCTargetDesc AMDGPUMCTargetDesc.cpp

Add HasWave32 & HasWave64
DeltaFile
+14-12llvm/lib/Target/AMDGPU/AMDGPU.td
+6-2llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
+3-3llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
+23-173 files

LLVM/project 35d7c8bllvm/test/MC/Disassembler/AMDGPU gfx9_vop3.txt gfx11_dasm_vop3.txt

[AMDGPU] Allow printing i16 imm as f16 inline constant

This allows diasm to look the same way as asm and codegen.
DeltaFile
+228-228llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
+194-194llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
+144-144llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
+128-128llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3c.txt
+1,094-1,09474 files not shown
+3,445-3,58980 files

LLVM/project 9eb3365llvm/test/MC/Disassembler/AMDGPU gfx11_dasm_vop3.txt gfx12_dasm_vop3.txt

[AMDGPU] Use shorter form for i16 operands

For 16-bit operands an inline constant is zero extended
which in particular allows to use FP constants. These
will have 16 bits of zeroes in the high half and FP16
value in the low 16 bits.
DeltaFile
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3.txt
+200-200llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3.txt
+116-116llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
+98-98llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
+96-96llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
+96-96llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3c.txt
+806-80655 files not shown
+2,169-2,16661 files

LLVM/project 91334a8llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU literals.s gfx1250_asm_vop2.s

[AMDGPU] Error out on too large lit() constants (#197803)
DeltaFile
+8-16llvm/test/MC/AMDGPU/literals.s
+2-2llvm/test/MC/AMDGPU/gfx1250_asm_vop2.s
+2-0llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+12-183 files

LLVM/project 519eb6cflang-rt/include/flang-rt/runtime numeric-templates.h, flang-rt/lib/runtime character.cpp

[flang-rt][NFC] Clean up warnings when building flang-rt (#198384)

Summary:
Trivial warning fixes around uninitialized values.
DeltaFile
+4-4flang-rt/lib/runtime/character.cpp
+2-2flang-rt/include/flang-rt/runtime/numeric-templates.h
+1-1libc/shared/rpc_dispatch.h
+7-73 files