cross/ia16-elf-binutils-bootstrap: import ia16-elf-binutils-bootstrap-2.39pre20260424
GNU Binutils for IA16 (for example, 8086 and 80286) MS-DOS cross environment.
This package is only for bootstrapping toolchain.
[GlobalISel] emit G_BITCAST in widenScalarUnmergeValues when SrcTy is float (#204541)
widenScalarUnmergeValues emits G_LSHR and G_TRUNC to extract
sub-register pieces from the source. The shift amount and the shift
itself are built with SrcTy, so when the source is a floating-point
scalar (e.g. bf16) the extraction ends up in the float domain:
```
%1:_(bf16) = G_CONSTANT i16 8
%2:_(bf16) = G_LSHR %0:_(bf16), %1:_(bf16)
```
**Fix:** Before the shift/trunc extraction sequence, check if SrcTy is a
float type and bitcast it to the corresponding integer type.
[BOLT] Default heatmap block sizes to cache line, pages and hugepage (#215427)
The defaults were 64, 4K, 256K. 4K is the page size only on x86-64 and
on
AArch64 kernels built that way; AArch64 also runs 16K and 64K base
pages, and
256K corresponds to nothing in particular on either.
Use 64, 4K, 16K, 64K, 2M: the cache line, the three base page sizes in
use, and
the PMD hugepage above a 4K base page. Each granularity then maps onto a
real
capacity, which is what makes the working set numbers comparable to one
-- L1i
lines, iTLB and L2 TLB entries, frontend region-table entries.
Two more granularities cost two more passes over an already-built map,
no extra
decoding.
[5 lines not shown]
[BOLT] Keep the spelling of input heatmap block sizes (#215426)
The block-size parser turns "64K" into 65536 and discards the original
text,
keeping it only for error messages. The working set log then has to
either
reprint the raw value or reformat it back, and reformatting invents a
spelling
the user did not choose: "1MiB" comes back as "1M".
Store the spelling next to the value and echo it. Heatmap file names
keep using
the numeric value, matching the existing "dumping heatmap with bucket
size N"
message and the -<size> suffix that tests already expect.
Test Plan:
updated heatmap-preagg.test
[6 lines not shown]
[OpenMP][flang] Use auto-generated data for modifier verification
Introduce descriptors of OpenMP clauses and modifiers, auto-generated
from OpenMP specification data[*].
This replaces the preexisting modifier descriptors used in flang,
the code using it is adjusted to use the new definitions.
[*] This does not contain any actual auto-generation infrastructure.
The descriptors were generated by a custom script from the exported
OpenMP definitions.
Enforce single-operand form for llvm.loop.vectorize.scalable metadata (#215742)
Replace the two-operand boolean form
!{!"llvm.loop.vectorize.scalable.enable", i1 0/1} with a single-operand
enable/disable pair:
!{!"llvm.loop.vectorize.scalable.enable"}
!{!"llvm.loop.vectorize.scalable.disable"}
The Verifier rejects the two-operand form, AutoUpgrade rewrites old
bitcode, and the readers and producers in LLVM, Clang and MLIR are
updated.
RFC:
https://discourse.llvm.org/t/rfc-enforce-single-operand-format-for-all-enable-metadata-nodes/90571
[NFC][AST] Make nullability attributed-type construction const (#215756)
Make the nullability-specific `ASTContext::getAttributedType` overload
`const` and remove a now-unneeded `const_cast` from array-decay
handling.
This addresses feedback from
https://github.com/llvm/llvm-project/pull/215266#discussion_r3751285430.
Reviewers: @j-hui @Xazax-hun @egorzhdan
CodeGen: Remove TargetOptions::FloatABIType
This is now fully replaced with the "float-abi" module flag.
If the module flag is not present, the default is computed
from the triple. Consumers are updated to read the module flag.
RuntimeLibraryAnalysis now defers analysis until run() on a Module,
instead of during the pass constructor as before. This requires copying
all of the remaining relevant TargetOptions so they are available
when the module is seen.
Unfortunately, ARM still depends on TargetOptions for determining
the float-abi. -target-abi=aapcs16 still changes the default float-abi,
but an explicit module flag wins.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[LV] Use wide lane masks as the canonical form when tail-folding & interleaving (#209484)
Previously, when passing -enable-wide-lane-mask to request the use of wide
lane masks, tryToReplaceALMWithWideALM would attempt to replace several
ActiveLaneMasks created during unrolling with a single mask + extracts.
This PR removes tryToReplaceALMWithWideALM from VPTransforms and makes
wide lane masks the canonical form when interleaving a tail-folded loop
which uses ActiveLaneMask for control flow, as discussed on #193757.
During unrolling, the multiplier is set to UF for ActiveLaneMask and one
ExtractSubvectorForPart instruction for each part is created. Unnecessary
ExtractSubvectorForParts are removed during the generate stage if the loop
is not unrolled, otherwise this creates an extract subvector for each part.
This does not change the default behaviour for tail-folded loops, which
are still not considered for interleaving by default. The decision on
whether to use a single wide active lane mask with extracts or to split
it up into multiple smaller masks is now left to the backend.
[BOLT] Default heatmap block sizes to cache line, pages and hugepage
The defaults were 64, 4K, 256K. 4K is the page size only on x86-64 and on
AArch64 kernels built that way; AArch64 also runs 16K and 64K base pages, and
256K corresponds to nothing in particular on either.
Use 64, 4K, 16K, 64K, 2M: the cache line, the three base page sizes in use, and
the PMD hugepage above a 4K base page. Each granularity then maps onto a real
capacity, which is what makes the working set numbers comparable to one -- L1i
lines, iTLB and L2 TLB entries, frontend region-table entries.
Two more granularities cost two more passes over an already-built map, no extra
decoding.
[BOLT] Keep the spelling of each heatmap block size
The block-size parser turns "64K" into 65536 and discards the original text,
keeping it only for error messages. The working set log then has to either
reprint the raw value or reformat it back, and reformatting invents a spelling
the user did not choose: "1MiB" comes back as "1M".
Store the spelling next to the value and echo it. Heatmap file names keep using
the numeric value, matching the existing "dumping heatmap with bucket size N"
message and the -<size> suffix that tests already expect.
Test Plan:
updated heatmap-preagg.test
x11-drivers/xf86-video-nv: fix build on powerpc*
nv_driver.c:1387:40: error: incompatible integer to pointer conversion passing 'CARD32' (aka 'unsigned int') to parameter of type 'CARD8 *' (aka 'unsigned char *') [-Wint-conversion]
1387 | vgaHWSetMmioFuncs(VGAHWPTR(pScrn), pNv->IOAddress, 0);
| ^~~~~~~~~~~~~~
/usr/local/include/xorg/vgaHW.h:180:62: note: passing argument to parameter 'base' here
180 | extern _X_EXPORT void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset);
| ^
1 error generated.
It's fine to just pass NULL here because IOAddress is NULL at this line
anyway.
devel/dcd-server: fix poudriere build with BUILD_AS_NON_ROOT=yes
===> Building for dcd-client-0.16.2
Warning Warning: License in sub-package dcd:dsymbol is different than its parent package, this is discouraged.
Warning Invalid source/import path: /wrkdirs/usr/ports/devel/dcd-client/work/DCD-0.16.2/bin
Starting Performing "release" build using /usr/local/bin/ldmd2 for ppc64.
Error /nonexistent: Permission denied
*** Error code 2
lv2: make gtk2 dependency optional, default on
add libsamplerate dependency, add new plugin to PLIST
Remove bl3.mk includes from bl3.mk, this is a header-only library.
Bump PKGREVISION.
[AMDGPU] Account for aliasing reads in RewriteOutArguments (#209908)
Fix AMDGPURewriteOutArguments incorrectly moving an out-argument store
past a potentially aliasing read.
Use the full ModRef result when scanning intervening memory accesses, so
the rewrite is rejected for both reads and writes that may access the
out-argument location.
Fixes #207969.