[CodeGen][InlineSpiller] Add SubReg argument to loadRegFromStackSlot for subreg-reload
This preparatory patch introduces an additional argument to the target hook
loadRegFromStackSlot. Ths is essential for targets to handle subregister-specific
reload in the future. See how this is used for AMDGPU target with PR #175002.
Remove python-pam and plumb in pam_truenas
This commit removes the python-pam Python library dependency from
TrueNAS middleware and replaces it with truenas_pypam. The most
significant change is the migration of API key authentication from
simple PBKDF2 password hashing to SCRAM-SHA512 (Salted Challenge
Response Authentication Mechanism) as defined in RFC5802. SCRAM is an
authentication protocol that uses PBKDF2-HMAC-SHA512 for key
derivation. API keys are now stored with SCRAM-derived credentials
including salt, stored_key, server_key, and iteration count fields in
the database. A database migration automatically converts existing
PBKDF2-hashed API keys to SCRAM format transparently—existing API keys
will continue to work without requiring regeneration. The commit adds a
new SCRAM authentication mechanism for challenge-response authentication
with replay resistance and mutual validation capabilities, while
maintaining the existing API_KEY_PLAIN mechanism for simple
authentication.
The refactoring includes comprehensive changes to the authentication
[10 lines not shown]
[lldb][Formatters] Remove broken/redundant lookup into anonymous child when extracting from compressed pairs (#175564)
(brought to my attention in
https://github.com/llvm/llvm-project/pull/155153#discussion_r2682666325)
This patch removes the `anon_struct_idx` of
`GetValueOrOldCompressedPair`.
The latest `_LIBCPP_COMPRESSED_PAIR` wraps the members in an anonymous
structure. Around the time of the original patch that introduced
`GetValueOrOldCompressedPair`
(https://github.com/llvm/llvm-project/pull/155153),
`GetChildMemberWithName` wasn't capable of "seeing through" anonymous
structures when searching for children. However, around the same time as
https://github.com/llvm/llvm-project/pull/155153 landed, the
`GetChildMemberWithName` behaviour was fixed (in
https://github.com/llvm/llvm-project/pull/138487). So regardless of
whether the the compressed pair is wrapped in an anonymous structure,
simply calling `GetChildMemberWithName` is the right thing to do.
[5 lines not shown]
[libc++][memory_resource] Applied `[[nodiscard]]` (#172134)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/mem.res
Towards #172124
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Co-authored-by: Nikolas Klauser <nikolasklauser at berlin.de>
[flang] Add traits to more AST nodes
Follow-up to PR175211.
There are still a few AST nodes that don't have any of the standard
traits (Wrapper/Tuple/etc). Because of that they require special
handling in the parse tree visitor.
Convert a subset of these nodes to the typical format, and remove the
special cases from the parse tree visitor.
The members of these nodes were frequently used, so instead of extracting
them by hand each time use helper member functions to access them.
ValueTracking: Fix handling of fadd with mixed denormal modes (#175454)
Fix case where the input mode is IEEE, the output flushes, and the
input could be subnormal. Also improves accuracy with positive zero
case.
[AMDGPU] Use -filetype=null for more MC tests. NFCI. (#175567)
Following on from #175543 which did the same only for tests not using
`FileCheck -implicit-check-not=error:` or similar.
[CMake][NFC] Don't use uninitialized LLVM_REQUIRES_* (#175554)
LLVM_REQUIRES_* are per-target flags that are never set globally. Yet,
some files used these (undefined) flags for some logic. This patch
emoves these dead checks/unconditionally executes the logic. Note that
the referenced *.exports files are empty, so there is no need to make
related logic conditional on MSVC.
[clang] Prevent sandbox violations in `CrossTranslationUnitContext` (#175097)
This uses the VFS to load a file instead of using
`MemoryBuffer::getBufferForFile()` directly to avoid sandbox violation.
Sandbox is then disabled for `CreateASTUnitFromCommandLine()` which
invokes the driver which is not expected to be free of sandbox
violations.
[clang] Bypass sandbox in `ModuleDependencyCollector` (#175220)
This PR disables the sandbox for file collection within
`ModuleDependencyCollector`. This is typically only invoked when the
`-module-dependency-dir` option is specified for generating a crash
report, where the sandbox is not as crucial as for regular compilation.
[SPIRV] Deduce result type for `G_SEXT` and `G_ZEXT` (#175401)
During legalisation we can fold / combine `sext` followed by a widening
via `zext`. Unfortunately, this yields a new result register with no
SPIRV Type, which leads to incorrect behaviour during post legalisation
when we end up deducing the (narrower) type from the operand. This patch
corrects the behaviour in that it ensures that we use the (widened) type
of the result to yield the SPIRV Type for the register.
[CMake][NFC] Drop unnecessary GTest RTTI define (#175555)
gtest automatically determines GTEST_HAS_RTTI from pre-defined compiler
macros, there is no need to explicitly define this and especially no
need to define this for every single source file.
[VPlan] Give VPInstruction::ExplicitVectorLength name. NFC (#175493)
This makes it a tad easier to read VPlan dumps, e.g.
WIDEN vp.store vp<%7>, ir<%val>, vp<%5>
->
WIDEN vp.store vp<%7>, ir<%val>, vp<%evl>
[flang] Add traits to more AST nodes
Follow-up to PR175211.
There are still a few AST nodes that don't have any of the standard
traits (Wrapper/Tuple/etc). Because of that they require special
handling in the parse tree visitor.
Convert a subset of these nodes to the typical format, and remove the
special cases from the parse tree visitor.
The members of these nodes were frequently used, so instead of extracting
them by hand each time use helper member functions to access them.