Pending as seven byte masks, not a scanned list. The old pending list
grew with every unretired variable-latency write -- barriers a step never
waits on, and barrier 8 (scoreboardNever) which no mask can name -- and
every instruction scanned the whole accumulation per register it touched:
quadratic in the program length (268 s for the wait-stripped 1,259
instruction mutant, 8.4 s clean). One mask per barrier (1..6 and 8)
holds a 1 at each pending register, so membership is seven indexed reads,
issue is one indexed write per written register, and retire swaps in the
shared empty for every barrier the wait mask names: bounded work per
instruction, near-linear overall.
Equivalence (exact, on every program): the old list's multiplicity is
unobservable -- every query is membership by register and every removal
is a bulk delete by barrier, and the masks track exactly the set of live
(register, barrier) pairs through both. RZ (255) is never inserted
(sm86RegisterRun names nothing from it) and stays guarded at lookup.
63field unrestricted scoreboardMasksNever : BytesThe compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.