Source/Reference

SM86.Scoreboard

reference/target-models/checked/SM86/Scoreboard.alpha

437 lines42 declarations25.5 KiBSHA-256 e8d85751fb4f

family · lines 55–63

ScoreboardMasks

Full file
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.
55family ScoreboardMasks : Type 0
56constructor ScoreboardMasksValue
57field unrestricted scoreboardMasksBarrier1 : Bytes
58field unrestricted scoreboardMasksBarrier2 : Bytes
59field unrestricted scoreboardMasksBarrier3 : Bytes
60field unrestricted scoreboardMasksBarrier4 : Bytes
61field unrestricted scoreboardMasksBarrier5 : Bytes
62field unrestricted scoreboardMasksBarrier6 : Bytes
63field unrestricted scoreboardMasksNever : Bytes

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.