[CodeGen][AMDGPU] Move boilerplate unit test code to base class (NFC) (#196547)
This adds the `CodeGenTestBase` class to handle boilerplate code for
codegen unit tests and makes use of it wherever possible, in particular
in AMDGPU unit tests.
Furthermore, this makes all AMDGPU unit tests rely on GoogleTest's API
for "run once per test-suite" code, instead of re-implementing that
behavior using a `std::once` flag. As a consequence all TEST(...) become
TEST_F(...).
This patch enables the fexec-charset option to control the execution charset of string literals. It sets the default internal charset, system charset, and execution charset for z/OS and UTF-8 for all other platforms.
[flang][docs] Removed HighLevelFIR transition plan section (#196227)
Removed the "Transition Plan" section from flang/docs/HighLevelFIR.md,
since the transition has completed a long time ago and the legacy
lowering code is being removed now.
[X86] Remove tests for non-existant intrinsics. NFC (#196237)
There is no PSRAQ instruction until AVX512. The incorrect intrinsic
names were just being interpreted as a call to an external functional.
[lldb] Add --changed option to `settings show` (#196390)
Add a `--changed`/`-c` flag to `settings show` that restricts the output
to settings whose current value differs from the default. This makes it
easy to inspect what has been customized in a session or config without
scrolling through the full property tree.
One thing worth calling out is that this works as expected with explicit
property paths, for example you can show only the modified settings
belonging to `target`:
```
(lldb) set show -c target
target.load-script-from-symbol-file (enum) = true (default: trusted)
(lldb)
```
If nothing has been changed, the output is empty:
[5 lines not shown]
Updated remove() method to ensure registers and units are in sync.
If there is aliasing between 2 entries in physical register tracker,
the remove method for one of those registers may remove regunits
that correspond to the other entry that is still in the tracker. This
produces an inconsistency. This patch fixes this problem by first
removing the register/units but then reconstructing the units from
the remaining registers that are present in the tracker.
[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%.
[PowerPC] Add _Float16 datatype support for Power8+ with -mfloat16 flag
This patch introduces experimental half-precision floating-point (_Float16)
support for PowerPC Power8 and later architectures, enabled via the new
-mfloat16 compiler flag.
Key changes:
- Add -mfloat16 flag to enable half-precision floating-point support
- Register f16 as a legal type using VHFRCRegClass (VSX half-precision registers)
- Implement f16 operations with promotion to f32 for arithmetic operations
- Add hardware conversion support for Power9+ (xscvhpdp/xscvdphp instructions)
- Use libcall conversions for Power8 (__extendhfsf2, __truncsfhf2, etc.)
- Support direct load/store operations for f16 values
- Handle f16 in calling conventions with proper register allocation
- Add comprehensive test coverage for AIX and Linux platforms
The implementation addresses correctness issues from GitHub issues #97975
(intermediate precision) and #97981 (NaN payload corruption) by treating
f16 as a first-class type rather than using lossy conversion functions.
[3 lines not shown]
[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.