[lldb][Darwin] Don't add zero-length segments to SectionLoadList (#195206)
On Darwin systems with a shared cache, all the system binaries are
combined into a single range of virtual address space, placing all the
TEXT segments together, all the DATA segments together, etc. It shrinks
the sizes of the segments from their on-disk file size to the actual
size needed for their contents, instead of observing page alignment
rules for segments.
And in one uncommon case, it is possible for a segment to not be put in
the shared cache virtual range at all.
When DynamicLoaderDarwin adds each file's segments to the Target
SectionLoadList (the table showing what VM ranges they are mapped to),
we're using the original file's segment sizes. But the in-memory segment
sizes may be different for binaries in the shared cache. And for a
segment which is eliminated entirely (zero length), we'll get warnings
as the next segment is added to the same address in the SectionLoadList.
[4 lines not shown]
[GlobalISel] Skip expensive dereferenceable checks at O0 (#195012)
IRTranslator::translateLoad is hot and showing up in compile-time
profiling of sqlite on aarch64-O0-g builds. Around 1/3 of the time is
spent in TargetLoweringBase::getLoadMemOperandFlags which is dominated
by isDereferenceableAndAlignedPointer inferring dereferenceable
metadata.
This metadata is for the optimizer and not necessary for correctness.
Skipping at O0 is -0.21% geomean improvement on CTMark. This brings
GISel more inline with FastISel which also doesn't infer this metadata.
https://llvm-compile-time-tracker.com/compare.php?from=4e6d3722fca73c97367720180a8d547057fda380&to=93a4a4a09ee9c94ef39bf07ee859cbb7c199c94e&stat=instructions%3Au
net/localgo: new port had been added (+)
Go implementation of LocalSend v2.1 protocol
for secure, cross-platform file sharing.
WWW: https://github.com/bethropolis/localgo
[BinaryFormat][Dwarf] Fix arity of DW_OP_over (#195216)
DW_OP_over duplicates the entry second from the top of the stack
("equivalent to a DW_OP_pick operation, with index 1", DWARF v5
§2.5.1.3), so it requires at least two stack entries to evaluate.
pkg-which: fix spurious warning message with -p
If the binary was found in a non-final directory in PATH, then the loop
would continue searching until the end and then emit a warning:
```
root at ifrit:~/pkg/libpkg # pkg which -p node
node was not found in PATH, falling back to non-search behaviour
/usr/local/bin/node was installed by package node24-24.15.0
```
Obviously the fallback is really only happening if we didn't find any
candidate in the rest of PATH, so move the warning message accordingly
to *after* the loop if our pattern list is empty.
emulators/cpmtools2: Update to fresh snapshot
- Update to fresh snapshot (no version change)
- Build with libdsk on by default (enables teledisk, raw, myz80 disk formats)
- While here, remove no-op GNU_CONFIGURE_MANPREFIX variable
[AArch64][GlobalISel] Drop unused value tracking from O0 pre-legalizer combiner (NFC) (#194826)
It doesn't improve compile-time, but it isn't necessary and can be
removed.