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
compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness
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
tools.test ;
IN: compiler.cfg.liveness.tests
QUALIFIED: sets
! compute-edge-live-in
{ H{ } } [
@ -71,7 +70,7 @@ QUALIFIED: sets
{ 124 double-2-rep }
{ 125 tagged-rep }
} representations set
{ 123 124 125 } sets:unique gc-roots
{ 123 124 125 } unique gc-roots
] unit-test
! gen-uses

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays assocs fry kernel locals math math.order
namespaces sequences vectors ;
USING: arrays assocs fry hashtables kernel locals math
math.order namespaces sequences vectors ;
IN: compiler.utilities
: flattener ( seq quot -- seq vector quot' )
@ -47,3 +47,12 @@ yield-hook [ [ ] ] initialize
] unless
destination'
] 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 ] ;
: 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' )
{ vlshift vrshift v*high v*hs+ } unique assoc-diff ;
{ vlshift vrshift v*high v*hs+ }
'[ drop _ member? ] assoc-reject ;
: boolean-ops ( -- words )
{ vand vandn vor vxor vnot vcount } ;
: remove-boolean-words ( alist -- alist' )
boolean-ops unique assoc-diff ;
boolean-ops '[ drop _ member? ] assoc-reject ;
: ops-to-check ( elt-class -- alist )
[ vector-words >alist ] dip

View File

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

View File

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

View File

@ -169,12 +169,3 @@ M: sequence clear-set
: intersect! ( set1 set2 -- set1 )
dupd sequence/tester [ dup ] prepose [ not ] compose pick
[ 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 )
[ [ 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> ]
if