[GlobalISel] Fix UMR in `SwiftErrorValueTracking` (#190273)
Fix issue reported on
https://github.com/llvm/llvm-project/pull/188296#issuecomment-4179103756
`SwiftErrorValueTracking` holds per-function state used by
`IRTranslator`.
On targets where `TargetLowering::supportSwiftError()` is false, (e.g.
wasm) `SwiftErrorValueTracking::setFunction()` exits early.
Historically, that early return happened before clearing per-function
containers, and pointer members (including `SwiftErrorArg`) had no
in-class initialization.
The bad case is a function with a swifterror argument on such a target:
`IRTranslator` uses `SwiftError.getFunctionArg()` without checking
`supportSwiftError()` and this could read an uninitialized
`SwiftErrorArg` value. (SelectionDAG gates the `getFunctionArg` usages
behind `supportSwiftError()`, so it's specific to GlobalISel)
[10 lines not shown]
[VPlan] Mark VPCanonicalIVPHI as not reading memory (NFCI). (#190338)
The canonical IV does not access any memory. Mark accordingly. This
should be NFC end-to-end.
PR: https://github.com/llvm/llvm-project/pull/190338
clang/AMDGPU: Refactor triple adjustments
Factor this similar to the ARM case for future
expansion. The difference being -mcpu is treated as
an alias for -mcpu instead of something separately
useful.
I don't understand this mutation of the triple into
spirv64. The only test where this appears to matter
does not use -mcpu. Previously this would only match
for -mcpu, but this would change the behavior to prefer
-march before falling back to -mcpu.
[CIR] Handle vtable-lowering-with-incomplete types (#190216)
The NYI diagnostic in getFunctionTypeForVTable showed up a few times in
testing, so this patch is attempting to fix that up.
The reproducer here is a function type for a vtable that has an
incomplete type in it(return or parameter). Classic codegen chooses to
represent this as an opaque type.
This patch instead removes the special v-table handling here, so that we
can instead just represent the types as incomplete record types.
At the moment, this patch ends up lowering incomplete types as 'empty'
types in LLVM-IR, which we may find we need to modify in the future,
however at the moment, it seems to work.
This patch ALSO changes the definition of RecordType::isSized to only be
true for complete types, which prevents a number of other things from
attempting to add attributes/check the size of the type/etc, but those
are irrelevant for the purposes of vtable emission.
[CIR] Implement top level 'ExportDecl' emission (#190286)
This is a pretty simple one, its just a type of decl-context. The actual
exporty-ness is handled on a per-declaration basis.
This patch just makes sure we emit them, as I suspect this will reveal
quite a bit more issues in module code I suspect.
Ensure that we cannot negotiate TLSv1.1 or lower.
TLS versions prior to TLSv1.2 were disabled a while ago, however this
was done in the version handling code. Remove TLSv1.1 and earlier from
ssl_get_method() and add an explicit min version check in the legacy
client and server, to provide a stronger guarantee.
ok kenjiro@ tb@
dns/ddclient: add all-inkl.com KAS API DynDNS provider (#5339)
* dns/ddclient: add all-inkl.com KAS API DynDNS provider
Adds a new Python provider for all-inkl.com hosting using the KAS SOAP API
(KasApi.wsdl). Supports A and AAAA records, including root (@) and wildcard (*)
entries. Credentials are passed per-request (no separate auth step).
- allinkl.py: new provider class AllInkl, service key 'allinkl'
- dialogAccount.xml: show Zone field for service_allinkl
- DynDNS.xml: add allinkl to static service list (ddclient backend fallback)
Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
* dns/ddclient: address review feedback for all-inkl.com provider
- Remove allinkl entry from DynDNS.xml; known_services() handles
registration automatically for Python providers
- Replace regex-based XML parsing with xml.etree.ElementTree:
[9 lines not shown]
[clang] Make -dump-tokens option align tokens (#164894)
When using `-Xclang -dump-tokens`, the lexer dump output is currently
difficult to read because the data are misaligned. The existing
implementation simply separates the token name, spelling, flags, and
location using `'\t'`, which results in inconsistent spacing.
For example, the current output looks like this on provided in this
patch example **(BEFORE THIS PR)**:
<img width="2936" height="632" alt="image"
src="https://github.com/user-attachments/assets/ad893958-6d57-4a76-8838-7fc56e37e6a7"
/>
# Changes
This small PR improves the readability of the token dump by:
+ Adding padding after the token name and after the spelling (the
[9 lines not shown]
[AMDGPU][CodeGen] Implement SimplifyDemandedBitsForTargetNode for readfirstlane. (#190009)
Propagate demanded bits through readfirstlane intrinsic in
AMDGPUISelLowering with SimplifyDemandedBitsForTargetNode
implementation.
This allows upstream zero/sign extensions to be eliminated when only a
subset of bits is used after the intrinsic.
Partially addresses #128390.
Pull up following revision(s) (requested by yamt in ticket #242):
sys/uvm/uvm_pdaemon.c: revision 1.135
sys/uvm/uvm_pdaemon.c: revision 1.137
sys/uvm/uvm_pdaemon.c: revision 1.138
sys/uvm/uvm_swap.c: revision 1.210
Add more debugging.
To help understand PR 56764 better.
Ok riastradh@
Disable a kassertmsg.
This triggers for me quite reliably over years now, and has been
tracked in PR 56764, with no resolution.
It seems the asserted inequality just is not correct.
uvmpd_scan_queue: remove ENABLE_UNRELIABLE_CHECK_PR_56764 block
while this condition is true in most of times, we can't
[8 lines not shown]
Pull up following revision(s) (requested by yamt in ticket #240):
sys/dev/nvmm/x86/nvmm_x86_vmx.c: revision 1.93
nvmm_x86_vmx.c: fixes tprof stalls
the current implementation of nvmm nmi handling is
simple; just drops them. it interferes other nmi-using
components in the system, including tprof.
this commit makes nvmm try to dispatch nmis by itself.
while this is imperfect, it's good enough to give
tprof a chance to unmask LAPIC_LVT_PCINT.
i guess svm VMCB_EXITCODE_NMI needs something similar.
but i have no hardware. if someone wants to test a patch,
please let me know.
reproduce recipe:
1. run "tprof top" in a terminal. leave it running.
[2 lines not shown]
Pull up following revision(s) (requested by yamt in ticket #239):
sys/uvm/uvm_mmap.c: revision 1.189
sys_mincore: stop locking potentially huge amount of user memory
the current implementation performs uvm_vslock() on the
user-specified amount of memory. it isn't safe in general.
some might even consider it as a security issue.
this commit fixes it by splitting the user-specified range into
small ones which a temporary kernel buffer can cover. it's ok to
report potentially stale values as the mincore() api is inherently
racy in the first place.
while we still ought to invent a proper "lock user memory for
direct i/o" infrastructue, in this particular use case, it isn't
necessary or appropriate.
Pull up following revision(s) (requested by yamt in ticket #238):
sys/uvm/uvm_mmap.c: revision 1.188
uvm_mmap.c: fix overflow check
this is my best guess of the intention of the original code,
where "*addr + *size < *addr" seems always false because "*size" is 0.
[DAG] isKnownToBeAPowerOfTwo - add missing DemandedElts handling to ISD::TRUNCATE and hidden m_Neg pattern (#190190)
Use MaskedVectorIsZero to match X & -X pattern when only DemandedElts
match the negation pattern
Fixes #181654 (properly)