sets: moving unique/conjoin/conjoin-at to compiler.utilities.

char-rename
John Benediktsson 2017-02-07 18:54:24 -08:00
parent b5ce31cbae
commit f4ccfa0f71
12 changed files with 44 additions and 47 deletions

View File

@ -1,11 +1,10 @@
USING: accessors alien assocs compiler.cfg compiler.cfg.comparisons USING: accessors alien assocs compiler.cfg compiler.cfg.comparisons
compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
compiler.cfg.utilities compiler.test cpu.architecture compiler.cfg.utilities compiler.test compiler.utilities cpu.architecture
cpu.x86.assembler.operands kernel math namespaces sequences system cpu.x86.assembler.operands kernel math namespaces sequences system
tools.test ; tools.test ;
IN: compiler.cfg.liveness.tests IN: compiler.cfg.liveness.tests
QUALIFIED: sets
! compute-edge-live-in ! compute-edge-live-in
{ H{ } } [ { H{ } } [
@ -71,7 +70,7 @@ QUALIFIED: sets
{ 124 double-2-rep } { 124 double-2-rep }
{ 125 tagged-rep } { 125 tagged-rep }
} representations set } representations set
{ 123 124 125 } sets:unique gc-roots { 123 124 125 } unique gc-roots
] unit-test ] unit-test
! gen-uses ! gen-uses

View File

@ -1,11 +1,11 @@
! Copyright (C) 2009, 2010 Slava Pestov. ! Copyright (C) 2009, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators combinators.short-circuit USING: accessors assocs combinators combinators.short-circuit
compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.predecessors compiler.cfg.def-use compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.rpo compiler.cfg.predecessors compiler.cfg.registers
compiler.cfg.ssa.destruction.leaders compiler.cfg.utilities compiler.cfg.rpo compiler.cfg.ssa.destruction.leaders
cpu.architecture deques dlists fry kernel locals namespaces compiler.cfg.utilities compiler.utilities cpu.architecture
sequences sets ; deques dlists fry kernel locals namespaces sequences sets ;
IN: compiler.cfg.liveness IN: compiler.cfg.liveness
SYMBOL: live-ins SYMBOL: live-ins

View File

@ -1,9 +1,9 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: assocs compiler.cfg.instructions compiler.cfg.registers USING: assocs compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.ssa.destruction.leaders cpu.architecture deques compiler.cfg.ssa.destruction.leaders compiler.utilities
dlists fry kernel locals make namespaces sequences ; cpu.architecture deques dlists fry kernel locals make namespaces
QUALIFIED: sets sequences ;
IN: compiler.cfg.parallel-copy IN: compiler.cfg.parallel-copy
<PRIVATE <PRIVATE
@ -60,7 +60,7 @@ SYMBOL: temp-vregs
: temp-vreg ( rep -- vreg ) : temp-vreg ( rep -- vreg )
temp-vregs get [ next-vreg-rep ] cache temp-vregs get [ next-vreg-rep ] cache
[ leader-map get sets:conjoin ] keep ; [ leader-map get conjoin ] keep ;
PRIVATE> PRIVATE>

View File

@ -1,9 +1,9 @@
USING: assocs compiler.cfg.def-use compiler.cfg.instructions USING: assocs compiler.cfg.def-use compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.ssa.destruction.coalescing compiler.cfg.registers compiler.cfg.ssa.destruction.coalescing
compiler.cfg.ssa.destruction.leaders compiler.cfg.ssa.interference compiler.cfg.ssa.destruction.leaders
compiler.cfg.utilities cpu.architecture grouping kernel make compiler.cfg.ssa.interference compiler.cfg.utilities
compiler.utilities cpu.architecture grouping kernel make
namespaces random sequences tools.test ; namespaces random sequences tools.test ;
QUALIFIED: sets
IN: compiler.cfg.ssa.destruction.coalescing.tests IN: compiler.cfg.ssa.destruction.coalescing.tests
! eliminatable-copy? ! eliminatable-copy?
@ -104,7 +104,7 @@ IN: compiler.cfg.ssa.destruction.coalescing.tests
{ t } [ { t } [
10 [ 10 [
{ 2286 2287 2288 } sets:unique leader-map set { 2286 2287 2288 } unique leader-map set
2286 make-phi-inputs ##phi new-insn 2286 make-phi-inputs ##phi new-insn
coalesce-now coalesce-now
2286 leader 2286 leader

View File

@ -1,8 +1,9 @@
USING: accessors arrays assocs compiler.cfg.def-use USING: accessors arrays assocs compiler.cfg.def-use
compiler.cfg.instructions compiler.cfg.linearization compiler.cfg.instructions compiler.cfg.linearization
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
compiler.cfg.ssa.interference cpu.architecture fry kernel make compiler.cfg.ssa.interference compiler.utilities
namespaces sequences sets sorting ; cpu.architecture fry kernel make namespaces sequences sets
sorting ;
IN: compiler.cfg.ssa.destruction.coalescing IN: compiler.cfg.ssa.destruction.coalescing
: zip-scalar ( scalar seq -- pairs ) : zip-scalar ( scalar seq -- pairs )

View File

@ -1,8 +1,9 @@
! Copyright (C) 2008, 2010 Slava Pestov. ! Copyright (C) 2008, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays assocs combinators.short-circuit compiler.cfg USING: accessors arrays assocs combinators.short-circuit
compiler.cfg.instructions compiler.cfg.rpo cpu.architecture deques fry compiler.cfg compiler.cfg.instructions compiler.cfg.rpo
heaps kernel locals macros math sequences sets ; cpu.architecture deques fry hashtables heaps kernel locals
macros math sequences sets ;
IN: compiler.cfg.utilities IN: compiler.cfg.utilities
: block>cfg ( bb -- cfg ) : block>cfg ( bb -- cfg )

View File

@ -1,7 +1,7 @@
! Copyright (C) 2008, 2009 Slava Pestov. ! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays assocs fry kernel locals math math.order USING: arrays assocs fry hashtables kernel locals math
namespaces sequences vectors ; math.order namespaces sequences vectors ;
IN: compiler.utilities IN: compiler.utilities
: flattener ( seq quot -- seq vector quot' ) : flattener ( seq quot -- seq vector quot' )
@ -47,3 +47,12 @@ yield-hook [ [ ] ] initialize
] unless ] unless
destination' destination'
] if ; ] if ;
: unique ( seq -- assoc )
[ dup ] H{ } map>assoc ;
: conjoin ( elt assoc -- )
dupd set-at ;
: conjoin-at ( value key assoc -- )
[ dupd ?set-at ] change-at ;

