AArch64: Don't mark the 32-bit stack guard load def as dead
The 32-bit LOAD_STACK_GUARD expansion defines the full 64-bit register
with an implicit-def, so the explicit 32-bit sub-register def is not
dead. If you were to run LiveVariables on this, it would strip the
dead flags. Avoids failing a future verifier check.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Hexagon: Don't duplicate the PC def when converting a return to a restore stub
The RESTORE_DEALLOC_RET_JMP_V4 pseudos already define PC, so copying
all of the return's implicit operands added a second, dead PC def.
This avoids failing a future verifier rule.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CIR] Implement asm-label on builtins, split aix/ppc special names (#232140)
This was a missing feature, where we use the mangled name of the
declaration rather than the builtin name (the mangling just uses
asm-label). This reflects what classic-codegen does.
Additionally, "while I was here", I implemented the AIX/PPC builtin
names for long-double, by splitting out the name special handling into
target utils.
[CIR] Implement a handful of 'simple' attribute missing features (#232131)
I was looking and discovered that Cold/Hot, Minsize, naked,
Noduplicates, and opt-none attributes were all listed in missing
features, yet were pretty trivial. All are probably performance
involved, so it seemed worth it to implement them as effectively
copy-paste from the original implementation.
I DO note however there IS a touch of overlap with
constructAttributesList(which got SOME of the hot/cold/no duplicates
logic), so we might end up double-setting some attributes in some cases,
but they are just unit attributes, so it doesn't particularly matter.
I DID have to modify how SYCL set its attributes, it had a TODO to fix,
which was easier to fix than figuring out how to get the tests to
pass.
[SampleProf][test] Precommit test: loaded profile is re-read on incremental read with a remapper (#231339)
Precommit test showing that `SampleProfileReaderExtBinaryBase::readFuncProfiles` decodes an already-loaded function profile a second time, and merges it into itself, when an incremental read happens while a symbol remapping file is in use.
A follow-up change intends to fix this.
Assisted by: Gemini and Claude
[MemProf] Handle missing alloc contexts in backend assertion checking (#232422)
The combined index only serializes the MIB stack ids for allocation
records when -combined-index-memprof-context is enabled, which defaults
to false in NDEBUG builds. When the thin link is performed by a release
build but the ThinLTO backends are compiled with assertions enabled, the
distributed indexes contain empty MIB contexts, and checkAllocContextIds
in the backend asserts because the summary context is shorter than the
IR metadata context.
Since the MIB context in the summary can never be empty after trimming
the allocation's callsite context, treat an empty context as not
serialized and skip the stack id checking for that MIB.
Add a regression test to memprof-basic.ll that performs a distributed
thin link with -combined-index-memprof-context=false and then runs the
backend.
Assisted-by: Gemini
[HLSL][DirectX] Handles GEPs in dxil resource access pass (#224754)
Add support to traverse through GEPs in dxil resource access pass, as
well as support getbasepointer which is used by cbuffers.
Closes #224102
Assisted by GPT-5.6 Sol, Claude Opus 5.5 and @inbelic
---------
Co-authored-by: joaosaffran <joaosaffran at gmail.com>
Backport security fixes from upstream nsd(8) version 4.15.3.
* CVE-2026-101341: Stack overwrite from specially formatted TXT-DATA
RDATA field
* CVE-2026-101339: Stack overwrite from a specially crafted and
formatted HIP RR
* CVE-2026-101338: Stack overwrite from a specially crafted and
formatted SVCB or HTTPS RR
* CVE-2026-101337: Stack overwrite from specially formatted base64
RDATA field
OK sthen@ renaud@ deraadt@
[flang][OpenMP] Switch clause verification to descriptor-based
Delete all the scattered pieces of clause verification that are now
replaced by the unified handling.
[mlir][Arith] Move ceil/floor div expansion to Conversion/ArithCommon. NFC (#231064)
MLIRArithToLLVM depends on MLIRArithTransforms, which pulls in
Bufferization, SCF, Shard, SparseTensor, Tensor, and Vector, only for
populateCeilFloorDivExpandOpsPatterns (#118839). ClangIR reaches
MLIRArithToLLVM through MLIROpenMPToLLVM.
Move the patterns to a new library, MLIRArithCommonConversion. The
declaration moves from Arith/Transforms/Passes.h to
Conversion/ArithCommon/CeilFloorDivExpansion.h.
LLM-aided. With -DCLANG_ENABLE_CIR=ON, clang links 14 fewer MLIR
libraries (89 -> 75).
pf: Remove a table entry regardless of its mark
pfr_remove_kentry() returns without removing an entry whose mark is
set. The mark is scratch space for the operations that handle a list
of addresses: each resets it before use and leaves it set on the
entries it kept, so after "pfctl -T replace" or "pfctl -T zero" of an
address the entry stays marked. An address a source limiter put in
its table is then never taken out again when the source falls below
the low-water mark.
Remove the entry whether it is marked or not; nothing else is in the
work queue.
Add a regression test.
Reviewed by: kp
Fixes: 461648121230 ("pf: introduce source and state limiters")
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D60530
[DebugInfo] Emit DW_AT_LLVM_address_space for AMDGPU (#220789)
LLVM emits a pointer type's DWARF address space as DW_AT_address_class,
but the
AMDGPU DWARF extensions define DW_AT_LLVM_address_space for exactly
this, so emit
that attribute on AMDGPU targets. Other targets keep
DW_AT_address_class; NVPTX in
particular fills it in via translateToNVVMDWARFAddrSpace() for cuda-gdb.
The choice
goes through a new getTypeAddressSpaceAttribute() hook on DwarfDebug
that
AMDGPUDwarfDebug overrides, installed via createDwarfDebug() as NVPTX
does, so
DwarfUnit.cpp stays target independent.
Depends on: https://github.com/llvm/llvm-project/pull/220728
security/sequoia-chameleon-gnupg: re-update some more crates
Most notably, the downgrade of nettle-sys in the process of updating
libc broke the build.
Pointy-hat to: asomers