compiler.cfg.ssa.interference.live-ranges: Docs
parent
cf74a4dc0f
commit
e58e1b9a65
|
@ -0,0 +1,18 @@
|
||||||
|
USING: compiler.cfg compiler.cfg.instructions
|
||||||
|
compiler.cfg.ssa.interference.live-ranges.private help.markup
|
||||||
|
help.syntax math ;
|
||||||
|
IN: compiler.cfg.ssa.interference.live-ranges
|
||||||
|
|
||||||
|
HELP: compute-live-ranges
|
||||||
|
{ $values { "cfg" cfg } }
|
||||||
|
{ $description "Entry point for the live ranges computation compiler pass." } ;
|
||||||
|
|
||||||
|
HELP: record-uses
|
||||||
|
{ $values { "n" integer } { "insn" insn } }
|
||||||
|
{ $description "Record live intervals so that all but the first input interfere with the output. This lets us coalesce the output with the first input." } ;
|
||||||
|
|
||||||
|
ARTICLE: "compiler.cfg.ssa.interference.live-ranges"
|
||||||
|
"Live ranges for interference testing"
|
||||||
|
"Live ranges for interference testing" ;
|
||||||
|
|
||||||
|
ABOUT: "compiler.cfg.ssa.interference.live-ranges"
|
|
@ -6,8 +6,6 @@ compiler.cfg.liveness compiler.cfg.rpo kernel math namespaces
|
||||||
sequences ;
|
sequences ;
|
||||||
IN: compiler.cfg.ssa.interference.live-ranges
|
IN: compiler.cfg.ssa.interference.live-ranges
|
||||||
|
|
||||||
! Live ranges for interference testing
|
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
SYMBOLS: local-def-indices local-kill-indices ;
|
SYMBOLS: local-def-indices local-kill-indices ;
|
||||||
|
@ -16,9 +14,6 @@ SYMBOLS: local-def-indices local-kill-indices ;
|
||||||
defs-vregs [ local-def-indices get set-at ] with each ;
|
defs-vregs [ local-def-indices get set-at ] with each ;
|
||||||
|
|
||||||
: record-uses ( n insn -- )
|
: record-uses ( n insn -- )
|
||||||
! Record live intervals so that all but the first input interfere
|
|
||||||
! with the output. This lets us coalesce the output with the
|
|
||||||
! first input.
|
|
||||||
dup uses-vregs [ 2drop ] [
|
dup uses-vregs [ 2drop ] [
|
||||||
swap def-is-use-insn?
|
swap def-is-use-insn?
|
||||||
[ [ first local-kill-indices get set-at ] [ rest-slice ] 2bi ] unless
|
[ [ first local-kill-indices get set-at ] [ rest-slice ] 2bi ] unless
|
||||||
|
|
Loading…
Reference in New Issue