[clang][modules] Deserialize submodules lazily (#194968)
This PR implements on-demand deserialization of `Module` objects from
PCM files. This is motivated by dependency scanning, where eager
deserialization of submodules turns out to be very expensive and
typically unnecessary. The core of this patch is the introduction of
`ModuleRef`, which may either be a pointer to `Module`, a pointer to new
`ExternalSubmoduleSource` (implemented by `ASTReader`) and
`serialization::SubmoduleID`, both, or none (null). Dereferencing
`ModuleRef` ensures the `Module` is deserialized if possible.
This replaces `ASTReader::UnresolvedModuleRefs` and changes the
structure of a PCM file a bit, most importantly introducing new
`SUBMODULE_CHILD` record that enables hooking up the laziness into the
qualified by-name lookup that uses `Module::SubModuleIndex`.
This speeds up dependency scanning by ~5.5%.
[mlir][vector] Implement IndexedAccessOpInterface for load, store, etc. (#196216)
This commit adds simple (not trying to account for unit dimensions that
could be cast away) implementations of IndexedAccessOpInterface to
low-level vector operations like vector.load and vector.store,
eliminating the need for the old-style code in FoldMemRefAliasOps.cpp.
After this commit, it'll be possible to migrate all the other
memref-rewriting passes (ExpandAddressComputation and FlattenMemRefs) to
use the interface, taking a bunch of dialect dependencies off of
memref/transforms.
Assisted-By: GPT 5.5 (pulled in old code, wrote some new tests)
sysutils/firstboot-pkg-upgrade: New port
Introduce an rc.d service to upgrade all packages on first boot,
ensuring cloud images are deployed with no known vulnerabilities. By
default, it will patch everything from all enabled repos, and record
this in syslog. It accepts an optional additional line that specifies
a list of space-separated specific repos to limit the upgrade to.
Note specifying bogus repos results in the upgrade aborting,
it will log This and will not try to not run again.
MFH: 2026Q2
Sponsored by: Amazon
Sponsored by: Google Cloud
Sponsored by: OVHcloud
Reviewed by: bapt, cperciva
Discussed with: bapt, cperciva, delphij, lwhsu
Differential Revision: https://reviews.freebsd.org/D56381
(cherry picked from commit 89d217ad06ead7f1138121ca2aa30099bba23165)
sysutils/firstboot-pkg-upgrade: New port
Introduce an rc.d service to upgrade all packages on first boot,
ensuring cloud images are deployed with no known vulnerabilities. By
default, it will patch everything from all enabled repos, and record
this in syslog. It accepts an optional additional line that specifies
a list of space-separated specific repos to limit the upgrade to.
Note specifying bogus repos results in the upgrade aborting,
it will log This and will not try to not run again.
MFH: 2026Q2
Sponsored by: Amazon
Sponsored by: Google Cloud
Sponsored by: OVHcloud
Reviewed by: bapt, cperciva
Discussed with: bapt, cperciva, delphij, lwhsu
Differential Revision: https://reviews.freebsd.org/D56381
Symbol names on arm64 can have an extra char on front of name (#194937)
My previous change (https://github.com/llvm/llvm-project/pull/192132)
didn't work with aarch64. The symbol name has the \x01 on the front and
the greps fail. Update the expression for the grep to allow for that
char.
Sorry about that. The original grep with `@pipe` also fails on aarch64 &
macos. The negative test those greps are doing will always pass on
aarch64 & macos. That should be looking for the updated symbol name too.
sys/time: appease gcc -Wtype-limits
In environments where time_t is 32 bits, including the 32-bit library
build on amd64, the overflow being tested for cannot happen, and gcc
complains with -Wtype-limits, causing the gcc build to fail. Work
around this by ifdef'ing out the saturation code on i386.
Reviewed by: imp, jfree
Discussed with: markj
Fixes: e3799530b3ba ("sys/time: Add saturating sbt conversions")
Differential Revision: https://reviews.freebsd.org/D56369
(cherry picked from commit 00dccc3164c6dff38350a1baeeea7238acf2efc3)
Services: Kea DHCPv4/6: Build reservation status from control socket output, so it matches the scope of individual subnets as well. Add client-id since it's relevant for IPv4 leases as well in default configuration.
We return an array now, change frontend detection if it's dynamic or static lease
Missed a closing bracket
Typo in client_id
Remove unused imports in LeasesController
Add comment to build_reserved_matches() to explain why the subnet-id logic exists now
[llvm][Instrumentor] Fix expected error message (#196540)
The test checks that passing the current directory for the stub runtime
file path is detected an error. However, the exact error message may
depend on the OS.
clang: Consolidate -aux-triple handling
All of the offload languages were essentially doing the
same thing, with overcomplicated conditions conditional on
the language.
Make "make update-packages" idempotent
If the user runs "make update-packages" without bumping BRANCH, then it
isn't possible to copy packages from the old location to the new one
(because the two locations are the same). So just skip that step.
Sponsored by: ConnectWise
PR: 295085
MFC after: 1 week
Reviewed by: ivy, emaste
Differential Revision: https://reviews.freebsd.org/D56872
[AMDGPU] Pre-commit unit test for RP tracking reset/advance behavior
This adds a new AMDGPU unit test file for testing the behavior of
`GCNRPTracker` and its related classes. The two test showcase confusing
return value and behavioral semantics for variants of the advance and
reset functions, which will be clarified in a follow up commit.
This also moves some common test helpers from other AMDGPU unit tests to
the `AMDGPUUnitTests` TU to avoid repetition between unit tests.
[SLP][X86] Forward gather VL to getShuffleCost for broadcast-of-load
ShuffleCostEstimator::finalize() emits the user-visible final shuffle on
top of the gather node, but it called the local createShuffle helper
without forwarding the gathered scalars. Consequently
X86TTIImpl::getShuffleCost(), which folds vbroadcast{ss,sd} of a
load into TCC_Free under AVX/AVX2, could not see the underlying load
and overestimated the cost of the splat permutation by one unit,
occasionally dropping a profitable vectorization.
Also, modified the TTI cost estimation to handle correctly the cost for
the scalar code before actual admission of the vector broadcast.
Reviewers: hiraditya, RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/195859