compiler.cfg.linear-scan.live-intervals vocabulary
Factor handbook > Vocabulary index


Documentation
Live interval utilities

Words

Tuple classes
ClassSuperclassSlots
bad-live-interval tuplelive-interval
live-interval-state tuplevreg reg spill-to spill-rep reload-from reload-rep ranges uses
sync-point tuplen keep-dst?
vreg-use tuplen def-rep use-rep spill-slot?


Union classes
clobber-insn
hairy-clobber-insn


Generic words
WordStack effect
compute-live-intervals*( insn -- )
insn>sync-point( insn -- sync-point/f )


Symbol words
from
live-intervals
to


Ordinary words
WordStack effect
(add-use)( insn# live-interval spill-slot? -- use )
(find-use)( insn# live-interval -- vreg-use )
<live-interval>( vreg -- live-interval )
<vreg-use>( n -- vreg-use )
bad-live-interval( live-interval -- * )
block-from( bb -- n )
block-to( bb -- n )
cfg>live-intervals( cfg -- live-intervals )
cfg>sync-points( cfg -- sync-points )
check-start( live-interval -- )
compute-live-intervals( cfg -- intervals/sync-points )
compute-live-intervals-step( bb -- )
find-use( insn# live-interval -- vreg-use/f )
finish-live-interval( live-interval -- )
first-use( live-interval -- use )
handle-live-out( bb -- )
intersect-intervals( interval1 interval2 -- n/f )
interval-reg-class( live-interval -- reg-class )
intervals-intersect?( interval1 interval2 -- ? )
last-use( live-interval -- use )
last-use?( insn# uses -- use/f )
live-interval-end( live-interval -- n )
live-interval-start( live-interval -- n )
new-use( insn# uses -- use )
record-def( vreg n spill-slot? -- )
record-temp( vreg n -- )
record-use( vreg n spill-slot? -- )
uses-vregs*( insn -- seq )
vreg>live-interval( vreg -- live-interval )


Class predicate words
WordStack effect
bad-live-interval?( object -- ? )
clobber-insn?( object -- ? )
hairy-clobber-insn?( object -- ? )
live-interval-state?( object -- ? )
sync-point?( object -- ? )
vreg-use?( object -- ? )


Files