Move conjoin-at from compiler.cfg.liveness to sets

db4
Slava Pestov 2009-07-21 03:02:06 -05:00
parent a213db05db
commit fd9a353fd6
3 changed files with 8 additions and 3 deletions

View File

@ -43,9 +43,6 @@ SYMBOL: work-list
[ nip kill-set ]
2bi assoc-diff ;
: conjoin-at ( value key assoc -- )
[ dupd ?set-at ] change-at ;
: compute-phi-live-in ( basic-block -- phi-live-in )
instructions>> [ ##phi? ] filter [ f ] [
H{ } clone [

View File

@ -23,6 +23,7 @@ $nl
"Adding elements to sets:"
{ $subsection adjoin }
{ $subsection conjoin }
{ $subsection conjoin-at }
{ $see-also member? memq? any? all? "assocs-sets" } ;
ABOUT: "sets"
@ -54,6 +55,10 @@ HELP: conjoin
}
{ $side-effects "assoc" } ;
HELP: conjoin-at
{ $values { "value" object } { "key" object } { "assoc" assoc } }
{ $description "Adds " { $snippet "value" } " to the set stored at " { $snippet "key" } " of " { $snippet "assoc" } "." } ;
HELP: unique
{ $values { "seq" "a sequence" } { "assoc" assoc } }
{ $description "Outputs a new assoc where the keys and values are equal." }

View File

@ -7,6 +7,9 @@ IN: sets
: conjoin ( elt assoc -- ) dupd set-at ;
: conjoin-at ( value key assoc -- )
[ dupd ?set-at ] change-at ;
: (prune) ( elt hash vec -- )
3dup drop key? [ 3drop ] [
[ drop conjoin ] [ nip push ] 3bi