View File

@ -238,16 +238,18 @@ TUPLE: simd-test-failure
word '[ _ execute ] ; word '[ _ execute ] ;
: remove-float-words ( alist -- alist' ) : remove-float-words ( alist -- alist' )
{ distance vsqrt n/v v/n v/ normalize } unique assoc-diff ; { distance vsqrt n/v v/n v/ normalize }
'[ drop _ member? ] assoc-reject ;
: remove-integer-words ( alist -- alist' ) : remove-integer-words ( alist -- alist' )
{ vlshift vrshift v*high v*hs+ } unique assoc-diff ; { vlshift vrshift v*high v*hs+ }
'[ drop _ member? ] assoc-reject ;
: boolean-ops ( -- words ) : boolean-ops ( -- words )
{ vand vandn vor vxor vnot vcount } ; { vand vandn vor vxor vnot vcount } ;
: remove-boolean-words ( alist -- alist' ) : remove-boolean-words ( alist -- alist' )
boolean-ops unique assoc-diff ; boolean-ops '[ drop _ member? ] assoc-reject ;
: ops-to-check ( elt-class -- alist ) : ops-to-check ( elt-class -- alist )
[ vector-words >alist ] dip [ vector-words >alist ] dip

View File

@ -108,10 +108,10 @@ PRIVATE>
: exclusions ( -- set ) : exclusions ( -- set )
exclusions-file utf8 file-lines exclusions-file utf8 file-lines
[ "#" split1 drop [ blank? ] trim-tail hex> ] map [ "#" split1 drop [ blank? ] trim-tail hex> ] map
[ 0 = ] reject ; [ 0 = ] reject fast-set ;
: remove-exclusions ( alist -- alist ) : remove-exclusions ( alist -- alist )
exclusions unique assoc-diff ; exclusions [ nip sets:in? ] curry assoc-reject ;
: process-canonical ( data -- hash hash ) : process-canonical ( data -- hash hash )
(process-decomposed) [ first* ] filter (process-decomposed) [ first* ] filter

View File

@ -1,8 +1,7 @@
! Copyright (C) 2007, 2009 Daniel Ehrenberg, Slava Pestov, and Doug Coleman ! Copyright (C) 2007, 2009 Daniel Ehrenberg, Slava Pestov, and Doug Coleman
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: help.markup help.syntax kernel sequences USING: assocs.private help.markup help.syntax kernel math
sequences.private namespaces math quotations assocs.private namespaces quotations sequences ;
sets ;
IN: assocs IN: assocs
ARTICLE: "alists" "Association lists" ARTICLE: "alists" "Association lists"
@ -103,11 +102,6 @@ $nl
substitute substitute
extract-keys extract-keys
} }
"Adding elements to sets:"
{ $subsections
conjoin
conjoin-at
}
"Destructive operations:" "Destructive operations:"
{ $subsections { $subsections
assoc-union! assoc-union!

View File

@ -169,12 +169,3 @@ M: sequence clear-set
: intersect! ( set1 set2 -- set1 ) : intersect! ( set1 set2 -- set1 )
dupd sequence/tester [ dup ] prepose [ not ] compose pick dupd sequence/tester [ dup ] prepose [ not ] compose pick
[ delete ] curry [ [ drop ] if ] curry compose each ; [ delete ] curry [ [ drop ] if ] curry compose each ;
! Temporarily for compatibility
: unique ( seq -- assoc )
[ dup ] H{ } map>assoc ;
: conjoin ( elt assoc -- )
dupd set-at ;
: conjoin-at ( value key assoc -- )
[ dupd ?set-at ] change-at ;

View File

@ -67,9 +67,9 @@ M: ast-return compile-ast
: block-lexenv ( block -- lexenv ) : block-lexenv ( block -- lexenv )
[ [ arguments>> ] [ temporaries>> ] bi append ] [ [ arguments>> ] [ temporaries>> ] bi append ]
[ body>> [ assigned-locals ] map concat unique ] bi [ body>> [ assigned-locals ] map concat fast-set ] bi
'[ '[
dup dup _ key? dup dup _ in?
[ <local-reader> ] [ <local-reader> ]
[ <local> ] [ <local> ]
if if