diff --git a/basis/compiler/cfg/linear-scan/debugger/debugger.factor b/basis/compiler/cfg/linear-scan/debugger/debugger.factor index 89bf81d2ba..c6481b305e 100644 --- a/basis/compiler/cfg/linear-scan/debugger/debugger.factor +++ b/basis/compiler/cfg/linear-scan/debugger/debugger.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors kernel sequences sets arrays -compiler.cfg.linear-scan.live-intervals +USING: accessors kernel sequences sets arrays math strings fry +prettyprint compiler.cfg.linear-scan.live-intervals compiler.cfg.linear-scan.allocation ; IN: compiler.cfg.linear-scan.debugger @@ -21,3 +21,16 @@ IN: compiler.cfg.linear-scan.debugger : check-linear-scan ( live-intervals machine-registers -- ) [ [ clone ] map ] dip allocate-registers [ split-children ] map concat check-assigned ; + +: picture ( uses -- str ) + dup peek 1 + CHAR: space + [ '[ CHAR: * swap _ set-nth ] each ] keep ; + +: interval-picture ( interval -- str ) + [ uses>> picture ] + [ copy-from>> unparse ] + [ vreg>> unparse ] + tri 3array ; + +: live-intervals. ( seq -- ) + [ interval-picture ] map simple-table. ;