From 3a9b297b3b20ca0f0bb324af64c3dc0d8b87127b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Wed, 16 Mar 2016 00:09:55 +0100 Subject: [PATCH] compiler.cfg.*: better stack effect for end-stack-analysis --- basis/compiler/cfg/builder/builder.factor | 7 ++++--- basis/compiler/cfg/stacks/stacks-docs.factor | 3 ++- basis/compiler/cfg/stacks/stacks.factor | 9 ++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/basis/compiler/cfg/builder/builder.factor b/basis/compiler/cfg/builder/builder.factor index ec163d144f..99c43be3c6 100644 --- a/basis/compiler/cfg/builder/builder.factor +++ b/basis/compiler/cfg/builder/builder.factor @@ -19,9 +19,10 @@ SYMBOL: loops : with-cfg-builder ( nodes word label quot: ( ..a block -- ..b ) -- ) '[ begin-stack-analysis - begin-cfg dup procedures get push - entry>> @ - end-stack-analysis + begin-cfg + [ procedures get push ] + [ entry>> @ ] + [ end-stack-analysis ] tri ] with-scope ; inline : with-dummy-cfg-builder ( node quot -- ) diff --git a/basis/compiler/cfg/stacks/stacks-docs.factor b/basis/compiler/cfg/stacks/stacks-docs.factor index a1b6ce8161..0b212e3b21 100644 --- a/basis/compiler/cfg/stacks/stacks-docs.factor +++ b/basis/compiler/cfg/stacks/stacks-docs.factor @@ -1,4 +1,4 @@ -USING: compiler.cfg.instructions compiler.cfg.registers +USING: compiler.cfg compiler.cfg.instructions compiler.cfg.registers compiler.cfg.stacks.local compiler.tree help.markup help.syntax math sequences ; IN: compiler.cfg.stacks @@ -12,6 +12,7 @@ HELP: begin-stack-analysis { $see-also height-state } ; HELP: end-stack-analysis +{ $values { "cfg" cfg } } { $description "Ends the stack analysis of the current cfg. This is the last step of the cfg construction (but comes before all optimization passes)." } ; HELP: adjust-d diff --git a/basis/compiler/cfg/stacks/stacks.factor b/basis/compiler/cfg/stacks/stacks.factor index c5451e17a1..7646c22691 100644 --- a/basis/compiler/cfg/stacks/stacks.factor +++ b/basis/compiler/cfg/stacks/stacks.factor @@ -1,9 +1,9 @@ ! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors biassocs compiler.cfg compiler.cfg.registers +USING: accessors biassocs compiler.cfg.registers compiler.cfg.stacks.finalize compiler.cfg.stacks.global -compiler.cfg.stacks.height compiler.cfg.stacks.local compiler.cfg.utilities -fry kernel math namespaces sequences ; +compiler.cfg.stacks.height compiler.cfg.stacks.local +compiler.cfg.utilities kernel math namespaces sequences ; IN: compiler.cfg.stacks : begin-stack-analysis ( -- ) @@ -15,8 +15,7 @@ IN: compiler.cfg.stacks H{ } clone kill-sets set initial-height-state height-state set ; -: end-stack-analysis ( -- ) - cfg get +: end-stack-analysis ( cfg -- ) { compute-anticip-sets compute-live-sets