LLVM/project 1f82333 — llvm/lib/Analysis InlineCost.cpp

Refine the comment a bit (NFC)

Co-authored-by: Florian Hahn <flo at fhahn.com>
DeltaFile
+1-1llvm/lib/Analysis/InlineCost.cpp
+1-11 files

LLVM/project eaf6ec1 — llvm/lib/Target/X86 X86PassRegistry.def X86CodeGenPassBuilder.cpp, llvm/test/CodeGen/X86 llc-pipeline-npm.ll

finish

Created using spr 1.3.7
DeltaFile
+4-0llvm/test/CodeGen/X86/llc-pipeline-npm.ll
+1-2llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+1-0llvm/lib/Target/X86/X86PassRegistry.def
+6-23 files

LLVM/project cd7a203 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU] Treat a bitcast between legal types as free

The generic cost model treats a bitcast as free only when both types
are integer types or both are not. AMDGPU keeps integer and
floating-point values in the same registers, so a bitcast between two
legal types is a no-op. A scalar bitcast from i32 to float cost 1, but
the vector bitcast from <2 x i32> to <2 x float> cost 0. The SLP
vectorizer counted this difference as a saving.

A bitcast that involves a type the target legalizes, such as a vector
of i8, keeps its cost, because the lanes may need repacking.

Assisted-by: Claude Opus
DeltaFile
+35-35llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+4-3llvm/test/Transforms/SLPVectorizer/AMDGPU/bitcast-int-fp.ll
+6-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+45-383 files

LLVM/project c71423e — llvm/lib/Target/SystemZ SystemZTargetMachine.cpp, llvm/test/CodeGen/SystemZ zos-section-readonlywithrel.ll

[SystemZ][z/OS] Unconditionally use DynamicNoPIC relocation model (#238087)

On z/OS, generated code is always position-independent, so -fpic and
-fno-pic have no effect. Previously, getEffectiveRelocModel() returned
the requested relocation model if one was provided. When -fpic was
passed, TargetMachine:: isPositionIndependent() returned true, enabling
optimizations such as relative lookup tables that generate 32-bit
relative offsets between globals. These are incompatible with the GOFF
binder's requirement for 8-byte relocations in C_WSA64.

This change forces getEffectiveRelocModel() to always return
Reloc::DynamicNoPIC on z/OS, regardless of what the frontend requests.

Assisted-by: IBM Bob
DeltaFile
+11-6llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
+4-0llvm/test/CodeGen/SystemZ/zos-section-readonlywithrel.ll
+15-62 files

LLVM/project ac479cc — llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU][NFC] Add bitcast cost tests for legalized types and pointers

Add bitcasts that involve types the target legalizes, such as vectors
of i8, i24 and <2 x i24>, and bitcasts of pointers. Add a gfx7 RUN
line, where i16 and <2 x i16> are not legal.

Assisted-by: Claude Opus
DeltaFile
+134-2llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+134-21 files

NetBSD/src LTmaqTk — lib/libmenu menu_pattern.3 menu_item_new.3

   menu(3x): Constification and voidification of pointer arguments.

   libmenu has several functions that take a non-const char * argument
   and then (effectively) strdup(3) it. I've changed it so that these
   functions take a const char * argument. Modern GCC objects to string
   literals being passed to these functions otherwise.

   In other cases, a userptr allows some data to be associated with a
   data structure, but its type is char *. I've changed it to void *.

   Both of these changes are consistent with similar changes in ncurses,
   although are inconsistent with SVR4 libmenu versions. libmenu has
   unfortunately never been standardized.

   "that is fine" - blymn@
VersionDeltaFile
1.11+21-5lib/libmenu/menu_mark.3
1.14+11-11lib/libmenu/menu.h
1.10+17-4lib/libmenu/menu_userptr.3
1.9+17-4lib/libmenu/menu_item_userptr.3
1.10+17-3lib/libmenu/menu_item_new.3
1.10+16-2lib/libmenu/menu_pattern.3
+99-293 files not shown
+114-449 files

LLVM/project cdf67f8 — lldb/source/Plugins/Process/Windows/Common DebuggerThread.h DebuggerThread.cpp

