LLVM/project 6ea8383 — llvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen RegAllocGreedy.cpp LiveIntervals.cpp

[CodeGen] Drop dead SlotIndexes before allocation

SlotIndexes keeps the index list entry of an erased instruction and only
clears its instruction pointer. Live range sizes are measured in slot
indexes and greedy ranks ranges by size, so the leftovers inflate some
ranges more than others and reorder allocation, spilling heavily on
register-starved functions.

Add SlotIndexes::compactIndexes() to erase them. Erased entries are
unlinked, so holding an index to one is now a bug; linkedEntry() asserts
on it. The one analysis that did was LiveIntervals, so add
removeUnreferencedIntervals() to retire the intervals responsible.

Off by default behind -greedy-compact-slot-indexes, since it changes
allocation across much of the test suite.
DeltaFile
+288-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+43-0llvm/lib/CodeGen/SlotIndexes.cpp
+32-0llvm/test/CodeGen/AMDGPU/greedy-compact-slot-indexes.ll
+23-6llvm/include/llvm/CodeGen/SlotIndexes.h
+17-0llvm/lib/CodeGen/LiveIntervals.cpp
+12-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+415-71 files not shown
+419-77 files

LLVM/project dc61a53 — clang/lib/Serialization ASTWriter.cpp, clang/test/Modules stdin-source-locations.cppm

[Modules] Don't treat piped input as file input (#233371)

Close https://github.com/llvm/llvm-project/issues/229431

The root cause of the problem is, clang treat the filename from stdin as
<stdin>. Then when there are multiple input files from stdin, the cache
status is polluted.

This patch fixes this as not treating piped input as file input.

This may show another concern as if we have different file contents with
the same name, it may be problematic.
DeltaFile
+34-0clang/test/Modules/stdin-source-locations.cppm
+5-3clang/lib/Serialization/ASTWriter.cpp
+39-32 files

LLVM/project 470fbd4 — compiler-rt/lib/scudo/standalone tsd_shared.h, compiler-rt/lib/scudo/standalone/tests tsd_test.cpp

