[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.
Reapply "clang/AMDGPU: Stop looking for oclc_correctly_rounded_sqrt control libraries" (#182877) (#182887)
This reverts commit 47da1cea9780dd3e60bad61fd96250b37469339a.
[Multilib] Extend support for -fmultilib-flag to all targets (#182220)
Support for the `-fmultilib-flag` option has been added to AArch64/ARM.
This patch extends the support of the flag to all targets.
www/dooble: Update 2026.02.09 => 2026.02.15
Changelog:
- Interpret command-line arguments as local files first and then as
remote locations. See 2025.11.25 item.
- New Settings -> Web -> Local Content Can Access File URLs.
- New Settings -> Web -> Special Files Suffixes.
- Sleepy-deepy timers on panel closings.
- Special logic for displaying .desktop files. A page's setContent()
method will be issued whenever the local file has a suffix of
.desktop. GitHub ticket #274.
https://github.com/textbrowser/dooble/releases/tag/2026.02.15
PR: 293203
[lldb] Automatically discover and load dynamic LLDB Plugins (#182628)
LLDB's architecture is heavily centered around plugins. Its primary
purpose is abstraction and modularity, more so than extensibility. For
example, all the in-tree plugins are linked in statically. However, it
is possible to load modules dynamically, though that's mostly aimed at
plugins that built on top of the stable public SB API.
I'm working on support for loading modules dynamically, specifically
in-tree modules that use the LLDB_PLUGIN_DEFINE macro and the
corresponding CMake machinery.
This PR adds support for initializing modules using the symbols
generated by the aforementioned macro. This makes it possible to convert
plugins to shared libraries with minimal changes: is:
- Replace PLUGIN with SHARED in the plugin's CMakeLists.txt.
- Link against libLLDB instead of linking statically against LLVM and
LLDB libraries.
- Re-export all private symbols from libLLDB with
`-DLLDB_EXPORT_ALL_SYMBOLS=ON`.
[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.
Simplify the #if in each unit test
Each test file now just checks `#if COMPILER_RT_ARM_OPTIMIZED_FP` to
decide whether to enable the extra checking, or if it's a function
implemented in Thumb-1 as well, `COMPILER_RT_ARM_OPTIMIZED_FP_THUMB1`.
Conveniently, one of the tests here tests each macro.
[Clang] Fix assertion failure in SDiagsWriter when finish() is not called (#181712)
When `--serialize-diagnostics` is used, `SDiagsWriter` enters bitstream
blocks during its initialization. They are expected to be exited in the
`finish()` method.
However in LibTooling based tools (like `clang-tidy` or `clang-check`),
if a user provides an invalid command-line argument, the driver detects
the error and prepares for an early exit. The exit path leads directly
to destruction, skipping the call to `finish()` that would normally
occur in the main logic. Then the assertion detects this block imbalance
and triggers a crash.
As of AI Usage: Gemini 3 was used to rephrase part of the PR description
Closes https://github.com/llvm/llvm-project/issues/140433
Silence "switch statement contains default but not case labels"; NFC (#182855)
Silences an MSVC C4065 diagnostic that was introduced in
0dd1cb015e8b1439e70c152eb134abb01e1af831
17876 newlocale should understand how libstdc++ names composite locales
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Approved by: Dan McDonald <danmcd at Edgecast.io>
[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.
replace pledge "stdio rpath tmppath" with unveil "/tmp" "rwc" to satisfy
mktemp(3) type operations, unveil "/" "r" for reading all over the tree,
and pledge "stdio rpath wpath cpath" to permit both unveils subject to
their own limitations.
[AArch64][llvm] Gate some `tlbip` insns with +tlbid or +d128
Change the gating of `tlbip` instructions containing `*E1IS*`, `*E1OS*`,
`*E2IS*` or `*E2OS*` to be used with `+tlbid` or `+d128`. This is because
the 2025 Armv9.7-A MemSys specification says:
```
All TLBIP *E1IS*, TLBIP*E1OS*, TLBIP*E2IS* and TLBIP*E2OS* instructions
that are currently dependent on FEAT_D128 are updated to be dependent
on FEAT_D128 or FEAT_TLBID
```
gtk3: Disable wayland and x11 backends for Darwin
Since this rule is in meson.build:
```
if os_darwin
wayland_enabled = false
x11_enabled = false
else
quartz_enabled = false
endif
```
[Clang][SVE] Use Poison instead of Undef when lowering builtins
As per LLVM's official guideline
(https://llvm.org/docs/LangRef.html#undefined-values):
> A ‘poison’ value (described in the next section) should be used
> instead of ‘undef’ whenever possible.
This PR updates the lowering of SVE builtins to use Poison instead of
Undef.