[ELF] Add target-specific relocation scanning for Hexagon (#181596)
Implement Hexagon::scanSectionImpl, following the pattern established
for x86 (#178846) and PPC64. This merges the getRelExpr and TLS handling
for
SHF_ALLOC sections into the target-specific scanner, enabling
devirtualization and eliminating abstraction overhead.
- Inline relocation classification into scanSectionImpl with a switch
on relocation type, replacing the generic rs.scan() path.
- Use processR_PC/processR_PLT_PC for common PC-relative and PLT
relocations.
- Handle GD PLT relocations inline, always setting NEEDS_PLT. Remove
the R_HEX_GD_PLT special case from process().
- Handle TLS IE, GD GOT, and TPREL directly, bypassing
handleTlsRelocation. Remove EM_HEXAGON from the execOptimize check.
- Simplify getRelExpr to only handle relocations needed by
relocateNonAlloc and scanEhSection.
[X86] Correctly call 16 byte atomic helpers on x86_64 Windows (#181356)
On x86_64 Windows, i128 values are returned in xmm0, and as arguments to
functions, they are passed indirectly (rather than in a GPR pair) - see
WinX86_64ABIInfo::classify in Clang [1].
When AtomicExpandPass generates a libcall, it normally generates one
with i128 arguments and return types. This type isn't lowered correctly
(it ends up passed or returned in a pair of GPRs).
To fix this issue, make AtomicExpandPass use the v2i64 type instead of
i128 here, just like Clang would do for an explicit function call; this
type ends up lowered correctly.
This fixes https://github.com/mstorsjo/llvm-mingw/issues/538 and
https://github.com/llvm/llvm-project/issues/136428.
[1]
https://github.com/llvm/llvm-project/blob/llvmorg-21.1.8/clang/lib/CodeGen/Targets/X86.cpp#L3390-L3408
[SLP]Fix revec in split nodes
Initially split nodes do not support vector entries in revec mode, patch
fixes the issue by adding analysis for the scale factor
Fixes #181546
[clang][ssaf] Add EntityLinkage data structure (#181718)
This commit introduces the `EntityLinkage` class to represent the
linkage properties (`None`, `Internal`, `External`) of entities in the
SSAF framework and integrates it into the `TUSummary` class to enable
tracking this information across translation units.
rdar://162571047
Assisted-By: Claude
[CI][ScriptedBuilder] Avoid python 3.12-only option (#181746)
The shutil.rmtree(onexc=) parameter was only added in Python 3.12. Use
onerror= instead whose callback signature takes a different third
parameter which is ignored anyway.
Merge tag 'slab-for-7.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab
Pull more slab updates from Vlastimil Babka:
- Two stable fixes for kmalloc_nolock() usage from NMI context (Harry
Yoo)
- Allow kmalloc_nolock() allocations to be freed with kfree() and thus
also kfree_rcu() and simplify slabobj_ext handling - we no longer
need to track how it was allocated to use the matching freeing
function (Harry Yoo)
* tag 'slab-for-7.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
mm/slab: drop the OBJEXTS_NOSPIN_ALLOC flag from enum objext_flags
mm/slab: allow freeing kmalloc_nolock()'d objects using kfree[_rcu]()
mm/slab: use prandom if !allow_spin
mm/slab: do not access current->mems_allowed_seq if !allow_spin
[llvm][clang] Revert split stacks implementation from runOnNewStack (#181743)
This was potentially causing Clang to emit out of stack space warnings
in rare cases, so I'm reverting it until I can verify the issue. This
keeps the API change as that's known not to be the issue.
[NFC][CodeGen] Minor code cleanup in MIR FrameIndex verification (#181551)
Use variable names conforming to LLVM CS and shorten the code a bit
using `dyn_cast_if_present`.
dns/powerdns-recursor: Update to 5.3.5
PR: 291543
Reported by: Ralf van der Enden <tremere at cainites.net>
Approved by: maintainer (tremere at cainites.net)
Security: 67793feb-0b5b-11f1-a1c0-0050569f0b83