[scudo] Only lock active TSDs in TSDRegistrySharedT::disable() (#233617)

TSDRegistrySharedT::disable() and enable() run around fork() via
pthread_atfork and lock and unlock all TSDsArraySize TSDs. Only the
first NumberOfTSDs TSDs can ever be handed to a thread, so touching the
rest only dirties their pages.

On Android (TSDsArraySize 8, NumberOfTSDs 2 by default), unlocking the
six inactive TSDs in the child writes to their mutex words and causes
copy-on-write faults on five otherwise untouched .bss pages in every
forked process. On an idle device this is 20 KiB of private dirty
memory per Zygote-forked process, or about 2.3 MiB across the ~120 such
processes.

Bound both loops by NumberOfTSDs, matching drainCaches() and getStats().
setNumberOfTSDs() only grows the count and only while holding Mutex,
which disable() holds until enable(), so both loops see the same value.

Also call disable()/enable() in TSDRegistryTSDsCount before and after

    [3 lines not shown]
DeltaFile
+7-2compiler-rt/lib/scudo/standalone/tsd_shared.h
+7-1compiler-rt/lib/scudo/standalone/tests/tsd_test.cpp
+14-32 files

LLVM/project bcd85bc — mlir/lib/Conversion/AsyncToLLVM AsyncToLLVM.cpp, mlir/lib/Conversion/RaiseWasm RaiseWasmMLIR.cpp

[mlir][NFC] Simplify rewrite/conversion using-decls to use Base alias (#233586)

Follow up on #230717.
DeltaFile
+21-21mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
+20-20mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
+16-16mlir/lib/Conversion/RaiseWasm/RaiseWasmMLIR.cpp
+13-13mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
+9-9mlir/lib/Dialect/MemRef/Transforms/EmulateNarrowType.cpp
+9-9mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
+88-8823 files not shown
+151-15129 files

Illumos/gate 6ec2e51 — usr/src/lib/libofmt/common ofmt.c, usr/src/pkg/manifests system-test-utiltest.p5m

18521 libofmt can mishandle right justification
Reviewed by: Toomas Soome <tsoome at me.com>
Approved by: Gordon Ross <gordon.w.ross at gmail.com>
DeltaFile
+366-0usr/src/test/util-tests/tests/libofmt/libofmt_print.c
+64-0usr/src/test/util-tests/tests/libofmt/Makefile
+41-17usr/src/lib/libofmt/common/ofmt.c
+3-1usr/src/pkg/manifests/system-test-utiltest.p5m
+2-1usr/src/test/util-tests/tests/Makefile
+3-0usr/src/test/util-tests/runfiles/default.run
+479-196 files

LLVM/project 773e8ef — clang/lib/Basic/Targets AArch64.h AArch64.cpp, clang/lib/Driver Driver.cpp

[clang] Add aarch64-unknown-uefi target

Add the aarch64-unknown-uefi target to clang, building on the backend
support added in the preceding patches. Like x86_64-unknown-uefi it
follows the Microsoft ABI conventions, matching the Windows ARM64 target
which is the only way EFI applications for AArch64 can be built with
Clang/LLVM today:

* add UEFIAArch64TargetInfo: LLP64 types, Microsoft C++ ABI, char*
  based va_list and the Win64 calling convention kind,
* use the Windows AArch64 ABI info in CodeGen for UEFI,
* accept aarch64 for *-uefi triples in the driver.

The UEFI toolchain already handles the linker invocation (lld-link with
/subsystem:efi_application), so no further driver changes are needed.

Assisted-by: Claude
DeltaFile
+50-0clang/lib/Basic/Targets/AArch64.cpp
+43-0clang/test/CodeGen/AArch64/uefi-abi.c
+19-0clang/test/Driver/aarch64-uefi-constructed-args.c
+14-0clang/lib/Basic/Targets/AArch64.h
+0-6clang/test/Driver/unsupported-target-arch.c
+4-2clang/lib/Driver/Driver.cpp
+130-89 files not shown
+147-915 files

LLVM/project 3c996bf — llvm/docs ReleaseNotes.md, llvm/lib/Target/AArch64 AArch64CodeLayoutOpt.cpp AArch64MachineFunctionInfo.cpp

[AArch64] Apply the Windows SEH and CRT codegen constraints to UEFI

aarch64-unknown-uefi uses SEH unwind information and has no C runtime
library, so the remaining Windows specific codegen decisions that follow
from this apply to it too:

* do not align loops or basic blocks, since SEH unwind info generation
  needs the exact function layout before alignment padding is inserted,
* sign return addresses with the B key by default and reject A key
  signing, matching the pac_sign_lr unwind code used by the unwinder;
  the branch protection parser defaults to the B key for UEFI as well,
  so that -mbranch-protection=pac-ret keeps working,
* do not lower wide shifts to libcalls at -Oz, as those helpers are not
  available.

The corresponding Windows tests gain aarch64-unknown-uefi run lines and
the LLVM release notes announce the new target, which completes the
backend side of aarch64-unknown-uefi support.

Assisted-by: Claude
DeltaFile
+18-0llvm/unittests/TargetParser/TargetParserTest.cpp
+5-5llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+2-2llvm/lib/TargetParser/ARMTargetParserCommon.cpp
+2-2llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
+4-0llvm/docs/ReleaseNotes.md
+1-1llvm/lib/Target/AArch64/AArch64CodeLayoutOpt.cpp
+32-103 files not shown
+35-109 files

LLVM/project 36ca1d6 — clang/lib/Driver/ToolChains CommonArgs.cpp Clang.cpp, clang/test/Driver aarch64-uefi-constructed-args.c aarch64-security-options.c

[clang][Driver] Use the Windows ARM64 defaults for aarch64-unknown-uefi

Match the Windows ARM64 driver defaults for aarch64-unknown-uefi, which
follows the same ABI:

* char is signed, so do not pass -fno-signed-char,
* the frame chain must stay valid even when frame pointers are omitted,
  so -fomit-frame-pointer yields -mframe-pointer=reserved rather than
  none, as the backend reserves the frame pointer for UEFI as well,
* -msign-return-address selects the B key, the only one the backend
  accepts for Windows and UEFI.

Assisted-by: Claude
DeltaFile
+9-0clang/test/Driver/aarch64-uefi-constructed-args.c
+9-0clang/test/Driver/aarch64-security-options.c
+4-4clang/lib/Driver/ToolChains/CommonArgs.cpp
+4-4clang/lib/Driver/ToolChains/Clang.cpp
+26-84 files

LLVM/project 3b42208 — llvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64Subtarget.cpp

[AArch64] Classify global references on UEFI like Windows COFF

Apply the Windows COFF rules for global references to
aarch64-unknown-uefi, which produces the same PE/COFF images:

* classify dllimport and non-dso-local globals with MO_DLLIMPORT /
  MO_COFFSTUB, so extern_weak symbols are referenced through a stub that
  can be resolved to zero by the linker,
* keep the existing SelectionDAG, FastISel and GlobalISel handling of
  calls and tail calls to extern_weak functions in sync with that,
* default to the PIC relocation model, so jump tables and other
  references stay position independent in relocatable PE images,
* lower ifuncs on UEFI as COFF has no support for them.

The extern weak and jump table tests gain aarch64-unknown-uefi run lines,
and a new test checks that the default pipelines lower ifuncs for both
Windows and UEFI.

Assisted-by: Claude
DeltaFile
+47-0llvm/test/CodeGen/AArch64/ifunc-lower-coff.ll
+3-3llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+3-3llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+2-2llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+2-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+3-0llvm/test/CodeGen/AArch64/windows-extern-weak.ll
+60-93 files not shown
+63-119 files

LLVM/project 75ecbf7 — llvm/lib/Target/AArch64 AArch64MachineFunctionInfo.cpp AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 win-alloca-no-stack-probe.ll no-stack-arg-probe.ll

[AArch64] Probe large stack frames with __chkstk on UEFI

Like Windows, aarch64-unknown-uefi has no guard page handling of its
own, so frames larger than the probe size are probed with __chkstk
instead of inline probing, and "no-stack-arg-probe" disables it.

Tests: chkstk.ll, no-stack-arg-probe.ll and win-alloca-no-stack-probe.ll.

Assisted-by: Claude
DeltaFile
+1-1llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
+1-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-1llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+2-0llvm/test/CodeGen/AArch64/no-stack-arg-probe.ll
+2-0llvm/test/CodeGen/AArch64/chkstk.ll
+1-0llvm/test/CodeGen/AArch64/win-alloca-no-stack-probe.ll
+8-36 files

LLVM/project 243e81e — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[AArch64] Use __chkstk for dynamic stack allocation on UEFI

Register the Windows __chkstk stack probe helper for aarch64-unknown-uefi
and lower dynamic stack allocations through it, including the SME ZA
buffer allocation in LowerFormalArguments. GlobalISel falls back to
SelectionDAG for dynamic allocas on UEFI as it does on Windows.

Tests: win-alloca.ll, the vla in win64_vararg.ll (which now runs in full
on UEFI) and sme-lazy-save-windows.ll.

Assisted-by: Claude
DeltaFile
+3-2llvm/include/llvm/IR/RuntimeLibcalls.td
+2-2llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+2-2llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+1-1llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
+1-0llvm/test/CodeGen/AArch64/win-alloca.ll
+1-0llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll
+10-71 files not shown
+11-77 files

OpenBSD/ports WMGX50E — lang/gcc/16 Makefile

   lang/gcc/16: build stage1 compiler with -O2

   By default it builds stage1 compilers as -g only which leads to large binaries
   like ~350Mb on amd64, and replacing it by -O2 reduces size of them to ~50Mb.

   What reduces build time at fast amd64 with NVME from ~28 to ~15 minutes.
VersionDeltaFile
1.31+3-0lang/gcc/16/Makefile
+3-01 files

LLVM/project ea3cc1d — llvm/lib/TargetParser AArch64TargetParser.cpp, llvm/test/CodeGen/AArch64 arm64-platform-reg.ll

[AArch64] Reserve x18 as the platform register on UEFI

Both the Windows ARM64 ABI, which UEFI follows, and the firmware
ecosystem (EDK2 builds AArch64 with -ffixed-x18) treat x18 as a reserved
platform register. Reserve it by default for aarch64-unknown-uefi, as is
already done for Windows, Darwin, Android, Fuchsia and OHOS.

Assisted-by: Claude
DeltaFile
+1-1llvm/lib/TargetParser/AArch64TargetParser.cpp
+1-0llvm/test/CodeGen/AArch64/arm64-platform-reg.ll
+2-12 files

LLVM/project 89ac1c4 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64FrameLowering.cpp, llvm/test/CodeGen/AArch64 win64cc-backup-x18.ll

[AArch64] Treat the Win64 calling convention as native on UEFI

Functions using the Win64 calling convention on a non-Windows target
back up x18 and are excluded from tail call optimization, because x18
is the platform register there. On UEFI the Win64 convention is the
native one, so apply the Windows behaviour.

Tests: win64cc-backup-x18.ll gains Windows and UEFI run lines showing
that neither backs up x18 and both tail call.

Assisted-by: Claude
DeltaFile
+8-0llvm/test/CodeGen/AArch64/win64cc-backup-x18.ll
+1-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1-1llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+10-23 files

LLVM/project 0f9900a — llvm/lib/Target/AArch64 AArch64Subtarget.h AArch64RegisterInfo.cpp, llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp

[AArch64] Use the Win64 calling convention and va_list on UEFI

UEFI follows the Windows ARM64 procedure call standard, as
x86_64-unknown-uefi already follows the Win64 one. Use it for C, Fast
and Swift calls on aarch64-unknown-uefi: the Win64 variadic convention
(all remaining argument registers are homed and floating point variadic
arguments travel in GPRs), the char* va_list for va_copy, and the
preserve_none variant that follows the Win64 rules.

Tests: win64_vararg_float.ll (SelectionDAG, FastISel and GlobalISel),
win64_vacopy.ll (SelectionDAG and GlobalISel va_copy),
preserve_nonecc_varargs_win64.ll and preserve_nonecc_call.ll.
isArgumentRegister follows for consistency; it only feeds
-fzero-call-used-regs, which is a no-op on Windows ARM64 today.

Assisted-by: Claude
DeltaFile
+23-0llvm/test/CodeGen/AArch64/win64_vacopy.ll
+7-6llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+5-4llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+3-3llvm/lib/Target/AArch64/AArch64CallingConvention.td
+2-2llvm/lib/Target/AArch64/AArch64Subtarget.h
+2-2llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+42-174 files not shown
+48-1810 files

LLVM/project e4b8580 — llvm/cmake/modules LLVMExternalProjectUtils.cmake

[CMake] Avoid reconfiguring runtimes on every incremental build (#233347)

Because llvm_ExternalProject_Add uses BUILD_ALWAYS, building builtins
triggers runtimes-configure to re-run CMake on every incremental build
(such as `ninja compiler-rt`) even when nothing changed.

Assisted-by: Gemini
DeltaFile
+1-0llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+1-01 files

LLVM/project 2fb732d — llvm/lib/Target/AArch64 AArch64RegisterInfo.cpp AArch64Subtarget.h, llvm/test/CodeGen/AArch64 regress-w29-reserved-with-fp.ll uefi-frame-record-pairing.ll

[AArch64] Use the Windows callee saved registers and frame chain on UEFI

aarch64-unknown-uefi already emits Windows (SEH) unwind info, but CodeGen
still used the AAPCS callee saved register order, which produces
non-consecutive save_regp pairs and trips the "Non-consecutive registers
not allowed for save_regp" assertion for any function with a frame
record. Introduce AArch64Subtarget::isTargetUEFI() and
isTargetWindowsOrUEFI() and use the latter for the Windows callee saved
register list, the matching frame record pairing rules, and the
requirement that the frame chain stays valid in every function.

Tests: uefi-frame-record-pairing.ll (prologue pairing and the object
file) and regress-w29-reserved-with-fp.ll (x29 reserved by default).

Assisted-by: Claude
DeltaFile
+47-0llvm/test/CodeGen/AArch64/uefi-frame-record-pairing.ll
+6-7llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+7-0llvm/lib/Target/AArch64/AArch64Subtarget.h
+2-1llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+2-0llvm/test/CodeGen/AArch64/regress-w29-reserved-with-fp.ll
+64-85 files

LLVM/project 8512f7c — llvm/docs MIRLangRef.md, llvm/include/llvm/CodeGen MIRYamlMapping.h

[MIR] Make `tracksRegLiveness` true by default (#233589)

After this, we'll be able to drop the thousands of `tracksRegLiveness:
true` lines.
DeltaFile
+3-5llvm/docs/MIRLangRef.md
+1-1llvm/include/llvm/CodeGen/MIRYamlMapping.h
+4-62 files

LLVM/project 7c1208a — lldb/include/lldb/DataFormatters TypeSynthetic.h, lldb/source/DataFormatters TypeSynthetic.cpp

[lldb] Replace ConstString in GetIndexOfChildWithName (#233577)

Most of these are just doing things like comparisons and don't actually
benefit from interning.
DeltaFile
+8-7lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp
+10-5lldb/source/Plugins/Language/ObjC/NSException.cpp
+9-5lldb/include/lldb/DataFormatters/TypeSynthetic.h
+6-7lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
+7-5lldb/source/DataFormatters/TypeSynthetic.cpp
+5-4lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+45-3339 files not shown
+142-11445 files

LLVM/project 02b5549 — mlir/lib/Dialect/MemRef/IR MemRefOps.cpp, mlir/test/Dialect/MemRef invalid.mlir

[mlir][memref] Reject memref.reshape with static shape and unranked result (#223496)

The memref.reshape docs list two forms: a shape operand of static length
with a ranked result, or a shape operand of dynamic length with an
unranked result. The verifier only checks this pairing when the result
is
ranked, so the third combination (static length, unranked result) is
accepted:

```mlir
%0 = memref.reshape %src(%shape) : (memref<*xf32>, memref<2xindex>) -> memref<*xf32>
```

Both consumers of the op pick the ranked code path from the shape
operand alone and then cast the result type to MemRefType, which asserts
on the unranked result: MemRefReshapeOpLowering in MemRefToLLVM (the
reporter's -convert-openmp-to-llvm crash, also reachable through
-finalize-memref-to-llvm) and MemRefReshapeOpConverter in
-memref-expand.

    [12 lines not shown]
DeltaFile
+8-0mlir/test/Dialect/MemRef/invalid.mlir
+4-1mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+12-12 files

LLVM/project a946310 — clang/lib/CodeGen CodeGenFunction.h CGExpr.cpp, clang/test/CodeGen attr-counted-by-align-value.c

[Clang][counted_by] Keep the align_value assumption on the bounds-checked load

With -fsanitize=array-bounds, a subscript of a 'counted_by' pointer field
loads the pointer directly from the field's l-value, so that the bounds
check can reuse the field's address instead of re-evaluating the base.
That load bypassed ScalarExprEmitter, which is where the 'align_value'
assumption for a loaded l-value is emitted. Enabling array-bounds
therefore silently dropped the llvm.assume alignment bundle and, with
-fsanitize=alignment, the alignment-assumption check as well.

Move EmitLValueAlignmentAssumption from ScalarExprEmitter into
CodeGenFunction, so that the direct-load path can share it, and call it
on the loaded pointer.

Assisted-by: Claude Opus 5.5
DeltaFile
+2-36clang/lib/CodeGen/CGExprScalar.cpp
+35-0clang/lib/CodeGen/CodeGenFunction.cpp
+27-0clang/test/CodeGen/attr-counted-by-align-value.c
+8-3clang/lib/CodeGen/CGExpr.cpp
+6-0clang/lib/CodeGen/CodeGenFunction.h
+78-395 files

LLVM/project 2fbd0c7 — mlir/lib/Interfaces CMakeLists.txt

[mlir] Added missing cmake dependency. (#233628)
DeltaFile
+1-0mlir/lib/Interfaces/CMakeLists.txt
+1-01 files

LLVM/project d22d801 — mlir/lib/Dialect/Arith/Transforms IntRangeOptimizations.cpp, mlir/test/Dialect/Arith int-range-narrowing.mlir

[mlir][arith] Drop invalid overflow flags when narrowing (#233324)

Preserve `nsw` only when narrowing preserves signed operand and result
values, and `nuw` only when it preserves unsigned values. Flags proven
at the original width may otherwise introduce poison after narrowing.

Add concrete regression cases for `addi`, `subi`, `muli`, and `shli`,
covering both overflow flags and retention of valid flags.

Assisted-by: Codex
DeltaFile
+162-0mlir/test/Dialect/Arith/int-range-narrowing.mlir
+13-0mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
+175-02 files

LLVM/project a7d1c52 — mlir/lib/Dialect/Arith/IR ArithOps.cpp, mlir/test/Dialect/Arith canonicalize.mlir

[mlir][arith] Fix integer-to-float comparison canonicalization

Reject conversions that can produce NaN or saturate, and formats
that cannot represent zero or signed inputs. Preserve safe rewrites
when the integer range fits the floating-point exponent range.

Handle unconditional cmpf predicates without reaching an unreachable
case. Add regression coverage for exotic formats and rounding limits.

Validation used existing binaries; no rebuild was performed.
DeltaFile
+193-0mlir/test/Dialect/Arith/canonicalize.mlir
+31-1mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+224-12 files

LLVM/project fa21a15 — clang/test/CodeGen opt-record-remarks-section.c, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[llvm] Absolutize the remarks filename using LLVMContext's VFS (#233483)

This builds on top of https://github.com/llvm/llvm-project/pull/232879
to replace two calls to `sys::fs::make_absolute()` (that trigger IO
sandbox violations) with a centralized call to
`vfs::FileSystem::makeAbsolute()`.

rdar://184781402
DeltaFile
+26-0clang/test/CodeGen/opt-record-remarks-section.c
+11-0llvm/lib/IR/LLVMRemarkStreamer.cpp
+5-5llvm/lib/Remarks/YAMLRemarkSerializer.cpp
+2-1llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+44-64 files

LLVM/project 7a5ca9b — llvm/docs AMDGPUInstructionNotation.md AMDGPUInstructionSyntax.md

[LLVM][docs] Finish MyST migration for AMDGPU docs

Clean up the rst2myst output for the AMDGPU docs: repair MyST syntax,
convert tables and cross-references to native MyST where practical, and keep
generated heading IDs and labels stable. Keep eval-rst only for the large grid
and simple tables that have no practical native MyST equivalent.

LLM-aided
DeltaFile
+15,904-15,696llvm/docs/AMDGPUUsage.md
+786-759llvm/docs/AMDGPUModifierSyntax.md
+481-400llvm/docs/AMDGPUOperandSyntax.md
+401-259llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.md
+68-101llvm/docs/AMDGPUInstructionSyntax.md
+36-63llvm/docs/AMDGPUInstructionNotation.md
+17,676-17,2781 files not shown
+17,679-17,2827 files

LLVM/project 0c9e965 — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/include/clang/CIR/Interfaces CIRLoopOpInterface.td

[CIR] Implement 'flattening' for loop hints (#233567)

The loop hints need to be propagated to the branches that jump back to
the 'beginning' of an iteration. This patch adds the loop-hints to the
br/brcond operations, and makes sure they are propagated during
flattening.

Additionally, EHABI Lowering work needed to happen to make sure the
original branch's loop_hints are rebuilt with the cir.br. There wasn't a
good way to test this that I could find, so it is purely for
completeness.

This is the 2nd in a set of 3 patches, the previous made sure the
frontend lowered to CIR, the next will make sure we lower properly to
LLVM-IR.
DeltaFile
+442-48clang/test/CIR/CodeGen/loop-hints.cpp
+38-19clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
+15-5clang/include/clang/CIR/Dialect/IR/CIROps.td
+10-0clang/include/clang/CIR/Interfaces/CIRLoopOpInterface.td
+4-4clang/test/CIR/Transforms/flatten-loop-cleanup.cir
+4-1clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
+513-776 files

FreeBSD/ports ce97aa4 — games/etlegacy Makefile distinfo

games/etlegacy: Update to 2.86.2
DeltaFile
+7-7games/etlegacy/distinfo
+2-2games/etlegacy/Makefile
+9-92 files

LLVM/project 17e88c8 — lldb/bindings/python python.swig, lldb/docs doxygen.cfg.in

[lldb][docs] Share formatting links between Doxygen and Sphinx

Define a documentation alias that expands to an absolute URL in Doxygen
and a Sphinx doc reference in generated Python docstrings. This keeps
links clickable in both outputs without absolute self-link warnings.

LLM-aided
DeltaFile
+5-0lldb/bindings/python/python.swig
+2-1lldb/docs/doxygen.cfg.in
+1-1lldb/include/lldb/API/SBThread.h
+1-1lldb/include/lldb/API/SBFrame.h
+1-1lldb/include/lldb/API/SBFormat.h
+10-45 files

NetBSD/pkgsrc exP3lkg — lang/librep distinfo, lang/librep/patches patch-configure.ac patch-configure

   librep: note upstream version of some build fixes

   (There actually is an upstream still, it just hasn't released anything
   since 2017, and its main archive site is no longer functioning. Their
   patching here is basically the same as what was already committed.)
VersionDeltaFile
1.27+3-3lang/librep/distinfo
1.2+2-1lang/librep/patches/patch-configure.ac
1.2+2-1lang/librep/patches/patch-configure
+7-53 files