sets: moving unique/conjoin/conjoin-at to compiler.utilities.
parent
b5ce31cbae
commit
f4ccfa0f71
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue