[mlir] Migrate AMDGPU/ROCDL to targets, not chipset versions
**migration tl;dr:** `chipset=` becomes `triple=`, migrate off of
`amdgpu::Chipset` to `ROCDL::TargetInfo`, and eventually change
`gfxXYZ` to `amdgpuX.YZ-amd-amdhsa` in that `triple` argument.
`amdgpu::Chipset` was an awkward hack that was hard to keep up to date
with changes in the compiler/new architectures, and didn't properly
support generic targets (and has been strongly disfavored by the
compiler team).
This PR replaces `amdgpu::Chipset` with `ROCDL::TargetInfo`, a
structure that uses LLVM's TargetParser and the underlying LLVM
features tables to get the real nature of the target being compiled
for.
This also helps MLIR move to
new-style (`-mtriple=amdgpuX.YZ-amd-amdhsa`) over "old
style" (`-mtriple=amdgcn-amd-amdhsa -mcpu=gfxXYZ`) triples.
[40 lines not shown]
[mlir][AMDGPU][NFC] Pre-commit tests for incorrect version checks
There'll be a refactoring from `amdgpu::Chipset` to
`ROCDL::TargetInfo`, thus also moving from chip version checks to
features checks. This commit adds tests for incorrect lowerings that
were allowed by the current code.
- gfx90c is >= gfx90a but stil needs atomic emulation (it doesn't
have buffer fmax and so on).
- gfx90c is also >= gfx90a but has no barrier back-off, so it needs
the inline asm workaround around `s_barrier` that it isn't getting
- gfx908 doesn't have a packed fp16 atomic add but we thought it did
- gfx950 is mistakenly allowing xf32 MFMAs
- gfx1200 is allowing permlane_swap instructions that it doesn't have
- gfx11.7 should be allowing OCP FP8 conversions but isn't on the list
This also cleans up some redundant tests with a --check-prefixes
AI disclosure: Claude found these and wrote the tests.
[2 lines not shown]
[AMDGPU] Expose buffer resource num_records width in TargetParser
This also fixes the conflict in gfx12.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
[AMDGPU] Sort frontend-visible feature, add feature-name parsing
Emit `AMDGPUFrontendVisibleFeatures` sorted by name so it can be
binary-searched.
Also add an API for mapping feature name(s) to updates to a feature
bitmap, allowing frontends (MLIR in particular) to parse a
`-mattr`-like string.
AI disclosure; Claude wrote this code.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
[WebAssembly] Add intrinsics and builtins for `memory.copy` and `memory.fill` (#220111)
Add `@llvm.wasm.memory.copy` and `@llvm.wasm.memory.fill` intrinsics,
along with corresponding `__builtin_wasm_memory_copy` and
`__builtin_wasm_memory_fill` Clang builtins.
These map directly to the WebAssembly `memory.copy` and `memory.fill`
instructions, allowing low-level runtime and libc code (such as
Emscripten) to emit bulk memory operations directly in C/C++ without
needing out-of-line assembly.
Fixes: #220086
[scudo] Add MaxCacheResidentBytes to Secondary
Introduce DefaultMaxCacheResidentBytes in the cache configuration and
MaxCacheResidentBytes at runtime to enforce an upper bound on total
resident memory in the Secondary cache.
When storing a block causes resident bytes to exceed the threshold,
physical pages from the oldest cached entries are released to the OS via
releaseAndZeroPagesToOS() while preserving their virtual address
mappings in the cache.
Also adds Option::MaxCacheResidentBytes and M_CACHE_RESIDENT_BYTES_MAX
to allow tuning this limit dynamically via mallopt().
clang: Emit "exception-model" module flag
Record the exception-handling model as an "exception-model" IR module
flag when it differs from the target triple's default, mirroring how
other target ABI properties are recorded. Adds a
CodeGenOptions::toExceptionHandling helper to translate clang's
ExceptionHandlingKind into the LLVM ExceptionHandling enum.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
clang: Distinguish unspecified from disabled exception model
Add ExceptionHandlingKind::Default so clang can tell an unspecified
exception model from an explicit -exception-model=none.
IR: Introduce "exception-model" module flag
Add an "exception-model" IR module flag intended to replace
TargetOptions::ExceptionModel, such that the ABI is fully
computable from the IR alone. Add the basic documentation and
verifier/linker tests, but doesn't wire up the consumers.
The main thing I question is whether the single "wasm" model is
really the correct control. With the existing TargetOption,
WebAssembly is overloading "none" in a weird way that sometimes
means default, and sometimes mean forcibly disabled exceptions.
It additionally has -wasm-enable-eh and -wasm-enable-sjlj cl::opts
and I don't fully understand the interaction between all of these
knobs; the cl::opts are even worse than the TargetOptions since
these still change the ABI and are backend private.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[lld][MachO] Support Objective-C class stubs
Teach Mach-O objc stubs to synthesize class-message stubs that load the class object, selector, and objc_msgSend target.
lld already supports the Apple clang _objc_msgSend$<selector> stub form, even though upstream clang does not currently expose a driver or cc1 flag for emitting it. Apple clang also emits _objc_msgSendClass$<selector>$_OBJC_CLASS_$_<class>; handling that form completes the existing selector-stub support.
Cover local classes, dylib classes, archives, dynamic lookup via -U, missing class symbols, malformed names, unsupported architectures, and dead stripping.
[lld][MachO] Fix ObjC stubs from autolinked archives
Move ObjC stub preparation after LC_LINKER_OPTION processing so archive members loaded via autolink can contribute _objc_msgSend$ selector stubs before selector references are built.
Previously those stubs missed __objc_methname setup; assert builds could fail in makeSelRef, and release builds could form an invalid selector reference.
[lld][MachO] Prepare ObjC stubs for variable sizes
Track ObjC stub sizes explicitly so future changes can mix different stub layouts in one synthetic section.
www/dooble: Update to 2026.08.21
Link with gpgme for use with the application lock function.
Replace /usr/local with ${LOCALBASE}.
Install dictionaries into ${DATADIR} to avoid pageedit conflict.
Remove the unnecessary desktop-file-edit.
Changelog:
https://github.com/textbrowser/dooble/releases#release-2026.08.21
PR: 297900
Approved by: Eric Camachat <eric at camachat.org> (maintainer)
Approved by: osa (mentor)
Co-authored-by: mce
[lldb/test] Suppress crash reports from LLDB's gtest death tests (#218981)
PolicyStackDeathTest.GuardDestroyedOnDifferentThread and
ProcessRunLockDeathTest.MoveLockedAcrossThreads deliberately trip
thread-affinity checks that call report_fatal_error, so the forked
death-test child dies via SIGABRT. On platforms with a system crash
reporter that leaves a crash log behind for each run, which CI scrapes
and reports as a test failure even though both tests pass.
Call llvm::sys::Process::PreventCoreFiles() as the first statement
inside the EXPECT_DEATH block. EXPECT_DEATH forks by default, so this
only affects the child process and leaves the runner's own signal
handling alone. The assertions still hold: report_fatal_error writes to
stderr before aborting, so the regex still matches, and the nonzero exit
status satisfies ExitedUnsuccessfully.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
[LV] Remove dead EpilogueLoopVectorizationInfo::EpiloguePlan (NFC). (#220383)
The field has had no readers since 7f3428d3ed71 ("[VPlan] Compute
induction end values in VPlan.", #112145), which removed the last one.
Remove the dead field.
[SROA] Remove pointer bitcast lookthrough for selects (#220199)
`isSafeSelectToSpeculate` finds load users of the select through
bitcasts. But bitcasts from pointer to pointer don't happen anymore (or
are really uncommon?) after the introduction of opaque pointers. Remove
this functionality.
llvm-opt-benchmark shows no perf diff.
security/openconnect-gui: Remove deprecation notice and expiration date
As per new policies you need to track multiple branches.
I don't have time, hardware or interest trying to additionally keep up
with quarterly so I'll revert deprecation and expiration date
Reported by: joneum
www/dtse: Remove deprecation notice and expiration date
As per new policies you need to track multiple branches.
I don't have time, hardware or interest trying to additionally keep up
with quarterly so I'll revert deprecation and expiration date
Reported by: joneum
devel/etcd: Remove deprecation notice and expiration date
As per new policies you need to track multiple branches.
I don't have time, hardware or interest trying to additionally keep up
with quarterly so I'll revert deprecation and expiration date
Reported by: joneum