[clang] Unique the QualType-keyed type pools in a UniquingSet. NFC (#221850)
Eight of the ASTContext type pools key on a QualType, or on a QualType
and a bool. The `get*Type()` functions incur the FoldingSetNodeID
serialization overhead before probing the hash table.
Switch to UniquingSet. Define `QualTypeBoolInfo` for three pools that
key on a QualType and a bool, because DenseMapInfo has no bool
specialization.
After the canonical type is built, these getters re-probe to refresh the
insert token. A token is now a hash (#218190), not a bucket, so nothing
invalidates it; fold the re-probe into the assertion it feeds.
Aided by Opus 5
[clang] Reject __super when preceded by a scope specifier (#221492)
The `__super` keyword is an MSVC extension that refers to the base class
of the current class context. It is fundamentally invalid for `__super`
to be qualified by another scope specifier (e.g. `::__super` or
`N::__super`).
Fixes #212988
---------
Co-authored-by: Shengxin Pei <TPPPP72 at outlook.com>
Co-authored-by: Corentin Jabot <corentinjabot at gmail.com>
[GlobalISel] When folding to fma correctly find fpext(fmul) with fewer uses (#218013)
When folding: `(fadd (fpext (fmul x, y)), z) -> (fma (fpext x), (fpext
y), z)` and both addends are candidates, correctly pick the side with
fewer uses. Previously the code looked for a `fmul` with the fewest uses
rather than a `fpext(fmul)`.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
[X86] Prefer carry to overflow flag when using multiplication (#221611)
For all possible MUL/IMUL it will always output CF==OF, and CF is better
folding, so there's absolutely no reason the x86 backend should be
checking OF instead of CF for any form of multiply.
Did the change in FastISel too for consistency.
drm/amd/display: Prune per-tile Timing from Apple Studio Display Primary Tile
From Fangzhi Zuo
4628e40c9ca79c7ca6d55ee0d5da1839c2d0b4c7 in linux-6.18.y/6.18.50
7a4dd08c3f921576c6a7524f60e4f0e4601835d2 in mainline linux
drm/amd/display: hide Apple Studio Display secondary tile
From Jerry Zuo
7d860bed133698eefa7f5f808c7dbce1c2738b96 in linux-6.18.y/6.18.50
49521be4809d63fe3efb6bc68ee11cb1e1ef3d63 in mainline linux
[MIPS] Support MIPS I hard-float double loads/stores with LWC1/SWC1 (#209362)
MIPS I lacks LDC1/SDC1. This patch implements double precision
loads/stores using LWC1/SWC1 instructions.
* Add BuildPairF64_FPR and ExtractElementF64_FPR nodes
* Use them in lowerLOAD/lowerSTORE for MIPS I hard-float
* Avoid redundant mtc1/mfc1 instructions
Matches GCC behavior for MIPS I hard-float.
Fix #62190.
drm/amd/display: Refactor amdgpu_dm_connector_detect (v2)
From Timur Kristof
c6b915f0df31121524253f1410da7b3dd43e92b7 in linux-6.18.y/6.18.50
8223a605744bb471f31018eac9075a539415b16f in mainline linux
drm/amd/display: Skip PHY SSC reduction on some 8K panels
From Roman Li
a1fa3d1197cc2a5d8d55f9cab8bb07c3367431ec in linux-6.18.y/6.18.50
144169e7be0831e09958a906d08d1856751aa6c6 in mainline linux
drm/amd/display: Avoid NULL dereference in dc_dmub_srv error paths
From Srinivasan Shanmugam
2ab18de5ebb11c76bfc8087c5a09fbcccd0dea8a in linux-6.18.y/6.18.50
4ae3e16f4b3bf64140f773629b765d605ee079a9 in mainline linux
[libc++][ranges] Implement LWG 3599 (#221573)
Implement [LWG 3599](https://wg21.link/LWG3599) by requiring
`forward_range<const Pattern>` for the `const` overloads of
`lazy_split_view::begin` and `end`.
This adds tests for disabled `begin()` and fallback `end()` on
non-const-forward patterns, as well as a regression test for
`view_interface::front()`.
Closes #189808
[Clang][Modules] Fix ODR handling of types found through using-declarations (#221839)
Fixes #78850.
Clang can diagnose an ODR violation for identical definitions when a
type is
found directly in one module's global module fragment and through a
using-declaration in another. The lookup routes produce different AST
type
wrappers even though they refer to the same declaration.
Normalize `UsingType` to the target declaration's type before hashing
it. Keep
the keyword and qualifier from the use site, rather than from the
using-declaration. This also lets the hash distinguish differently
qualified
uses without canonicalizing away meaningful spelling differences.
The normalization exposes an existing assertion in the enum ODR
[74 lines not shown]
[BOLT][RISCV] Mark newly created tail calls (#221672)
Tail calls created during CFG normalization lack the tail-call
annotation, so FixRISCVCallsPass rewrites them as regular calls that
clobber ra.
Set the annotation in createTailCall(). Clear builder annotations before
moving the originals when rebuilding calls to avoid duplicate annotation
markers.
Add a relocation-mode regression test for a conditional tail call.
[lld][MachO] Ignore relocated bytes when folding LSDAs (#220155)
AArch64 exception tables reference type info through PC-relative
pointer-to-GOT relocations. The assembler leaves the negated field
offset in each relocated field, which the linker ignores, so identical
tables differ in their raw bytes and are never folded. Treat
__gcc_except_tab like __eh_frame and zero the relocated fields before
ICF hashes and compares it.
Folding these LSDAs exposes a latent issue: the LSDA pointer of a DWARF
FDE is resolved to an InputSection when the FDE is parsed and is never
canonicalized after ICF. A function that is unwound via its FDE and
whose LSDA was folded away therefore gets an __unwind_info LSDA entry
computed from the dead input section. Fixed it in the same commit.
This patch is LLM-driven, but the issue was observed in production and
the test is reduced from the production object.
net/coturn: Update to 4.18.0
Upstream NEWS content, less bugfixes and minor improvements:
Release 4.18.0
Changelist:
- Deprecate option drop-invalid-packets (#2078) (Pavel Punsky <eakraly at users.noreply.github.com>)