[LoongArch] Regenerate checks for fptosi-sat.ll (#240230)
From #233004, presumably a mid-air collision somewhere given the commit
was pushed ~3 weeks ago.
image -t zsnapshot: Remove stale files from the previous image
With -i, files removed from the world were left behind in the new image.
Fixes: dd61d5134c ("do_clone: Stop overwriting - move that to do_clone_del")
(cherry picked from commit c10dc9a7fc71d6049254c39a5ad71b91886cb1c0)
Conflicts:
src/share/poudriere/image_zsnapshot.sh
jail -u -m src=: Remove stale files from the /usr/src copy
Files removed from the src tree were left behind in the jail's /usr/src.
Issue #1299
Fixes: dd61d5134c ("do_clone: Stop overwriting - move that to do_clone_del")
(cherry picked from commit 0ceb8092c18377bd45e69baa581e2a214b9cae2b)
Conflicts:
src/share/poudriere/jail.sh
[LoongArch] Extract FP vector element 0 as a subregister (#233004)
Element 0 of an LSX/LASX floating-point vector is the aliased FPR, so
extractelement with index 0 needs no [x]vreplvei/xvpickve.
cryptodev: zero key material before freeing it
The /dev/crypto cipher and MAC keys are copied from userland and
released with free(), leaving the key bytes in freed kernel memory.
Use zfree() so the key material is cleared on session teardown and on
the setup error path.
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D61324
[libc][math][NFC] Split log*f into *_double_eval.h and dispatch headers. (#240167)
- Move double-precision evaluations of log2f, logf, log10f, and log1pf
into dedicated src/__support/math/*_double_eval.h headers under
math::double_eval.
- Convert src/__support/math/{log2f,logf,log10f,log1pf}.h into dispatch
headers matching exp*f.h and powf.h.
- Parameterize smoke and unit tests for Default and DoubleEval variants
and update CMake and Bazel build targets.
Assisted-by: Gemini
[Hexagon] Recompute physreg live-ins after HexagonOptAddrMode (#240203)
HexagonOptAddrMode's RDF-based liveness recomputation can leave stale
(over-approximate) physical register live-ins on some blocks. This later
confuses If Conversion into adding an incorrect implicit old-value use
on a predicated load, whose register is undefined on a loop back-edge,
tripping the machine verifier with "Using an undefined physical
register".
Run a bounded conventional backward live-in recomputation after the RDF
recomputation to correct the live-in lists, mirroring the existing fix
in HexagonRDFOpt.
Fixes #224671.
[SampleProfile] Fix "proirity" typo in inliner option descriptions (#240160)
The `cl::desc` strings for the priority-based sample loader inliner
options
spell "priority" as "proirity" (the `i` and `o` are transposed):
- `-sample-profile-inline-growth-limit`
- `-sample-profile-inline-limit-min`
- `-sample-profile-inline-limit-max`
- `-sample-profile-hot-inline-threshold`
- `-sample-profile-icp-relative-hotness`
This fixes all five occurrences in
`llvm/lib/Transforms/IPO/SampleProfile.cpp`.
They are string literals only, so option names and behavior are
unchanged.
Found while comparing the description of
`-sample-profile-prioritized-inline`
with that of `-sample-profile-inline-growth-limit`.
[LV] Expand IR AddRecs from VPSCEVExpander in SafeUDivMode. (#240209)
VPSCEVExpander leaves some expressions for expansion in IR. Those may
get hoisted and executed before other runtime checks (like SCEV
predicate checks).
The expressions may only be valid if the SCEV predicates hold. For
example, a runtime check bound with an outer loop AddRec with step
%m /u (%stride + %y) becomes %m /u (%y + 1) after applying
%stride == 1, which divides by zero for %y == -1 and %stride != 1,
while the original loop is well defined.
Expand SCEVs via IR expander in SafeUDivMode, exposed via a
new constructor parameter, so they cannot cause UB.
[GVNHoist] Propogate getClobberingMemoryAccess after moveToPlace
getDefiningAccess in sfaeToHoistLdSt returns the nearest stores
if we don't query AA result by using getClobberingMemoryAccess. This
reduce the opportunity for optimization in sfaeToHoistLdSt as
isLiveOnEntryDef returns false without updating.
In the example (See Closes item): after hosting left.a and left.b,
getDefiningAccess returns `store q` before.
As a result, we call getClobberingMemoryAccess after relink the
hoisted expression.
Assisted-by: Claude # Test
Closes: #221578
[VPlan] Hoist sums of invariant operands of adds in runtime checks. (#240190)
When expanding a variant integer add for the runtime checks of an inner
loop in a loop nest, operands invariant in the outer loop were hoisted
individually during IR SCEV expansion.
Update VPlan-based SCEV epander to expand the sum of the invariant
operands plus the sum of the others, so the invariant sum is expanded in
IR and hoisted out of the outer loop.
powerpc/idle: Set 'RL' field in PSSCR on POWER9
The POWER9 does not do automatic state transitions when idling, so the
'MTL' field (Maximum Transition Level) is ignored. Thus, setting '0'
for the 'RL' field (Requested Level) as was done means it
doesn't transition to any power saving level. To fix this, set both the
'MTL' and the 'RL' fields to the same level.
On a Talos II at idle this drops the reported temperatures by ~10-15%.
MFC after: 3 days