[AArch64][PAC] Reset `killed` operand flags in outlined functions
Presently, MachineOutliner does not take `killed` operand flags into
account when merging instruction sequences. While it sounds perfectly
reasonable not to inhibit merging of the instruction sequences that
only differ in `killed` flags (for N flags there is technically 2^N
valid ways to drop some subset of them), copying these flags from
an arbitrarily chosen representative instruction may result in
incorrect codegen of PAuth-related pseudo instructions on AArch64.
To keep `killed` flags conservatively correct as if `OUTLINED_FUNCTION`s
are virtually re-inserted at every call site, this patch takes the
simplest approach of resetting every `killed` flag inside the
outlined functions.
[SPIR-V] Correct predicated load/store opcode values (#220062)
This PR fixes the `SPV_INTEL_predicated_io` extension instruction
opcodes to match the SPIR-V header definitions.
tools: Compute the module DataLayout from the triple, not the TargetMachine (#224259)
TargetMachine::createDataLayout is an unreliable cache given the
existence of module flags which change the datalayout, so this should be removed.
Migrate tool users to directly compute the datalayout.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[AMDGPU] Insert exec-forced V_NOP after V_PERM_PK16 (gfx1250 hazard)
On gfx1250 the V_PERM_PK16 family (V_PERM_PK16_B4/B6/B8_U4) has a hazard:
the instruction must be immediately followed by a "safe" instruction that
issues on the pipe which clears the hazard. Insert V_NOP with forced
non-zero EXEC as needed.
Assisted-by: Opus 4.8 Medium
[AArch64] Support lowering of wider interleaved load (#222998)
After type legalization wider interleaved load gets spllitted into
legal chunked load, perform a dag combine to turn it into interleaved
load if chunked load is contiguous and operand to vector_deinterleave.
[VPlan] Keep a recipe's metadata when converting it to a single scalar. (#224359)
If metadata applies to each lane, it also trivially applies when
narrowing an operation to just a single lane. Preserve metadata when
narrowing to single-scalar.
[clang-tools-extra][docs] Use Furo theme to match clang (#222196)
Adopt the shared Furo configuration for the clang-tools-extra
documentation.
I forgot to commit the `utils/docs/remove_page_tocs.py` helper script
that I used to scrub the TOCs, so I included it in this PR. We can
remove the script later. Anyway, I used it in this PR to remove the TOCs
from clang-tools-extra.
I also ported over the CSS viewport width rules from Clang, but I'm
keeping them separate between all the doc projects that use furo now
(llvm, libc, clang, clang-tools-extra) since different projects have
made different choices.
Clang Furo PR: https://github.com/llvm/llvm-project/pull/214869
RFC:
https://discourse.llvm.org/t/rfc-use-furo-theme-for-clang-docs/91505/7
Preview:
https://clangdocs.staging.reidkleckner.dev/after/clang-tools-extra/docs/
[Github] Disable AArch64 Premerge (#224367)
Disable AArch64 Premerge for now as the AWS credit renewal has not come
in yet and the foundation is currently paying for this out of pocket. We
have new AArch64 coverage now from MacOS.
Discussed in the infrastructure area team meeting 9/17/26.
Remove ConstString from Section (#224170)
Section names do benefit from deduplication, but most are small enough
to fit into a std::string without an allocation (i.e. SSO). We trade a
small amount of memory to avoid the cost of a ConstString
lookup/creation.
[lldb] Detect cycles when following DIE references (#223912)
A DW_TAG_subprogram whose DW_AT_specification points at its own offset
causes both GetDIENamesAndRanges and GetDeclContextDIEContainingDIE to
keep recursing
Track the DIEs already visited, the way the sibling GetAttributes helper
does. GetDIENamesAndRanges also moves to a worklist so a long chain of
distinct specifications no longer costs a stack frame per DIE.
rdar://186891786