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


Summary
Live intervals

Words

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


Generic words
WordStack effect
compute-live-intervals*( insn -- )
compute-sync-points*( insn -- )
covers?( insn# obj -- ? )
uses-vregs*( insn -- seq )


Symbol words
from
live-intervals
sync-points
to


Ordinary words
WordStack effect
(add-use)( insn# live-interval spill-slot? -- use )
(find-use)( insn# live-interval -- vreg-use )
<live-interval>( vreg reg-class -- live-interval )
<live-range>( from to -- live-range )
<sync-point>( n keep-dst? -- sync-point )
<vreg-use>( n -- vreg-use )
add-new-range( from to live-interval -- )
add-range( from to live-interval -- )
bad-live-interval( live-interval -- * )
block-from( bb -- n )
block-to( bb -- n )
check-start( live-interval -- )
compute-live-intervals( cfg -- live-intervals sync-points )
compute-live-intervals-step( bb -- )
compute-start/end( live-interval -- )
extend-range( from to live-range -- )
extend-range?( to live-interval -- ? )
find-use( insn# live-interval -- vreg-use )
finish-live-intervals( live-intervals -- seq )
first-use( live-interval -- use )
handle-live-out( bb -- )
init-live-intervals( -- )
intersect-live-range( range1 range2 -- n/f )
intersect-live-ranges( ranges1 ranges2 -- n )
intervals-intersect?( interval1 interval2 -- ? )
last-use( live-interval -- use )
last-use?( insn# uses -- use/f )
live-interval( vreg -- live-interval )
new-use( insn# uses -- use )
record-def( vreg n spill-slot? -- )
record-temp( vreg n -- )
record-use( vreg n spill-slot? -- )
relevant-ranges( interval1 interval2 -- ranges1 ranges2 )
shorten-range( n live-interval -- )


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


Files
resource:basis/compiler/cfg/linear-scan/live-intervals/live-intervals.factor
resource:basis/compiler/cfg/linear-scan/live-intervals/live-intervals-docs.factor