compiler.cfg.linear-scan.assignment vocabulary
Factor handbook ยป Vocabulary index


Documentation
Assigning registers to live intervals

Metadata
Parents:compiler.cfg.linear-scan


Words

Generic words
WordStack effect
assign-insn-defs( insn -- )
assign-insn-temps( insn -- )
assign-insn-uses( insn -- )


Symbol words
machine-edge-live-ins
machine-live-ins
machine-live-outs
pending-interval-assoc
pending-interval-heap
unhandled-intervals


Ordinary words
WordStack effect
activate-interval( live-interval -- )
activate-new-intervals( n unhandled-heap -- )
add-pending( live-interval -- )
assign-all-registers( insn -- )
assign-registers( cfg live-intervals -- )
assign-registers-in-block( bb -- )
begin-block( bb -- )
change-insn-gc-roots( gc-map-insn quot: ( x -- x ) -- )
compute-edge-live-in( bb -- )
compute-live-in( bb -- )
compute-live-out( bb -- )
emit-##call-gc( insn -- )
emit-gc-map-insn( gc-map-insn -- )
emit-insn( insn -- )
expire-interval( live-interval -- )
expire-old-intervals( n pending-heap -- )
handle-reload( live-interval -- )
handle-spill( live-interval -- )
init-assignment( live-intervals -- )
insert-reload( live-interval -- )
insert-spill( live-interval -- )
live-intervals>min-heap( live-intervals -- min-heap )
machine-edge-live-in( predecessor bb -- assoc )
machine-live-in( bb -- assoc )
machine-live-out( bb -- assoc )
prepare-insn( n -- )
remove-pending( live-interval -- )
rep-at-insn( n interval -- rep )
spill-intervals( root-leaders n -- live-intervals )
spill-required?( live-interval root-leaders n -- ? )
spill/reload( n interval -- {reg,rep,slot} )
spill/reloads( n intervals -- spill/reloads )
spill/reloads-for-call-gc( ##call-gc -- spill-seq )
vreg>reg( vreg -- reg/spill-slot )
vreg>spill-slot( vreg -- spill-slot )
vregs>regs( assoc -- assoc' )


Files


Metadata files