[lldb][Windows] Lock DebuggerThread::m_process against the debug loop (#236560)

When the inferior exits before its initial stop, the debug loop resets
`DebuggerThread::m_process` but the launching thread copies it. Both
threads touch the same `shared_ptr`, which corrupts the heap, and
lldb-server dies with `0xC0000374`.

This causes `TestMissingDll.py` to fail with `"Sending vRun packet
failed"`.

This patch guards `m_process` with a mutex.

Tested on Windows with the race window widened: 21 of 800 launches
crashed before, 0 of 4800 after. `TestMissingDll.py` passed 1600 of 1600
runs.

rdar://191149207
DeltaFile
+28-26lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
+3-2lldb/source/Plugins/Process/Windows/Common/DebuggerThread.h
+31-282 files

LLVM/project a23f991 — clang/include/clang/Parse Parser.h, clang/include/clang/Sema DeclSpec.h

[BoundsSafety][NFC] Add late-parsed type attribute lists to declarators (#224559)

This is groundwork for late-parsing type attributes in every type
position where an ordinary type attribute can appear, following the
direction set in https://github.com/llvm/llvm-project/pull/223267, which
allows a CountAttributedType's count to be filled in later.

Ordinary type attributes are kept on the DeclSpec, on each
DeclaratorChunk and on the
Declarator. Give late-parsed type attributes the same three homes, with
nothing producing or consuming them yet.

No functional change: no caller passes a list yet, so the lists stay
empty. The next commit populates them.

Assisted-by: Opus 5.5

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
DeltaFile
+84-53clang/include/clang/Sema/DeclSpec.h
+14-9clang/include/clang/Parse/Parser.h
+10-4clang/lib/Parse/ParseDecl.cpp
+108-663 files

LLVM/project 9f251f9 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp

Clarified Mangled comment, got rid of unnecessary switch, removed redundant comment and shortened variable names for parameter name and type vector
DeltaFile
+21-29lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+21-291 files

LLVM/project c99848c — llvm/lib/Target/AArch64 AArch64.h AArch64SLSHardening.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+14-5llvm/lib/Target/AArch64/AArch64SLSHardening.cpp
+7-0llvm/lib/Target/AArch64/AArch64.h
+21-52 files

LLVM/project aea7325 — llvm/lib/Target/AArch64 AArch64.h AArch64SLSHardening.cpp, llvm/lib/Target/X86 X86TargetMachine.cpp X86.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+39-6llvm/lib/Target/X86/X86IndirectThunks.cpp
+14-5llvm/lib/Target/AArch64/AArch64SLSHardening.cpp
+18-1llvm/lib/Target/X86/X86.h
+7-0llvm/lib/Target/AArch64/AArch64.h
+1-1llvm/lib/Target/X86/X86TargetMachine.cpp
+79-135 files

LLVM/project e5a911f — llvm/lib/Target/SPIRV SPIRVAPI.cpp, llvm/unittests/Target/SPIRV SPIRVAPITest.cpp

[SPIR-V][NewPM] Use runCodeGenPipeline in SPIRVTranslate (#238451)

SPIRVTranslate will be able to pick NewPM once SPIR-V defaults to it
DeltaFile
+18-0llvm/unittests/Target/SPIRV/SPIRVAPITest.cpp
+4-12llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+22-122 files

FreeBSD/src 6a99232 — . Makefile.inc1

Makefile.inc1: Fix bare $ characters

The '$' characters inside awk commands need to be $$ when appearing
inside a Makefile.  Without this, we generate empty src and src-sys
packages.

Reported by:    Stefan Grundmann
Fixes:          a8be89928930 ("build: Support got")
MFC after:      1 day
DeltaFile
+2-2Makefile.inc1
+2-21 files

FreeBSD/ports 7c17408 — security/vuxml/vuln 2026.xml

security/vuxml: Document rsync denial of service

Sponsored by:   Netzkommune GmbH
DeltaFile
+34-0security/vuxml/vuln/2026.xml
+34-01 files

LLVM/project 8469104 — llvm/lib/Support UnicodeNameToCodepointGenerated.cpp, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.896bit.ll amdgcn.bitcast.960bit.ll

Merge branch 'main' into users/DavidTruby/lld-coff-per-target
DeltaFile
+108,333-130,089llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+35,435-42,258llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+32,719-17,350llvm/test/CodeGen/AMDGPU/frem.ll
+23,347-23,371llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+19,306-23,044llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+18,036-21,726llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+237,176-257,83826,085 files not shown
+2,111,953-1,155,41026,091 files

NetBSD/src hBPYHIg — sys/arch/sparc64/sparc64 trap.c

   sun4v: Remove incorrect mem_address_not_aligned trap printout.

   Need to figure out how to print the actual address causing the trap.
VersionDeltaFile
1.202+5-15sys/arch/sparc64/sparc64/trap.c
+5-151 files

LLVM/project 5db9b2b — libc/src/__support str_to_float.h, libc/test/src/__support str_to_float_test.cpp str_to_double_test.cpp

[libc] Bound the decimal point check in simple_decimal_conversion (#238179)

HighPrecisionDecimal clamps the decimal point to 1 << 30, but
exp10_to_exp2
is only valid for inputs below 646456636. For larger decimal points the
result wrapped to a negative value, so the "too large" and "too small"
checks did not trigger and the shift loops ran tens of millions of
iterations until exp_2 overflowed (signed integer overflow).

Treat decimal points at or beyond the valid range of exp10_to_exp2 as
out of
range, and use add_overflow/sub_overflow for exp_2 in the shift loops so
that they stay well defined.

Assisted-by: Claude (Anthropic)
DeltaFile
+24-5libc/src/__support/str_to_float.h
+15-0libc/test/src/__support/str_to_double_test.cpp
+10-0libc/test/src/__support/str_to_float_test.cpp
+49-53 files

LLVM/project bfaf4cb — llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Only apply vector math attributes to floating point vectors

i128 is now <2 x i64> on Win64, which made the vector type checks treat
integer helpers like __atomic_load_16 as vector math functions and mark
them nosync and nofree. Check for a floating point vector argument.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+6-2llvm/lib/IR/RuntimeLibcalls.cpp
+6-21 files

LLVM/project e71256a — utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[Bazel] Fixes d1acd0e (#238460)

This fixes d1acd0ef6ff890d73593dbbd8caf2e2dc7f64169 (#237605).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=d1acd0ef6ff890d73593dbbd8caf2e2dc7f64169

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

LLVM/project 4025c5a — llvm/lib/Target/AArch64 AArch64.h AArch64SLSHardening.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+14-5llvm/lib/Target/AArch64/AArch64SLSHardening.cpp
+7-0llvm/lib/Target/AArch64/AArch64.h
+21-52 files

LLVM/project ba12fde — llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

SelectionDAG: Use the memory type for atomic libcall actions

The atomic libcall selection is driven by the memory type, not the
legalized value type. Convert targets to use the LibCall action
instead of Expand.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-11llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+6-12llvm/lib/Target/Mips/Mips16ISelLowering.cpp
+6-12llvm/lib/Target/ARM/ARMISelLowering.cpp
+16-0llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+9-6llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+7-7llvm/lib/Target/AVR/AVRISelLowering.cpp
+62-484 files not shown
+76-5110 files

LLVM/project 4aaea35 — clang/docs BoundsSafetyImplPlans.md BoundsSafety.md, clang/docs/BoundsSafety BoundsSafetyAdoptionGuide.md index.md

[BoundsSafety][Docs] Add an index page and upstream status for -fbounds-safety (#238142)

Move -fbounds-safety docs into BoundsSafety/ without changing their
content.

Add BoundsSafety/index.md as the landing page for the -fbounds-safety
docs. It covers how to contribute, standardization efforts in WG14,
open-source adoption efforts, RFCs, and talks.

Add upstream status and the link #238453, which lists what is available
upstream, what is in progress, and what is planned, with links to the
relevant PRs and issues.

Leave a stub at the old BoundsSafety.html location so existing links
keep working.

Assisted-by: Opus 5.5
DeltaFile
+5-967clang/docs/BoundsSafety.md
+969-0clang/docs/BoundsSafety/BoundsSafety.md
+0-238clang/docs/BoundsSafetyImplPlans.md
+237-0clang/docs/BoundsSafety/BoundsSafetyImplPlans.md
+117-0clang/docs/BoundsSafety/index.md
+79-0clang/docs/BoundsSafety/BoundsSafetyAdoptionGuide.md
+1,407-1,2053 files not shown
+1,410-1,2919 files

LLVM/project dc8efda — clang/test/AST ast-print-float-shortest.cpp, clang/test/PCH objc_literals.m

[clang][APFloat] Print floating-point literals in the shortest round-trip form (#218471)

StmtPrinter printed a `FloatingLiteral` at the maximum round-trip
precision, so `3.14` printed as `3.1400000000000001`. This patch adds
`APFloat::toStringShortest` and calls it from `PrintFloatingLiteral`.
NaN, infinity, and zero keep the old path.

`toStringShortest` computes the shortest digit count from the value's
rounding interval (Ryu's formulation with a Dragonbox-style grid anchor)
in exact APInt arithmetic, so every IEEEFloat semantics works. The
existing `toString` then formats at that count and the round trip is
verified. PPCDoubleDouble keeps a plain probe from precision 1.

Two cases keep the natural-precision form:
- An integer in fixed notation has exact digits; a shorter form would
only switch it to scientific notation. `100.0` prints as `100.`, not
`1.0E+2`.
- The largest value of a format with neither infinity nor NaN parses
back from any larger string by saturation, which is not a round trip.

    [24 lines not shown]
DeltaFile
+261-0llvm/unittests/ADT/APFloatTest.cpp
+175-0llvm/lib/Support/APFloat.cpp
+134-0clang/test/AST/ast-print-float-shortest.cpp
+15-0llvm/include/llvm/ADT/APFloat.h
+6-5mlir/lib/IR/AsmPrinter.cpp
+3-3clang/test/PCH/objc_literals.m
+594-85 files not shown
+605-1511 files

LLVM/project 2291989 — llvm/include/llvm/IR RuntimeLibcalls.td RuntimeLibcallsImpl.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Declare vector libcall attributes in TableGen

Replace the type-based heuristics for vector math libcall attributes
with attributes declared on the libcall definitions, emitted with the
same attribute table helpers as intrinsics.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+226-1llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+103-0llvm/test/TableGen/RuntimeLibcallEmitter-attributes.td
+26-51llvm/lib/IR/RuntimeLibcalls.cpp
+52-0llvm/test/TableGen/RuntimeLibcallEmitter-attributes-errors.td
+44-3llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+23-9llvm/include/llvm/IR/RuntimeLibcalls.td
+474-641 files not shown
+478-687 files

LLVM/project 8fe8575 — llvm/utils/TableGen/Basic IntrinsicEmitter.cpp AttributeTableEmitter.h

TableGen: Move attribute set and sequence table helpers to a header

Move AttributeSetTable and AttributeSequenceTable out of
IntrinsicEmitter into a reusable header so the runtime libcall emitter
can use the same encoding.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+112-0llvm/utils/TableGen/Basic/AttributeTableEmitter.h
+1-83llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+113-832 files

LLVM/project 4a4f5ab — llvm/lib/IR RuntimeLibcalls.cpp, llvm/test/TableGen RuntimeLibcallEmitter-attributes.td

RuntimeLibcalls: Mark vector libcall out pointers dereferenceable

The whole vector width will be written, so mark the vector width. To
maintain the element width alignment for some functions, we need to
start explicitly tracking if the element alignment is used or not.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+9-5llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+10-3llvm/test/TableGen/RuntimeLibcallEmitter-attributes.td
+11-2llvm/lib/IR/RuntimeLibcalls.cpp
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
+6-6llvm/test/Transforms/Util/DeclareRuntimeLibcalls/amdlibm.ll
+48-282 files not shown
+53-348 files

LLVM/project 26a5520 — llvm/utils/TableGen/Basic IntrinsicEmitter.cpp

Use UniqueVector for the intrinsic attribute tables
DeltaFile
+15-24llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+15-241 files

LLVM/project 92537ed — llvm/utils/TableGen/Basic IntrinsicEmitter.cpp

TableGen: Unique intrinsic attribute tables by attribute value

Unique the intrinsic attribute tables by the attributes themselves
rather than by CodeGenIntrinsic, and separate the uniquing from the
emission in AttributeSetTable and AttributeSequenceTable so other
emitters can reuse them.

This also fixes MaxNumAttrs, which was computed from one representative
intrinsic per argument attribute sequence and could undercount.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+223-171llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+223-1711 files

LLVM/project df2e3bc — llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Use <2 x i64> for i128 libcall types on Win64

Win64 passes __int128 by reference and returns it in XMM0. i128 uses
GPR pairs, and <2 x i64> uses the correct vector register. This
matches the type AtomicExpand and clang uses for these functions.

Also fix AtomicExpand to use the correct type for UEFI (which should
eventually use the type information in RuntimeLibcallsInfo).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+581-144llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+84-0llvm/test/Transforms/AtomicExpand/X86/expand-atomic-libcall-i128-win64.ll
+8-2llvm/lib/IR/RuntimeLibcalls.cpp
+2-2llvm/lib/CodeGen/AtomicExpandPass.cpp
+1-0llvm/test/CodeGen/X86/atomic-nocx16-win.ll
+676-1485 files

LLVM/project d975373 — llvm/lib/Transforms/Scalar SimpleLoopUnswitch.cpp, llvm/test/Transforms/SimpleLoopUnswitch trivial-unswitch-droppable.ll

[SimpleLoopUnswitch] Do not let droppable instructions block trivial unswitching (#238292)

In a loop such as
```c
for (...) {
  __builtin_assume(i < n);
  if (c) break;   // c is loop-invariant
  ...
}
```
the invariant exit should be unswitched trivially as `c` is checked once
before the loop with no copy of the loop. Instead, the assume stops
trivial unswitching since the pass gives up at any instruction that may
have side effects before the branch, and `llvm.assume` claims to write
memory so that it is not deleted as dead code. The loop then goes
through non-trivial unswitching, which duplicates the loop body.

Skip droppable instructions (`llvm.assume`, `llvm.pseudoprobe`,
`llvm.experimental.noalias.scope.decl`) in that check. LoopDeletion uses
the same principle.
DeltaFile
+189-0llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-droppable.ll
+1-1llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
+190-12 files