[TargetLowering][COFF] Allow GlobalAlias in lowerRelativeReference (#220674)
In commit 2b321e2f293a (#203171), splitAndWriteThinLTOBitcode was
updated to create a GlobalAlias with external linkage for promoted
internal globals instead of renaming them directly.
When generating COFF object files on Windows (such as MSVC RTTI
CompleteObjectLocator structures), relative references against
@__ImageBase (e.g. sub (ptrtoint @alias to i64), (ptrtoint @__ImageBase
to i64))
are lowered to IMAGE_REL_AMD64_ADDR32NB (VK_COFF_IMGREL32) relocations
in TargetLoweringObjectFileCOFF::lowerRelativeReference.
Previously, lowerRelativeReference checked `!isa<GlobalObject>(LHS)`,
which rejected GlobalAlias instances. As a result,
lowerRelativeReference returned nullptr, and AsmPrinter fell back to
emitting a raw MC subtraction expression. This caused
WinCOFFObjectWriter
to fail with:
[9 lines not shown]
[SanbdoxIR][SandboxVec] AuxPassArgs for auxiliary pass arguments (#224450)
This patch implements helper classes for handling the pass auxiliary
arguments. These classes handle the parsing of the auxiliary argument
string such that the passes themselves won't have to deal with it.
We currently only support boolean arguments that are false by default.
If an argument shows up in the string then it is set to true.
Example:
```
AuxPassArgsRegistry ArgsRegistry; // The "parent" of the arguments
AuxPassArg Arg1 = ArgsRegistry.createArg("arg1");
AuxPassArg Arg2 = ArgsRegistry.createArg("arg2");
...
ArgsRegistry.parse("arg1"); // From this point on (bool)Arg1 evaluates to true.
```
[5 lines not shown]
Merge tag 'drm-fixes-2026-09-19' of https://gitlab.freedesktop.org/drm/kernel
Pull drm fixes from Dave Airlie:
"Things have picked back up a bit this week, mostly amdgpu, xe and msm
this time. There are a bunch of scattered changes across the rest of
drivers and core stuff, nouveau, i915.
core:
- fix vblank pending event leak
ttm:
- swapout fixes
dma-buf:
- scattergather fixes
- enable dma-buf debug on debug kernels
dma-fence:
- fix signaling bit checks
[85 lines not shown]
[llvm-jitlink] Rework out-of-process launch/connect options (#224632)
Replace -oop-executor and -oop-executor-connect, which were mutually
exclusive and each parsed their own ad hoc connection syntax, with two
orthogonal options built on the shared ConnectionSpec parser:
-oop-launch [<path>] Launch an out-of-process executor (default:
llvm-jitlink-executor).
-oop-connect <spec> How to connect to the executor, whether or not
it was launched by llvm-jitlink.
Either may be used alone (matching the old -oop-executor and
-oop-executor-connect behavior) or combined, e.g. to have llvm-jitlink
bind and listen while the executor it launches dials back in:
llvm-jitlink -oop-launch -oop-connect=tcp:listen=127.0.0.1:0 a.o
Both llvm-jitlink and llvm-jitlink-executor now parse connection
[15 lines not shown]
[llvm][AArch64] Fix FPDiff founding direction in non-sibcall tail calls (#223545)
This fixes another subtle bug in frame accounting (see: #217156 /
#220406), for tail calls that have a non-multiple of 16 bytes worth of
stack arg area, and need that stack arg re-use to be increased to cover
the alignment requirement. This is best illustrated with callers
containing 8 formal arguments covering the first 8 GPRs (x0-x7),
followed by 9 bytes of argument passed on the stack.
In a callee-pops tail call (e.g. tailcc/swifttailcc), the set of
reusable stack arg area bytes has already been sufficiently aligned by
LowerFormalArguments, so growing NumBytes up to StackAlign is enough to
consume that excess. Otherwise (e.g. a plain C-convention call, forced
off the sibcall path, as in the aarch64_inout_za tests), we can't rely
on either having been pre-aligned, so we round NumBytes up to the same
residue mod StackAlign as NumReusableBytes, which cancels the residue
out of their difference (FPDiff), thus keeping the stack aligned going
into the callee.
[11 lines not shown]
[lldb] Get IRExecutionUnit mangling-mode from llvm::Module. (#224595)
Get the mangling mode (IRExecutionUnit::m_strip_underscore) from the
llvm::Module at IRExecutionUnit construction time, rather than getting
it from the llvm::ExecutionEngine in GetRunnableInfo.
This is a step towards decoupling IRExecutionUnit from
llvm::ExecutionEngine / MCJIT.
Reland "[llvm][AArch64] Ensure stack alignment in non-sibcall tail calls with FPDiff" (#220406)
When a caller has a non-multiple of the minimum stack alignment more
argument stack space than the callee it is tail calling, we need to ensure that
the resulting FPDiff's magnitude has been rounded up to a multiple of the
platform's minimum stack alignment.
In this re-land there is a fixup to 234ce03692ede13ffd2fcb35570d801c1e332814,
which, because of the wrong order, wasn't actually moving NumBytes after
FPDiff had been re-aligned.
rdar://184474075
(cherry picked from commit 393710bbf74c4e7b92226603a18ead0bba70a8a0)
bnxt: Initialize RSS with the common key
Use rss_getkey() for the initial VNIC key instead of generating a
per-attachment private key. Preserve the writable rss_key sysctl,
its override lifetime, the hardware DMA representation, and all hash
and indirection settings.
Reviewed by: gallatin
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D59795
[CIR] Harden static-local lowering against malformed .cir (#224744)
Enforce that a `static_local_guard` is always paired with a
`static_local_info` attribute via a GlobalOp verifier.
[libc++] Reword confusing warning message about AppleClang version (#222380)
AppleClang 26.4 is not a thing -- it's AppleClang 21.0 that shipped with
Xcode 26.4.
(cherry picked from commit 9e39a5e4a606e2ef8e46bd4a947f0b39feacecc7)