[flang] Enhance show_descriptor intrinsic to avoid extra descriptor copies (#173461)
Originally, the argument to show_descriptor() intrinsic was declared
with the passing mechanism of "asBox". This resulted in `fir.load`
instruction to be emitted to pass descriptor "asBox", which resulted in
extra llvm.memcpy in LLVM IR. The current change eliminates this, so
that show_descriptor() prints information about the original descriptor,
not about its copy.
The current change modifies the passing mechanism of the argument to
show_intrinsic() to "asInquired". The lowering of show_descriptor() now
passes the reference to a descriptor directly to the runtime routine. If
descriptor is passed as a value in SSA register, then it's spilled on
the stack and its address is passed to the runtime routine. If a
non-descriptor value is passed to show_descriptor(), then this value is
spilled to the stack, wrapped into a descriptor that is also spilled to
the stack, and the resulting descriptor pointer is passed to
show_descriptor().
show_descriptor() LIT test was modified to correspond to the new
implementation and additional test cases were added to it.
NAS-139269 / 26.04 / Avoid race on setting server sid on HA (#18001)
This commit adds a sanity check before setting the SMB server SID to
avoid writing it to the DB on the standby controller on HA. We should
only ever have a single server SID for HA pair.
NAS-139268 / 26.04 / reduce log noise during middleware start-up (#18002)
This log entry gets unwieldy quickly when you have >= 5 boot
environments on the system. Move it to TRACE to reduce the log noise.
Avoid race on setting server sid on HA
This commit adds a sanity check before setting the SMB server
SID to avoid writing it to the DB on the standby controller on
HA. We should only ever have a single server SID for HA pair.
Caching is also removed.
[PowerPC] using milicode call for strcpy instead of lib call (#174782)
AIX has "millicode" routines, which are functions loaded at boot time
into fixed addresses in kernel memory. This allows them to be customized
for the processor. The __strcpy routine is a millicode implementation;
we use millicode for the strcpy function instead of a library call to
improve performance.
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
[mlir][Shape] Fix Yoda condition in OutlineShapeComputation (#174146)
Change `nullptr != inpDefOp` to `inpDefOp != nullptr` for better
readability and consistency with LLVM coding standards.
[include-cleaner] Report refs from macro-concat'd tokens as ambigious (#175532)
Previously we completely ignored these references as we couldn't detect
whether some pieces of concat'd token originated from main file and we
wanted to prevent false positives. Unfortunately these are resulting in
false negatives in certain cases and are breaking builds.
After this change, include-cleaner will treat such references as
ambigious to prevent deletion of likely-used headers (if they're already
directly included), while still giving user the opportunity to
explicitly delete them.
Avoid race on setting server sid on HA
This commit adds a sanity check before setting the SMB server
SID to avoid writing it to the DB on the standby controller on
HA. We should only ever have a single server SID for HA pair.
[Clang] prevent an assertion failure caused by C++ constant expression checks in C23 floating conversions (#174113)
Fixes #173847
---
This patch addresses an assertion failure during compilation of C23 code
involving floating-point conversions.
As part of the C23 constexpr support introduced in PR #73099, Clang
began reusing parts of the C++ constant evaluation and narrowing logic.
In C23 mode, a failed constant evaluation caused the condition to
proceed to C++ constant-expression checks, resulting in an assertion
failure.
This change evaluates constants using `EvaluateAsRValue` in C23 mode and
restricts C++ constant-expression checks to C++ mode.
NAS-139267 / 26.04 / Fix validation for netbios alias change (#18000)
This commit fixes a syntax error when validating netbios alias changes
when directory services are enabled.
[InlineSpiller][AMDGPU] Implement subreg reload during RA spill
Currently, when a virtual register is partially used, the
entire tuple is restored from the spilled location, even if
only a subset of its sub-registers is needed. This patch
introduces support for partial reloads by analyzing actual
register usage and restoring only the required sub-registers.
This improvement enhances register allocation efficiency,
particularly for cases involving tuple virtual registers.
For AMDGPU, this change brings considerable improvements
in workloads that involve matrix operations, large vectors,
and complex control flows.
[AMDGPU] Test precommit for subreg reload
This test currently fails due to insufficient
registers during allocation. Once the subreg
reload is implemented, it will begin to pass
as the partial reload help mitigate register
pressure.