net/boinc-client: Build packages for all BOINC projects out of the box
While power users may customize build options to suit their needs,
most common users would greatly benefit from having pre-built packages
suitable to run the widest possible set of BOINC projects available.
MFH: 2026Q4
(cherry picked from commit 42654027c323333d1e4e8ec89cfa84b98ceb4967)
net/boinc-client: Add GNU/Linux graphics options; backport CPU fixes
* Add LINUXGL and LINUXGLU options for GNU/Linux-compat science apps
that require libGL/libGLU (World Community Grid, Rosetta)
* Update hostinfo_unix.cpp patch: fix a CPU vendor-string
register-clobber bug on FreeBSD, expand CPU feature detection
* Add procinfo_unix.cpp and app.cpp patches: add FreeBSD-native
process enumeration and host-wide CPU-busy detection, replacing a
non-functional /proc-based implementation, so CPU-load-based task
suspension works correctly when boinc-client runs inside a jail.
PR: 298296
MFH: 2026Q4
(cherry picked from commit 4f5d4ba57e64902931044bc0f202eba0f655daf4)
[LV] Add tests for runtime checks with AddRecs of sibling loops (NFC). (#230629)
Add tests where the pointer bounds of memory runtime checks contain an
AddRec of an earlier sibling loop: an IV with non-zero start and
non-unit step, a pointer IV used as base in the vectorized loop, and a
truncated i64 IV of a sibling loop with multiple exits.
[SLP]Fix alignment of blended masked loads
Compute the base alignment as the minimum over the lanes instead of
using the full common alignment of the loads.
Fixes #230439
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/230645
[AArch64][llvm] Remove redundant code in tryParseSVEPattern() (#230043)
Remove redundant code in `tryParseSVEPattern()`. This method was
duplicating work already done by the general operand parser. For numeric
operands, it now returns `NoMatch` to let the general parser handle
these.
`isSVEPattern()` checks that the operand is a constant immediate in [0, 31].
This was already doing the range checking and remains unchanged.
Previously it also rejected nonconstant expressions early; the matcher
already rejects those. The custom parser is still needed for named
patterns, but it doesn’t need to handle ordinary immediates as well.
[llvm-readobj][ELF] Print Names for call graph relocations
In a relocatable object file, an entry identified by a relocation had no
Names. Compute the address that the relocation resolves to with
RelocationResolver, look up the functions at that address in the section
of the relocation's symbol, and print them as Names before the
Relocation object.
As with Names for an Address, the names follow --demangle. Nothing is
printed for an undefined symbol, or when no function is at the address.
A relocation type that RelocationResolver doesn't support, or a symbol
whose section can't be found, gets a warning.
Assisted-by: Gemini
[llvm-readobj][ELF] Fall back to Address when no single relocation applies
In a relocatable object file, --call-graph-info identifies a function by
the relocation that applies to its address field. If a field had no
relocation, nothing in the output identified the function. If the
relocation section had an invalid sh_link, the dump stopped. If a field
had more than one relocation, the first one was used silently.
In all of these cases, print the value stored in the field as Address,
as for linked files. Warn once if a call graph section has no relocation
section, and warn about each field with no relocation or more than one.
If the relocations can't be read, only that is reported.
Assisted-by: Gemini
[llvm-readobj][ELF] Print a Relocation object instead of Name in --call-graph-info
In a relocatable file, the address fields of a call graph section hold
placeholders, and the relocation that applies to each field identifies
the function. Name showed only the relocation's symbol name, made up
from the section name for an unnamed section symbol, and dropped the
addend. So entries that refer to a function through a section symbol
couldn't be told apart.
Print a Relocation object instead, with the symbol index, the symbol
name exactly as recorded in st_name, and the addend if it is non-zero.
With --demangle, the demangled symbol name is printed as DemangledName.
If the symbol can't be read, the existing warning is reported and only
the symbol index is printed.
Assisted-by: Gemini
[llvm-readobj][ELF] Print implicit addends of call graph relocations
A SHT_REL relocation, or a SHT_CREL relocation without explicit addends,
keeps its addend in the field that it applies to. Print the
sign-extended field value as the Addend of such a relocation instead of
dropping it. The ARM test now uses SHT_REL and covers the same cases as
the SHT_RELA tests: named symbols, a negative addend, and a section
symbol with an addend.
Assisted-by: Gemini
[llvm-readobj][NFC] Match call graph relocations to address fields in one pass
Read the relocations for a call graph section once, sort them by offset,
and attach each one to the address field it applies to while walking the
fields in order. Each field now stores the existing `Relocation<ELFT>`,
so the printing code no longer searches the relocation list for every
field. The call graph structs become templates so that they can hold it.
Assisted-by: Gemini
[llvm-readobj][ELF] Print call graph callees in section order
Keep both the offset and the value of each address field in the call
graph section, and let the printing code pick the one it needs. Later
patches use the offset to look up relocations.
Callees were stored in a SmallSet, which sorts its elements once it
holds more than four, so the output order depended on the number of
callees. They are now kept in section order, and repeated addresses in
linked files are skipped when printing.
Assisted-by: Gemini
[llvm-readobj][ELF] Don't clear bit 0 of call graph field offsets on ARM
In a relocatable object file, --call-graph-info finds the relocation for
an address field by the field's offset. On ARM, the Thumb bit was
cleared from that offset as if it were an address, so a field at an odd
offset, such as a direct callee, was reported as having no relocation.
Only clear the Thumb bit from addresses.
Assisted-by: Gemini
[llvm-readobj][ELF] Drop redundant counts from --call-graph-info output
NumDirectCallees and NumIndirectTargetTypeIDs only repeat the lengths of
the DirectCallees and IndirectTypeIDs lists that follow them.
Assisted-by: Gemini
net/boinc-client: Build packages for all BOINC projects out of the box
While power users may customize build options to suit their needs,
most common users would greatly benefit from having pre-built packages
suitable to run the widest possible set of BOINC projects available.
MFH: 2026Q4
net/boinc-client: Add GNU/Linux graphics options; backport CPU fixes
* Add LINUXGL and LINUXGLU options for GNU/Linux-compat science apps
that require libGL/libGLU (World Community Grid, Rosetta)
* Update hostinfo_unix.cpp patch: fix a CPU vendor-string
register-clobber bug on FreeBSD, expand CPU feature detection
* Add procinfo_unix.cpp and app.cpp patches: add FreeBSD-native
process enumeration and host-wide CPU-busy detection, replacing a
non-functional /proc-based implementation, so CPU-load-based task
suspension works correctly when boinc-client runs inside a jail.
PR: 298296
MFH: 2026Q4
llc: Verify MIR outputs by default
MIR is validated by the machine verifier on read, but by default wasn't
validated on output. This differs from opt, which runs the verifier on
output unless explicitly disabled. -verify-machineinstrs is frequently used as
a much more expensive way of getting the verifier run, since that runs between
every pass.
Run the machine verifier at the end of the pipeline whenever it stops before code
emission. Add -disable-mir-output-verify to suppress this. It is separate from
-disable-verify, which still only controls verification of the IR input. The
extra verifier is skipped when the verifier already runs after every machine
pass, with -verify-machineinstrs in the legacy pass manager or -verify-each in
the new pass manager.
Some tests had to force disabling the verifier in a few tests which already fail
the verifier.
Unlike opt, the driver can't simply verify after the pass manager finishes.
[5 lines not shown]
NAS-144349 / 28.0.0-BETA.1 / Store dataset and relative_path when creating a WebShare share (by creatorcary) (#19981)
Creating a WebShare share saved it without its `dataset` and
`relative_path`, so `sharing.webshare.query` returned both, along with
`tier`, as null until the share was edited, a pool was imported
(including at boot), or a dataset was unlocked. Creating a share now
stores both values, as editing one already did.
Original PR: https://github.com/truenas/middleware/pull/19980
Co-authored-by: Logan Cary <logan.cary at ixsystems.com>
[AMDGPU] Use instrLatency for memory HWUI cycle accounting (#205418)
Conceptually, the HWUI cycle tracking is meant to model the total usage
for a given HardwareUnit for the current scheduling region. A single
instruction's contribution to this usage is the number of cycles in
which another instruction of the same type can not use this
HardwareUnit. So, for example, a standard V_ADD_F32 contributes one
cycle, as another V_ADD_F32 can use this resource in the next cycle.
However, on MI450, the latency of these instructions from the SchedModel
is 5. This suggests that the property we want for modelling ALU
instructions it the functional unit occupancy of the instruction, which
is captured by ReleaseAtCycle. Thus, we use ReleaseAtCycle for HWUI
cycles for ALU instructions.
However, for memory operations, this accounting is not so simple. There
are many conditions that can occur during runtime that we can not model
in the compiler, but we still need to model the HardwareUnit consumption
for the scheduling region. We model this by saying we can execute M
instructions in N cycles. Where M instructions is defined by the buffer
[2 lines not shown]
[lldb] Refactor DIL to take and store the context in `ExecutionContext` (#225849)
This patch rewrites DIL to take, store and use `ExecutionContext` for
calls that require context, instead of `StackFrame` and `Target`
separately. This is a step towards being able to run DIL without
`StackFrame`, although this won't work just yet since DIL relies on
`StackFrame` to retrieve the current compile unit and type system.
NAS-144349 / 27.0.0 / Store dataset and relative_path when creating a WebShare share (#19980)
Creating a WebShare share saved it without its `dataset` and
`relative_path`, so `sharing.webshare.query` returned both, along with
`tier`, as null until the share was edited, a pool was imported
(including at boot), or a dataset was unlocked. Creating a share now
stores both values, as editing one already did.