Shift truenas_verify tests
Running truenas_verify inside the unit tests pipeline is a poor
fit since in a typical run we may have to mutate the root filesystem
to install the framework for running the internal middleware pytest
tests.
LinuxKPI: add KERNEL_VERSION() macro
Add a KERNEL_VERSION() macro which normally would be in linux/version.h.
On Linux that file is auto-generated and we are supporting more than
one Linux version in LinuxKPI anyway so any further defines in there
would likely be wrong.
Adding the macro helps to support (vendor/out of tree) drivers more
easily which are supporting multiple Linux versions.
MFC after: 3 days
Reviewed by: dumbbell
Differential Revision: https://reviews.freebsd.org/D57590
LinuxKPI: scatterlist.h: implement sg_init_marker()
Add sg_init_marker() which is needed by mt76 drivers USB attachment.
Sponosored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: emaste, dumbbell
Differential Revision: https://reviews.freebsd.org/D57594
[Loads][NFC] Add isDereferenceablePointer overload taking a size (#203905)
Quite a few places just end up passing `Align(1)` as the alignment.
Instead, provide an overload of `isDereferenceablePointer` taking a size
instead of a `Type*` and use that.
[SPIRV] Let atomic load load pointers (#202823)
SPIRV atomic load permits only integer or floats as per SPIRV spec. When
compiling libc there several places in the code where pointers are
atomically loaded causing compilation to break. It can be fixed by using
casting in the libc code but in order to keep the libc code clean it is
preferrable to do it in SPIRV backend. This change will cast pointer
parameter to a pointer to integer of appropriate size and generate
atomic load instruction that uses integers per SPIRV spec. The value
returned by atomic load is casted to an original pointer type
---------
Co-authored-by: Dmitry Sidorov <dsidorov at amd.com>
[libc] Add Endian::from_{big,little}_endian (#203895)
This is actually the same function as its to_ counterpart, but it lets
us correctly express the intent.
The functions are already useful for implementing ntoh?, but I'll add
other uses of them soon.
linuxulator: Return EINVAL for invalid inotify flags
We implement all of the currently-defined Linux inotify mask bits and
flags, with the same values as Linux. Return EINVAL for unknown bits,
as Linux does.
This also moves the translation inline into linux_inotify_add_watch.
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57387
(cherry picked from commit f77d37cffdf3951b7f28b97005467241aa27c183)
[flang][OpenMP] Parsing and semantics of locators as part of OmpObject
Allow function call references and reserved locator names as parts of
OmpObject. Function calls and array element accesses have the same syntax,
and the OmpObject parser will parse them as function calls. This is then
corrected (if needed) immediately after the name resolution is complete.
There are no clause-specific semantic checks of proper locators. Existing
code will check if a proper locator is specified on a clause that allows
it.
Lowering of proper locators to MLIR is not implemented, and a TODO
message is emitted.
[mlir][linalg] Add maps-based inferConvolutionDims overload (#203323)
This PR adds an overload of `inferConvolutionDims` that takes only
indexing maps (input, filter, output), mirroring the maps-based
`inferContractionDims` overload added in #76081, along with the
corresponding C API and python bindings.
Assisted by: Claude-code
[GlobalISel] Add known-bits for G_INSERT_VECTOR_ELT. (#200930)
This adds known-bits for G_INSERT_VECTOR_ELT, mostly a copy of the SDAG equivalent code.
[mlir] Use explicit op targets for region successors (#203552)
Replace the RegionSuccessor parent sentinel with an explicit Operation *
target. Operation successors now model continuing after that operation,
while region successors continue to point at Region.
Update RegionBranchOpInterface helpers, analyses, and dialect
implementations to use operation successors. This removes the ambiguity
of interpreting parent relative to whichever operation produced the
successor when introducing early-exits.
For downstream integration for this API change:
- `successor.isParent()` -> `successor.isOperation()`
- `RegionSuccessor::parent()` -> RegionSuccessor(op)` ; that means that
you need to have access to the target op. In general it is either
`getOperation()` or `getParentOp()` (depending if you're updating a
method on the `RegionBranchOpInterface` operation or on the terminator.
Assisted-by: Codex
[flang][OpenMP] Parsing and semantics of locators as part of OmpObject
Allow function call references and reserved locator names as parts of
OmpObject. Function calls and array element accesses have the same syntax,
and the OmpObject parser will parse them as function calls. This is then
corrected (if needed) immediately after the name resolution is complete.
There are no clause-specific semantic checks of proper locators. Existing
code will check if a proper locator is specified on a clause that allows
it.
Lowering of proper locators to MLIR is not implemented, and a TODO
message is emitted.
[mlir][emitc] Support member access for values (#203308)
The `emitc.member` op is currently limited to taking lvalues of opaque
types representing structs and returning either lvalues or arrays of its
fields. Accessing members of SSA values of opaque types, therefore,
requires assigning them to an `emitc.variable`, applying `emitc.member`
to it and `emitc.load` to the member's lvalue. For users only wishing to
read members of a struct value, this should be redundant.
This PR extends `emitc.member` to handle struct values directly by
accepting opaque types as argument, as long as the result type is
neither an lvalue nor an array, which imply memory location. This
provides similar semantics to extracting elements out of SSA
tensors/vectors.