clang: Don't set redundant intrinsic callsite attributes (#242158)
Clang has a bad habit of spamming unnecessary callsite attributes that
are redundant with the function declaration. Fix one common source on
emitted intrinsics.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
tcp: count only the SACK blocks that fit in tcp_maxseg()
tcp_addoptions() sends only the SACK blocks that fit in TCP_MAXOLEN.
tcp_maxseg() counted every pending block and clamped the total, so
without timestamps and with five or more blocks pending it came out 4
bytes below the segment tcp_output() sends. Limited transmit after an
RTO then sent one full segment and failed the "sent too much" KASSERT.
PR: 282605
Approved by: adrian (mentor)
Signed-off-by: Nick Price <nprice at FreeBSD.org>
Reviewed by: tuexen, glebius, adrian
Differential Revision: https://reviews.freebsd.org/D60460
IR: Make AttributeList::hasAttributeAtIndex and hasAttrSomewhere inline
Check the attributes available at any index through AttributeListImplBase.
CTMark instructions:u: O3 -0.22%, ThinLTO -0.29%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Make AttributeList::getAttributes inline
Store the attribute sets and their count in AttributeListImplBase.
CTMark instructions:u: O3 -0.16%, ThinLTO -0.14%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Don't store the attribute set array pointer in AttributeListImplBase
Compute the address of the trailing attribute sets from the base instead
of loading a stored pointer, saving a dependent load on every
AttributeList query. Move AvailableSomewhereAttrs into the base so the
attribute sets directly follow it.
CTMark instructions:u, geomean:
clang-23 built: O3 -0.00%, ThinLTO -0.02%
ThinLTO trunk clang built: O3 -0.01%
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Make AttributeList::hasAttributeAtIndex and hasAttrSomewhere inline
Store the attributes available at any index in AttributeListImplBase.
CTMark instructions:u: O3 -0.22%, ThinLTO -0.29%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Make AttributeList::getAttributes inline
Store the attribute sets and their count in AttributeListImplBase.
CTMark instructions:u: O3 -0.16%, ThinLTO -0.14%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Make AttributeSet::hasAttribute and AttributeList::hasFnAttr inline (#241670)
Move the bitsets of available enum attributes into public base classes of
AttributeSetNode and AttributeListImpl, so that these frequent queries
can be inline.
CTMark instructions:u: O3 -0.22%, ThinLTO -0.34%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[RISCV][P-ext] Update pm2wadd(a) ISD opcodes to use 2 i32 values to represent i64. (#241997)
Previously, we were packing the 2 i32 values into a v2i32, but that is
inconsistent with other ISD opcodes.
Assisted-by: Claude