[ADT] Rename FoldingSet's RemoveNode and ComputeHash. NFC (#219864)
Rename `RemoveNode` to erase, matching the public name it implements,
and ComputeHash to computeHash, matching computeStableHash beside it.
net/samba424: fix mampage plist
vfs fruit and glusterfs had bad plist entries. This fix this.
Reported by: Paul <paul604 at protonmail.ch>
Approved by: samba (kiwi)
Sponsored by: Klara, Inc.
sysctl.7: add various networking-related nodes
There are probably more to add (certainly across all the top-level node
categories), but these cover (or are related to) a few that frequently
get mentioned in performance tuning blog posts and emails.
(Confusingly, some lists are alphabetical and others aren't. I added the
TCP autosizing entries where they seemed to logically go.)
tcp_usrreq.c: minor sysctl description updates
TCP buffer autosizing can't really be deemed "experimental" since it was
enabled by default in early 2010.
[SLP]Fix perfect diamond match for gather nodes with poison in the reuse mask
A poison constant in the gathered bundle leaves a poison lane in the
common mask; expanding the gather through that mask indexed the scalar
list with -1. Expand such lanes to poison instead.
Fixes #219833
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/219862
[ORC] Fix malformed Mach-O `__unwind_info` tables (#217781)
The malformed tables are produced by `JITLink` after compact-unwind
record merging.
`CompactUnwindManager::mergeRecords()` coalesces adjacent function
records with identical mergeable encodings. When the final raw record is
merged away, `writeIndexes()` generates the top-level index terminator
from the final remaining record instead of the final original function.
This truncates the final index range.
On macOS arm64, libunwind resolves a PC in the merged-away final
function through the terminator entry. Its second-level-page offset is
zero by design, causing libunwind to interpret the `__unwind_info`
header as a second-level page and report:
```
libunwind: malformed __unwind_info ... bad second level page
```
[20 lines not shown]
[RISCV] Lower vector i1-to-fp i1 to VSELECT 1.0/0.0 (#219426)
Previously, the i1 source was first extended to an integer type
whose width is half the destination floating-point width. The mask
extension was lowered by lowerVectorMaskExt to a VSELECT, or directly to
VMERGE_VL for fixed-length vectors, materializing an integer vector
containing 0 or 1.
Since an unsigned i1-to-floating-point conversion can only produce 0.0
or 1.0, recognize this operation earlier and lower it directly to a
VSELECT between the floating-point constants 1.0 and 0.0. This removes
the intermediate integer mask extension and the following widening
integer-to-floating-point conversion.
[SSAF][clang-reforge] Add end-to-end clang-reforge tests
- Make CppBoundedBuffers adapt to flattened WPA results;
- Let CppBoundedBuffers use qualified EntityNames so that it can
associate ASTNodes with WPA results;
- Add end-to-end tests
Final step of:
rdar://185840466
[SSAF] Flatten 'UnsafeBufferReachableAnalysisResult' to a plain set (#219041)
Previously, an 'UnsafeBufferReachableAnalysisResult' was organized as a
map from contributors to their mutually exclusive sub-results. Because
this extra layer of contributor information proved unnecessary, this
commit flattens the result into a plain set.
The source transformation expects the result to be a plain set, so this
is a prerequisite step for
rdar://185840466
[ADT] Use isComparableWith in StringMap (#219853)
This patch updates operator== in StringMap to use
DebugEpochBase::HandleBase::isComparableWith, bringing it in line
with DenseMap and FoldingSet.
Assisted-by: Antigravity
[mlir][affine] Update getSliceBounds to allow multi-result upper bound maps (#219369)
Resolve a long-standing TODO on supporting multi-result upper bound maps
on affine analysis utility getSliceBounds. This makes affine fusion more
powerful.
`getSliceBounds` threw away any upper bound that came out of more than
one inequality and put the constant bound in its place, under a TODO
saying it was conservative until `getConstDifference` in LoopFusion
could handle multiple bounds (b/126426796). Several inequalities is what
a destination loop clamped at the end of the data produces -- of a 1000
long dim tiled by 64, the region a tile reads is bounded by `min(%i * 64
+ 64, 1000)` -- and dropping that for the constant leaves `1000`, which
says only that the slice ends somewhere before the end of the data. A
slice of one 64-wide tile then costs as a slice of everything from the
tile onwards, and fusion refuses it as redundant computation that isn't
there.
Keep such a bound. It is already the min of its results, which is the
[12 lines not shown]
[ADT] Inline FoldingSetNodeID equality. NFC (#219856)
Every successful FoldingSet lookup pays the cost to call out-of-line
function, which calls memcmp. Just inline it.