[compiler-rt] Clean up Windows includes in sanitizer runtimes (#216586)
Extracted from https://github.com/llvm/llvm-project/pull/209902.
It's one of the patches that enables ASan and UBSan in GCC for Windows.
Co-authored-by: Hannes Domani <ssbssa at yahoo.de>
igc: Correct hardware error statistics
Track RERC separately instead of adding receive errors to the collision
count, and read the previously omitted RXERRC register. Include RFC in
input errors because CRCERRS does not count bad-CRC runts, implementing
the I225 length-error accounting workaround alongside RUC and ROC.
Stop treating host transmit MAC discards as receive errors. Expose both
RERC and HTDPMC as dedicated MAC statistics so their overlapping counts
remain available without corrupting aggregate interface counters.
(cherry picked from commit a108ee9138a698f212d6d6832d54e88ce6786617)
igc: Add VLAN hardware filtering
Borrow the e1000 VLAN filter table
Ambiguous presence of the feature by Intel was settled by DPDK and
emperical testing.
Relnotes: yes
(cherry picked from commit 8f779f159e2198c85b4fcb8685989879a9330104)
igc: Work around I225 v1 minimum IPG erratum
I225 v1 cannot receive the minimum inter-packet gap required at
2.5 Gb/s. For affected back-to-back links, Intel recommends using a
15-byte transmit IPG instead of 12 bytes.
Program TIPG.IPGT to 0xb for pre-v2 I225 devices at 2.5 Gb/s and
restore the default at lower speeds. Avoid penalizing fixed I225 and
I226 parts.
(cherry picked from commit 709426551c6a3607fb5a33f5b8dbb87cfa9c8125)
igc: Add VLAN hardware filtering
Borrow the e1000 VLAN filter table
Ambiguous presence of the feature by Intel was settled by DPDK and
emperical testing.
Relnotes: yes
(cherry picked from commit 8f779f159e2198c85b4fcb8685989879a9330104)
igc: Correct hardware error statistics
Track RERC separately instead of adding receive errors to the collision
count, and read the previously omitted RXERRC register. Include RFC in
input errors because CRCERRS does not count bad-CRC runts, implementing
the I225 length-error accounting workaround alongside RUC and ROC.
Stop treating host transmit MAC discards as receive errors. Expose both
RERC and HTDPMC as dedicated MAC statistics so their overlapping counts
remain available without corrupting aggregate interface counters.
(cherry picked from commit a108ee9138a698f212d6d6832d54e88ce6786617)
igc: Work around I225 v1 minimum IPG erratum
I225 v1 cannot receive the minimum inter-packet gap required at
2.5 Gb/s. For affected back-to-back links, Intel recommends using a
15-byte transmit IPG instead of 12 bytes.
Program TIPG.IPGT to 0xb for pre-v2 I225 devices at 2.5 Gb/s and
restore the default at lower speeds. Avoid penalizing fixed I225 and
I226 parts.
(cherry picked from commit 709426551c6a3607fb5a33f5b8dbb87cfa9c8125)
[orc-rt] Nest StringPool handle types (#216615)
Move the handle types into StringPool as nested members:
PooledStringPtr -> StringPool::Ptr
NonOwningPooledStringPtr -> StringPool::WeakPtr
PooledStringPtrBase -> StringPool::PtrBase
StringPoolEntryUnsafe -> StringPool::EntryUnsafe
Also tightens the WeakPtr -> Ptr contract: reconstructing a Ptr is only
well-defined while another Ptr keeps the entry alive.
[libc++][test] Mark `UNSUPPORTED` for a test relying on `[[clang::trivial_abi]]` for compilers not supporting it (#211736)
This patch marks `UNSUPPORTED` for compilers not supporting
`[[clang::trivial_abi]]` (MSVC and GCC earlier than GCC 17) for a test
relying on this attribute.
[ORC] Fix and rename SymbolLookupSet::removeDuplicates (#216574)
removeDuplicates uniqued on the (name, flags) pair, so a name appearing
with both RequiredSymbol and WeaklyReferencedSymbol survived twice --
leaving a set that containsDuplicates, which compares names only, still
reported as duplicated.
Replace it with mergeEntries, which merges by name. Where entries
disagree on flags the strongest requirement wins, so a missing
definition still fails the lookup. Renamed because the entries being
merged need not be exact duplicates.
removeDuplicates had no in-tree callers, so no existing behaviour
changes. Also adds a unit test for mergeEntries -- the first direct
coverage for SymbolLookupSet.
[orc-rt] Add StringPool for interning ref-counted strings. (#216571)
Adds StringPool, a thread-safe pool for interning strings (e.g. symbol
names, paths) behind ref-counted PooledStringPtr handles.
PooledStringPtr and NonOwningPooledStringPtr compare and hash by
pool-scoped pointer identity rather than content, and clearDeadEntries()
reclaims entries with no remaining owners.
No in-tree clients yet: I expect to use this in future commits for the
platform support classes.