From 0a7726b66d185c0f17c92467742cb51ab92fd622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Sat, 8 Nov 2014 19:54:45 +0100 Subject: [PATCH] compiler.cfg.dependence: more docs for the vocab --- .../cfg/dependence/dependence-docs.factor | 27 +++++++++++++++++++ .../compiler/cfg/dependence/dependence.factor | 7 +---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/basis/compiler/cfg/dependence/dependence-docs.factor b/basis/compiler/cfg/dependence/dependence-docs.factor index cc9cdbd47c..10764d8ad4 100644 --- a/basis/compiler/cfg/dependence/dependence-docs.factor +++ b/basis/compiler/cfg/dependence/dependence-docs.factor @@ -1,6 +1,33 @@ USING: compiler.cfg.instructions help.markup help.syntax sequences ; IN: compiler.cfg.dependence +HELP: node +{ $class-description "Nodes in the dependency graph. These need to be numbered so that the same instruction will get distinct nodes if it occurs multiple times. It has the following slots:" + { $table + { { $slot "number" } { "Sequence number to differentiate two otherwise equal nodes from each other. " } } + { { $slot "insn" } { { $link insn } } } + { { $slot "parent" } { "Node which must precede this node in the instruction flow." } } + } +} ; + HELP: { $values { "insn" insn } { "node" node } } { $description "Creates a new dependency graph node from an CFG instruction." } ; + +{ node } related-words + +HELP: attach-parent +{ $values { "node" node } { "parent" node } } +{ $description "Inserts 'node' as a children of 'parent' and sets the parent of 'node' to 'parent'." } +{ $examples + { $unchecked-example + "USING: compiler.cfg.dependence ;" + "T{ ##replace } T{ ##set-slot-imm } [ ] bi@ attach-parent" + } +} ; + + +ARTICLE: "compiler.cfg.dependence" "Dependence graph construction" +"This vocab is used by " { $vocab-link "compiler.cfg.scheduling" } "." ; + +ABOUT: "compiler.cfg.dependence" diff --git a/basis/compiler/cfg/dependence/dependence.factor b/basis/compiler/cfg/dependence/dependence.factor index d15351e770..73bb6f203d 100644 --- a/basis/compiler/cfg/dependence/dependence.factor +++ b/basis/compiler/cfg/dependence/dependence.factor @@ -7,8 +7,6 @@ make math combinators.short-circuit vectors ; FROM: namespaces => set ; IN: compiler.cfg.dependence -! Dependence graph construction - SYMBOL: roots SYMBOL: node-number SYMBOL: nodes @@ -16,9 +14,6 @@ SYMBOL: nodes SYMBOL: +data+ SYMBOL: +control+ -! Nodes in the dependency graph -! These need to be numbered so that the same instruction -! will get distinct nodes if it occurs multiple times TUPLE: node number insn precedes follows children parent @@ -153,6 +148,6 @@ ERROR: node-missing-children trees nodes ; : build-fan-in-trees ( -- ) make-trees verify-trees [ - -1/0. >>parent-index + -1/0. >>parent-index calculate-registers drop ] each ;