compiler: cleanup usings.
parent
68b662c44c
commit
c65877104e
|
@ -1,16 +1,10 @@
|
||||||
! 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: kernel math namespaces assocs hashtables sequences arrays
|
USING: accessors arrays assocs combinators.short-circuit
|
||||||
accessors words vectors combinators combinators.short-circuit
|
compiler.cfg.comparisons compiler.cfg.instructions
|
||||||
sets classes layouts fry locals cpu.architecture
|
compiler.cfg.representations.preferred compiler.cfg.rpo
|
||||||
compiler.cfg
|
compiler.cfg.utilities cpu.architecture fry kernel locals math
|
||||||
compiler.cfg.rpo
|
namespaces sequences sets ;
|
||||||
compiler.cfg.def-use
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.representations.preferred ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.alias-analysis
|
IN: compiler.cfg.alias-analysis
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: accessors combinators combinators.short-circuit compiler.utilities
|
USING: accessors combinators combinators.short-circuit
|
||||||
compiler.cfg compiler.cfg.instructions compiler.cfg.rpo
|
compiler.cfg compiler.cfg.predecessors compiler.cfg.rpo
|
||||||
compiler.cfg.predecessors compiler.cfg.utilities kernel math sequences ;
|
compiler.cfg.utilities kernel sequences ;
|
||||||
IN: compiler.cfg.block-joining
|
IN: compiler.cfg.block-joining
|
||||||
|
|
||||||
! Joining blocks that are not calls and are connected by a single CFG edge.
|
! Joining blocks that are not calls and are connected by a single CFG edge.
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
! Copyright (C) 2009, 2011 Doug Coleman, Slava Pestov.
|
! Copyright (C) 2009, 2011 Doug Coleman, Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: arrays accessors assocs combinators combinators.short-circuit
|
USING: accessors arrays combinators combinators.short-circuit
|
||||||
dlists deques kernel locals math math.order sequences
|
compiler.cfg compiler.cfg.instructions compiler.cfg.predecessors
|
||||||
sets vectors fry splitting compiler.cfg.def-use compiler.cfg
|
compiler.cfg.renaming compiler.cfg.rpo compiler.cfg.utilities
|
||||||
compiler.cfg.rpo compiler.cfg.predecessors compiler.cfg.renaming
|
deques dlists fry kernel locals math sequences sets vectors ;
|
||||||
compiler.cfg.instructions compiler.cfg.utilities ;
|
|
||||||
FROM: namespaces => get set ;
|
FROM: namespaces => get set ;
|
||||||
IN: compiler.cfg.branch-splitting
|
IN: compiler.cfg.branch-splitting
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
! 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: namespaces accessors math math.order assocs kernel
|
USING: accessors compiler.cfg.instructions compiler.cfg.rpo
|
||||||
sequences combinators classes words system fry locals
|
compiler.cfg.stack-frame cpu.architecture kernel layouts locals
|
||||||
cpu.architecture layouts compiler.cfg compiler.cfg.rpo
|
math math.order namespaces sequences ;
|
||||||
compiler.cfg.instructions compiler.cfg.registers
|
|
||||||
compiler.cfg.stack-frame ;
|
|
||||||
IN: compiler.cfg.build-stack-frame
|
IN: compiler.cfg.build-stack-frame
|
||||||
|
|
||||||
SYMBOLS: param-area-size allot-area-size allot-area-align
|
SYMBOLS: param-area-size allot-area-size allot-area-align
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
! 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 assocs arrays layouts math math.order
|
USING: accessors alien alien.c-types alien.libraries
|
||||||
math.parser combinators combinators.short-circuit fry make
|
alien.strings arrays assocs classes.struct combinators
|
||||||
sequences sequences.generalizations alien alien.private
|
compiler.cfg compiler.cfg.builder
|
||||||
alien.strings alien.c-types alien.libraries classes.struct
|
compiler.cfg.builder.alien.boxing
|
||||||
namespaces kernel strings libc locals quotations words
|
compiler.cfg.builder.alien.params compiler.cfg.hats
|
||||||
cpu.architecture compiler.utilities compiler.tree compiler.cfg
|
compiler.cfg.instructions compiler.cfg.registers
|
||||||
compiler.cfg.builder compiler.cfg.builder.alien.params
|
compiler.cfg.stacks compiler.cfg.stacks.local compiler.errors
|
||||||
compiler.cfg.builder.alien.boxing compiler.cfg.builder.blocks
|
compiler.tree cpu.architecture fry kernel layouts make math
|
||||||
compiler.cfg.instructions compiler.cfg.stack-frame
|
math.parser namespaces sequences sequences.generalizations
|
||||||
compiler.cfg.stacks compiler.cfg.stacks.local
|
strings words ;
|
||||||
compiler.cfg.registers compiler.cfg.hats compiler.errors ;
|
|
||||||
FROM: compiler.errors => no-such-symbol no-such-library ;
|
FROM: compiler.errors => no-such-symbol no-such-library ;
|
||||||
IN: compiler.cfg.builder.alien
|
IN: compiler.cfg.builder.alien
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors alien.c-types arrays assocs combinators
|
USING: accessors alien.c-types arrays assocs classes.struct
|
||||||
classes.struct fry kernel layouts locals math namespaces
|
combinators compiler.cfg.builder.alien.params compiler.cfg.hats
|
||||||
sequences sequences.generalizations system
|
compiler.cfg.instructions compiler.cfg.intrinsics.allot
|
||||||
compiler.cfg.builder.alien.params compiler.cfg.hats
|
compiler.cfg.registers cpu.architecture fry kernel layouts
|
||||||
compiler.cfg.registers compiler.cfg.instructions
|
locals math namespaces sequences system ;
|
||||||
compiler.cfg.intrinsics.allot cpu.architecture ;
|
|
||||||
QUALIFIED-WITH: alien.c-types c
|
QUALIFIED-WITH: alien.c-types c
|
||||||
IN: compiler.cfg.builder.alien.boxing
|
IN: compiler.cfg.builder.alien.boxing
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: cpu.architecture fry kernel layouts math math.order
|
USING: arrays assocs cpu.architecture fry kernel layouts locals
|
||||||
namespaces sequences vectors assocs arrays locals ;
|
math math.order namespaces sequences vectors ;
|
||||||
IN: compiler.cfg.builder.alien.params
|
IN: compiler.cfg.builder.alien.params
|
||||||
|
|
||||||
SYMBOL: stack-params
|
SYMBOL: stack-params
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
! 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 arrays fry kernel make math namespaces sequences
|
USING: accessors arrays compiler.cfg compiler.cfg.instructions
|
||||||
compiler.cfg compiler.cfg.instructions compiler.cfg.stacks
|
compiler.cfg.stacks compiler.cfg.stacks.local kernel make math
|
||||||
compiler.cfg.stacks.local ;
|
namespaces sequences ;
|
||||||
|
SLOT: in-d
|
||||||
|
SLOT: out-d
|
||||||
IN: compiler.cfg.builder.blocks
|
IN: compiler.cfg.builder.blocks
|
||||||
|
|
||||||
: set-basic-block ( basic-block -- )
|
: set-basic-block ( basic-block -- )
|
||||||
|
|
|
@ -1,25 +1,12 @@
|
||||||
! Copyright (C) 2004, 2010 Slava Pestov.
|
! Copyright (C) 2004, 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 hashtables kernel
|
USING: accessors assocs combinators compiler.cfg
|
||||||
math fry namespaces make sequences words byte-arrays
|
compiler.cfg.builder.blocks compiler.cfg.comparisons
|
||||||
layouts alien.c-types
|
compiler.cfg.hats compiler.cfg.instructions
|
||||||
stack-checker.inlining cpu.architecture
|
compiler.cfg.intrinsics compiler.cfg.registers
|
||||||
compiler.tree
|
compiler.cfg.stacks compiler.cfg.stacks.local compiler.tree
|
||||||
compiler.tree.builder
|
cpu.architecture fry kernel make math namespaces sequences words
|
||||||
compiler.tree.combinators
|
;
|
||||||
compiler.tree.propagation.info
|
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.hats
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.intrinsics
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.stack-frame
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.predecessors
|
|
||||||
compiler.cfg.builder.blocks
|
|
||||||
compiler.cfg.stacks
|
|
||||||
compiler.cfg.stacks.local ;
|
|
||||||
IN: compiler.cfg.builder
|
IN: compiler.cfg.builder
|
||||||
|
|
||||||
! Convert tree SSA IR to CFG IR. The result is not in SSA form; this is
|
! Convert tree SSA IR to CFG IR. The result is not in SSA form; this is
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! 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: kernel math vectors arrays accessors namespaces ;
|
USING: accessors kernel math namespaces vectors ;
|
||||||
IN: compiler.cfg
|
IN: compiler.cfg
|
||||||
|
|
||||||
TUPLE: basic-block < identity-tuple
|
TUPLE: basic-block < identity-tuple
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
! 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: kernel combinators.short-circuit accessors math sequences
|
USING: accessors compiler.cfg.rpo kernel sequences ;
|
||||||
sets assocs compiler.cfg.instructions compiler.cfg.rpo
|
|
||||||
compiler.cfg.def-use compiler.cfg.linearization
|
|
||||||
compiler.cfg.utilities compiler.cfg.finalization
|
|
||||||
compiler.utilities ;
|
|
||||||
IN: compiler.cfg.checker
|
IN: compiler.cfg.checker
|
||||||
|
|
||||||
ERROR: bad-successors ;
|
ERROR: bad-successors ;
|
||||||
|
|
|
@ -1,9 +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: sets kernel namespaces assocs accessors sequences grouping
|
USING: accessors assocs compiler.cfg.def-use
|
||||||
fry compiler.cfg.def-use compiler.cfg.rpo
|
compiler.cfg.instructions compiler.cfg.predecessors
|
||||||
compiler.cfg.renaming compiler.cfg.instructions
|
compiler.cfg.renaming compiler.cfg.rpo compiler.cfg.utilities
|
||||||
compiler.cfg.predecessors compiler.cfg.utilities ;
|
fry grouping kernel namespaces sequences ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.copy-prop
|
IN: compiler.cfg.copy-prop
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: accessors assocs deques dlists kernel locals sequences lexer
|
USING: accessors assocs compiler.cfg.predecessors
|
||||||
namespaces functors compiler.cfg.rpo compiler.cfg.utilities
|
compiler.cfg.rpo deques dlists functors kernel lexer locals
|
||||||
compiler.cfg.predecessors compiler.cfg ;
|
namespaces sequences ;
|
||||||
IN: compiler.cfg.dataflow-analysis
|
IN: compiler.cfg.dataflow-analysis
|
||||||
|
|
||||||
GENERIC: join-sets ( sets bb dfa -- set )
|
GENERIC: join-sets ( sets bb dfa -- set )
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! Copyright (C) 2008, 2010 Slava Pestov, Daniel Ehrenberg.
|
! Copyright (C) 2008, 2010 Slava Pestov, Daniel Ehrenberg.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs kernel namespaces sequences combinators
|
USING: accessors arrays assocs combinators compiler.cfg.def-use
|
||||||
compiler.cfg.instructions compiler.cfg.def-use
|
compiler.cfg.instructions compiler.cfg.predecessors
|
||||||
compiler.cfg.rpo compiler.cfg.predecessors hash-sets sets ;
|
compiler.cfg.rpo kernel namespaces sequences sets ;
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.dce
|
IN: compiler.cfg.dce
|
||||||
|
|
|
@ -1,19 +1,17 @@
|
||||||
! Copyright (C) 2008, 2011 Slava Pestov.
|
! Copyright (C) 2008, 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel words sequences quotations namespaces io vectors
|
USING: accessors assocs classes.tuple compiler.cfg
|
||||||
arrays hashtables classes.tuple math accessors prettyprint
|
compiler.cfg.builder compiler.cfg.def-use
|
||||||
prettyprint.config assocs prettyprint.backend prettyprint.custom
|
compiler.cfg.finalization compiler.cfg.gc-checks
|
||||||
prettyprint.sections parser random compiler.tree.builder
|
compiler.cfg.instructions compiler.cfg.linearization
|
||||||
compiler.tree.optimizer cpu.architecture compiler.cfg.builder
|
compiler.cfg.optimizer compiler.cfg.registers
|
||||||
compiler.cfg.linearization compiler.cfg.registers
|
compiler.cfg.representations
|
||||||
compiler.cfg.stack-frame compiler.cfg.linear-scan
|
compiler.cfg.representations.preferred compiler.cfg.rpo
|
||||||
compiler.cfg.optimizer compiler.cfg.finalization
|
compiler.cfg.save-contexts compiler.cfg.scheduling
|
||||||
compiler.cfg.instructions compiler.cfg.utilities
|
compiler.cfg.utilities compiler.tree.builder
|
||||||
compiler.cfg.def-use compiler.cfg.rpo
|
compiler.tree.optimizer compiler.units hashtables io kernel math
|
||||||
compiler.cfg.representations compiler.cfg.gc-checks
|
namespaces prettyprint prettyprint.backend prettyprint.custom
|
||||||
compiler.cfg.save-contexts compiler.cfg
|
prettyprint.sections quotations random sequences vectors words ;
|
||||||
compiler.cfg.representations.preferred
|
|
||||||
compiler.cfg.scheduling compiler.units ;
|
|
||||||
FROM: compiler.cfg.linearization => number-blocks ;
|
FROM: compiler.cfg.linearization => number-blocks ;
|
||||||
IN: compiler.cfg.debugger
|
IN: compiler.cfg.debugger
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
! Copyright (C) 2008, 2011 Slava Pestov, Daniel Ehrenberg.
|
! Copyright (C) 2008, 2011 Slava Pestov, Daniel Ehrenberg.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs arrays classes combinators
|
USING: accessors arrays assocs combinators compiler.cfg
|
||||||
compiler.units fry generalizations sequences.generalizations
|
compiler.cfg.instructions compiler.cfg.instructions.syntax
|
||||||
generic kernel locals namespaces quotations sequences sets slots
|
compiler.cfg.rpo compiler.units fry generic kernel namespaces
|
||||||
words compiler.cfg.instructions compiler.cfg.instructions.syntax
|
quotations sequences sequences.generalizations sets slots words
|
||||||
compiler.cfg.rpo compiler.cfg ;
|
;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
FROM: sets => members ;
|
FROM: sets => members ;
|
||||||
IN: compiler.cfg.def-use
|
IN: compiler.cfg.def-use
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! Copyright (C) 2009, 2010 Daniel Ehrenberg.
|
! Copyright (C) 2009, 2010 Daniel Ehrenberg.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs combinators compiler.cfg.def-use
|
USING: accessors assocs compiler.cfg.def-use
|
||||||
compiler.cfg.instructions compiler.cfg.registers fry kernel locals
|
compiler.cfg.instructions fry kernel locals math math.vectors
|
||||||
namespaces sequences sorting make math math.vectors sets vectors ;
|
namespaces sequences sets sorting vectors ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.dependence
|
IN: compiler.cfg.dependence
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: accessors assocs combinators sets math fry kernel math.order
|
USING: accessors assocs combinators compiler.cfg.predecessors
|
||||||
dlists deques vectors namespaces sequences sorting locals
|
compiler.cfg.rpo deques dlists fry kernel locals math math.order
|
||||||
compiler.cfg.rpo compiler.cfg.predecessors ;
|
namespaces sequences sorting vectors ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.dominance
|
IN: compiler.cfg.dominance
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel compiler.cfg.representations
|
USING: compiler.cfg.build-stack-frame compiler.cfg.gc-checks
|
||||||
compiler.cfg.scheduling compiler.cfg.gc-checks
|
compiler.cfg.linear-scan compiler.cfg.representations
|
||||||
compiler.cfg.write-barrier compiler.cfg.save-contexts
|
compiler.cfg.save-contexts compiler.cfg.scheduling
|
||||||
compiler.cfg.ssa.destruction compiler.cfg.build-stack-frame
|
compiler.cfg.ssa.destruction compiler.cfg.stacks.vacant
|
||||||
compiler.cfg.linear-scan compiler.cfg.stacks.vacant
|
compiler.cfg.utilities compiler.cfg.write-barrier ;
|
||||||
compiler.cfg.utilities ;
|
|
||||||
IN: compiler.cfg.finalization
|
IN: compiler.cfg.finalization
|
||||||
|
|
||||||
: finalize-cfg ( cfg -- )
|
: finalize-cfg ( cfg -- )
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
! 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 fry grouping kernel layouts
|
USING: accessors assocs compiler.cfg compiler.cfg.comparisons
|
||||||
locals math make namespaces sequences cpu.architecture
|
compiler.cfg.instructions compiler.cfg.predecessors
|
||||||
compiler.cfg
|
compiler.cfg.registers compiler.cfg.rpo compiler.cfg.utilities
|
||||||
compiler.cfg.rpo
|
cpu.architecture grouping kernel layouts locals make math
|
||||||
compiler.cfg.hats
|
namespaces sequences ;
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.predecessors ;
|
|
||||||
IN: compiler.cfg.gc-checks
|
IN: compiler.cfg.gc-checks
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
|
@ -1,10 +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 alien arrays byte-arrays classes.algebra
|
USING: accessors alien byte-arrays classes.algebra combinators
|
||||||
combinators.short-circuit kernel layouts math namespaces
|
compiler.cfg.instructions compiler.cfg.instructions.syntax
|
||||||
sequences combinators splitting parser effects words
|
compiler.cfg.registers compiler.constants effects kernel layouts
|
||||||
cpu.architecture compiler.constants compiler.cfg.registers
|
math namespaces parser sequences splitting words ;
|
||||||
compiler.cfg.instructions compiler.cfg.instructions.syntax ;
|
|
||||||
IN: compiler.cfg.hats
|
IN: compiler.cfg.hats
|
||||||
|
|
||||||
<<
|
<<
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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 math namespaces sequences kernel fry
|
USING: accessors compiler.cfg.instructions
|
||||||
compiler.cfg compiler.cfg.registers compiler.cfg.instructions
|
compiler.cfg.registers compiler.cfg.rpo fry kernel math
|
||||||
compiler.cfg.rpo ;
|
namespaces sequences ;
|
||||||
IN: compiler.cfg.height
|
IN: compiler.cfg.height
|
||||||
|
|
||||||
! Combine multiple stack height changes into one at the
|
! Combine multiple stack height changes into one at the
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
! Copyright (C) 2008, 2011 Slava Pestov.
|
! Copyright (C) 2008, 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: assocs accessors arrays kernel sequences namespaces words
|
USING: accessors compiler.cfg.instructions.syntax kernel math
|
||||||
math math.order layouts classes.union compiler.units alien
|
namespaces ;
|
||||||
byte-arrays combinators compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions.syntax ;
|
|
||||||
IN: compiler.cfg.instructions
|
IN: compiler.cfg.instructions
|
||||||
|
|
||||||
<<
|
<<
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: classes.tuple classes.tuple.parser kernel words
|
USING: accessors classes.parser classes.tuple combinators
|
||||||
make fry sequences parser accessors effects namespaces
|
effects fry kernel lexer make namespaces parser sequences
|
||||||
combinators splitting classes.parser lexer quotations ;
|
splitting words ;
|
||||||
IN: compiler.cfg.instructions.syntax
|
IN: compiler.cfg.instructions.syntax
|
||||||
|
|
||||||
SYMBOLS: def use temp literal ;
|
SYMBOLS: def use temp literal ;
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! 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: kernel math math.order sequences accessors arrays
|
USING: accessors arrays byte-arrays compiler.cfg.builder.blocks
|
||||||
byte-arrays layouts classes.tuple.private fry locals
|
compiler.cfg.hats compiler.cfg.instructions compiler.cfg.stacks
|
||||||
compiler.tree.propagation.info compiler.cfg.hats
|
compiler.constants compiler.tree.propagation.info
|
||||||
compiler.cfg.instructions compiler.cfg.stacks
|
cpu.architecture fry kernel layouts locals math math.order
|
||||||
compiler.cfg.utilities compiler.cfg.builder.blocks
|
sequences ;
|
||||||
compiler.constants cpu.architecture alien.c-types ;
|
|
||||||
IN: compiler.cfg.intrinsics.allot
|
IN: compiler.cfg.intrinsics.allot
|
||||||
|
|
||||||
: ##set-slots, ( regs obj class -- )
|
: ##set-slots, ( regs obj class -- )
|
||||||
|
|
|
@ -1,17 +1,10 @@
|
||||||
! Copyright (C) 2008, 2010 Slava Pestov, Doug Coleman.
|
! Copyright (C) 2008, 2010 Slava Pestov, Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: sequences accessors layouts kernel math math.intervals
|
USING: accessors arrays combinators compiler.cfg.builder.blocks
|
||||||
namespaces combinators fry arrays
|
compiler.cfg.comparisons compiler.cfg.hats
|
||||||
cpu.architecture
|
compiler.cfg.instructions compiler.cfg.stacks
|
||||||
compiler.tree.propagation.info
|
compiler.tree.propagation.info cpu.architecture fry kernel
|
||||||
compiler.cfg
|
layouts math math.intervals namespaces sequences ;
|
||||||
compiler.cfg.hats
|
|
||||||
compiler.cfg.stacks
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.builder.blocks
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.comparisons ;
|
|
||||||
IN: compiler.cfg.intrinsics.fixnum
|
IN: compiler.cfg.intrinsics.fixnum
|
||||||
|
|
||||||
: emit-both-fixnums? ( -- )
|
: emit-both-fixnums? ( -- )
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
! 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: fry kernel compiler.cfg.stacks compiler.cfg.hats
|
USING: compiler.cfg.hats compiler.cfg.stacks fry ;
|
||||||
compiler.cfg.instructions compiler.cfg.utilities ;
|
|
||||||
IN: compiler.cfg.intrinsics.float
|
IN: compiler.cfg.intrinsics.float
|
||||||
|
|
||||||
: emit-float-ordered-comparison ( cc -- )
|
: emit-float-ordered-comparison ( cc -- )
|
||||||
|
|
|
@ -1,34 +1,27 @@
|
||||||
! Copyright (C) 2008, 2010 Slava Pestov, Doug Coleman.
|
! Copyright (C) 2008, 2010 Slava Pestov, Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: words sequences kernel combinators cpu.architecture assocs
|
USING: assocs compiler.cfg.comparisons compiler.cfg.hats
|
||||||
math.bitwise
|
compiler.cfg.intrinsics.alien compiler.cfg.intrinsics.allot
|
||||||
compiler.cfg.hats
|
compiler.cfg.intrinsics.fixnum compiler.cfg.intrinsics.float
|
||||||
compiler.cfg.stacks
|
compiler.cfg.intrinsics.misc compiler.cfg.intrinsics.slots
|
||||||
compiler.cfg.instructions
|
compiler.cfg.intrinsics.strings compiler.cfg.stacks
|
||||||
compiler.cfg.intrinsics.alien
|
cpu.architecture kernel words ;
|
||||||
compiler.cfg.intrinsics.allot
|
|
||||||
compiler.cfg.intrinsics.fixnum
|
|
||||||
compiler.cfg.intrinsics.float
|
|
||||||
compiler.cfg.intrinsics.slots
|
|
||||||
compiler.cfg.intrinsics.strings
|
|
||||||
compiler.cfg.intrinsics.misc
|
|
||||||
compiler.cfg.comparisons ;
|
|
||||||
QUALIFIED: alien
|
QUALIFIED: alien
|
||||||
QUALIFIED: alien.accessors
|
QUALIFIED: alien.accessors
|
||||||
QUALIFIED: alien.data.private
|
|
||||||
QUALIFIED: alien.c-types
|
QUALIFIED: alien.c-types
|
||||||
QUALIFIED: kernel
|
QUALIFIED: alien.data.private
|
||||||
QUALIFIED: arrays
|
QUALIFIED: arrays
|
||||||
QUALIFIED: byte-arrays
|
QUALIFIED: byte-arrays
|
||||||
|
QUALIFIED: classes.tuple.private
|
||||||
|
QUALIFIED: kernel
|
||||||
QUALIFIED: kernel.private
|
QUALIFIED: kernel.private
|
||||||
|
QUALIFIED: math.bitwise.private
|
||||||
|
QUALIFIED: math.floats.private
|
||||||
|
QUALIFIED: math.integers.private
|
||||||
|
QUALIFIED: math.libm
|
||||||
|
QUALIFIED: math.private
|
||||||
QUALIFIED: slots.private
|
QUALIFIED: slots.private
|
||||||
QUALIFIED: strings.private
|
QUALIFIED: strings.private
|
||||||
QUALIFIED: classes.tuple.private
|
|
||||||
QUALIFIED: math.private
|
|
||||||
QUALIFIED: math.bitwise.private
|
|
||||||
QUALIFIED: math.integers.private
|
|
||||||
QUALIFIED: math.floats.private
|
|
||||||
QUALIFIED: math.libm
|
|
||||||
IN: compiler.cfg.intrinsics
|
IN: compiler.cfg.intrinsics
|
||||||
|
|
||||||
ERROR: inline-intrinsics-not-supported word quot ;
|
ERROR: inline-intrinsics-not-supported word quot ;
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
! 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 classes.algebra layouts kernel math namespaces
|
USING: accessors classes.algebra compiler.cfg.builder.blocks
|
||||||
sequences cpu.architecture
|
compiler.cfg.comparisons compiler.cfg.hats
|
||||||
compiler.tree.propagation.info
|
compiler.cfg.instructions compiler.cfg.stacks
|
||||||
compiler.cfg.stacks
|
compiler.tree.propagation.info cpu.architecture kernel layouts
|
||||||
compiler.cfg.hats
|
math namespaces sequences ;
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.builder.blocks
|
|
||||||
compiler.cfg.utilities ;
|
|
||||||
FROM: vm => context-field-offset vm-field-offset ;
|
FROM: vm => context-field-offset vm-field-offset ;
|
||||||
QUALIFIED-WITH: alien.c-types c
|
QUALIFIED-WITH: alien.c-types c
|
||||||
IN: compiler.cfg.intrinsics.misc
|
IN: compiler.cfg.intrinsics.misc
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
! (c)2009 Joe Groff bsd license
|
! (c)2009 Joe Groff bsd license
|
||||||
USING: accessors arrays assocs classes combinators
|
USING: accessors arrays classes combinators
|
||||||
combinators.short-circuit compiler.cfg.builder.blocks
|
compiler.cfg.instructions compiler.cfg.registers
|
||||||
compiler.cfg.registers compiler.cfg.stacks
|
compiler.cfg.stacks compiler.cfg.stacks.local
|
||||||
compiler.cfg.stacks.local compiler.tree.propagation.info
|
compiler.tree.propagation.info cpu.architecture fry
|
||||||
compiler.cfg.instructions
|
generalizations kernel locals macros make math quotations
|
||||||
cpu.architecture effects fry generalizations
|
sequences sequences.generalizations ;
|
||||||
kernel locals macros make math namespaces quotations sequences
|
|
||||||
sequences.generalizations splitting stack-checker words ;
|
|
||||||
IN: compiler.cfg.intrinsics.simd.backend
|
IN: compiler.cfg.intrinsics.simd.backend
|
||||||
|
|
||||||
! Selection of implementation based on available CPU instructions
|
! Selection of implementation based on available CPU instructions
|
||||||
|
|
|
@ -1,18 +1,12 @@
|
||||||
! Copyright (C) 2009 Slava Pestov, Joe Groff.
|
! Copyright (C) 2009 Slava Pestov, Joe Groff.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors alien alien.c-types byte-arrays fry
|
USING: accessors alien.c-types arrays byte-arrays combinators
|
||||||
classes.algebra cpu.architecture kernel layouts math sequences
|
combinators.short-circuit compiler.cfg.comparisons
|
||||||
math.vectors math.vectors.simd.intrinsics
|
compiler.cfg.hats compiler.cfg.instructions
|
||||||
macros generalizations combinators combinators.short-circuit
|
compiler.cfg.intrinsics compiler.cfg.intrinsics.alien
|
||||||
arrays locals compiler.tree.propagation.info
|
compiler.cfg.intrinsics.simd.backend compiler.cfg.stacks
|
||||||
compiler.cfg.builder.blocks
|
cpu.architecture fry kernel layouts locals math math.vectors
|
||||||
compiler.cfg.comparisons
|
math.vectors.simd.intrinsics sequences specialized-arrays ;
|
||||||
compiler.cfg.stacks compiler.cfg.stacks.local compiler.cfg.hats
|
|
||||||
compiler.cfg.instructions compiler.cfg.registers
|
|
||||||
compiler.cfg.intrinsics
|
|
||||||
compiler.cfg.intrinsics.alien
|
|
||||||
compiler.cfg.intrinsics.simd.backend
|
|
||||||
specialized-arrays ;
|
|
||||||
FROM: alien.c-types => heap-size char short int longlong float double ;
|
FROM: alien.c-types => heap-size char short int longlong float double ;
|
||||||
SPECIALIZED-ARRAYS: char uchar short ushort int uint longlong ulonglong float double ;
|
SPECIALIZED-ARRAYS: char uchar short ushort int uint longlong ulonglong float double ;
|
||||||
IN: compiler.cfg.intrinsics.simd
|
IN: compiler.cfg.intrinsics.simd
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
! 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: layouts namespaces kernel accessors sequences math
|
USING: accessors classes.algebra classes.builtin
|
||||||
classes.algebra classes.builtin locals combinators
|
combinators.short-circuit compiler.cfg.builder.blocks
|
||||||
combinators.short-circuit cpu.architecture
|
compiler.cfg.hats compiler.cfg.instructions
|
||||||
compiler.tree.propagation.info compiler.cfg.stacks
|
compiler.cfg.registers compiler.cfg.stacks
|
||||||
compiler.cfg.hats compiler.cfg.registers
|
compiler.tree.propagation.info cpu.architecture kernel layouts
|
||||||
compiler.cfg.instructions compiler.cfg.utilities
|
locals math namespaces sequences ;
|
||||||
compiler.cfg.builder.blocks compiler.constants ;
|
|
||||||
IN: compiler.cfg.intrinsics.slots
|
IN: compiler.cfg.intrinsics.slots
|
||||||
|
|
||||||
: class-tag ( class -- tag/f )
|
: class-tag ( class -- tag/f )
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien.c-types kernel compiler.constants compiler.cfg.hats
|
USING: alien.c-types compiler.cfg.hats compiler.cfg.instructions
|
||||||
compiler.cfg.instructions compiler.cfg.registers
|
compiler.cfg.stacks compiler.constants cpu.architecture kernel ;
|
||||||
compiler.cfg.stacks cpu.architecture ;
|
|
||||||
IN: compiler.cfg.intrinsics.strings
|
IN: compiler.cfg.intrinsics.strings
|
||||||
|
|
||||||
: (string-nth) ( n string -- base offset rep c-type )
|
: (string-nth) ( n string -- base offset rep c-type )
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
! 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 assocs binary-search combinators
|
USING: accessors assocs combinators combinators.short-circuit
|
||||||
combinators.short-circuit heaps kernel namespaces
|
|
||||||
sequences fry locals math math.order arrays sorting
|
|
||||||
compiler.utilities
|
|
||||||
compiler.cfg.linear-scan.live-intervals
|
|
||||||
compiler.cfg.linear-scan.allocation.spilling
|
compiler.cfg.linear-scan.allocation.spilling
|
||||||
compiler.cfg.linear-scan.allocation.splitting
|
compiler.cfg.linear-scan.allocation.state
|
||||||
compiler.cfg.linear-scan.allocation.state ;
|
compiler.cfg.linear-scan.live-intervals compiler.utilities fry
|
||||||
|
heaps kernel locals math namespaces sequences ;
|
||||||
IN: compiler.cfg.linear-scan.allocation
|
IN: compiler.cfg.linear-scan.allocation
|
||||||
|
|
||||||
: active-positions ( new assoc -- )
|
: active-positions ( new assoc -- )
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! 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 arrays assocs combinators fry hints kernel locals
|
USING: accessors assocs combinators
|
||||||
math sequences sets sorting splitting namespaces linked-assocs
|
|
||||||
combinators.short-circuit compiler.utilities
|
|
||||||
compiler.cfg.linear-scan.allocation.state
|
|
||||||
compiler.cfg.linear-scan.allocation.splitting
|
compiler.cfg.linear-scan.allocation.splitting
|
||||||
compiler.cfg.linear-scan.live-intervals ;
|
compiler.cfg.linear-scan.allocation.state
|
||||||
|
compiler.cfg.linear-scan.live-intervals compiler.utilities fry
|
||||||
|
kernel linked-assocs locals math namespaces sequences ;
|
||||||
IN: compiler.cfg.linear-scan.allocation.spilling
|
IN: compiler.cfg.linear-scan.allocation.spilling
|
||||||
|
|
||||||
ERROR: bad-live-ranges interval ;
|
ERROR: bad-live-ranges interval ;
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
! 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 arrays assocs binary-search combinators
|
USING: accessors binary-search combinators
|
||||||
combinators.short-circuit fry hints kernel locals
|
|
||||||
math math.order sequences sets sorting splitting namespaces
|
|
||||||
compiler.cfg.linear-scan.allocation.state
|
compiler.cfg.linear-scan.allocation.state
|
||||||
compiler.cfg.linear-scan.live-intervals ;
|
compiler.cfg.linear-scan.live-intervals fry hints kernel locals
|
||||||
|
math math.order namespaces sequences ;
|
||||||
IN: compiler.cfg.linear-scan.allocation.splitting
|
IN: compiler.cfg.linear-scan.allocation.splitting
|
||||||
|
|
||||||
: split-range ( live-range n -- before after )
|
: split-range ( live-range n -- before after )
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
! 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: arrays accessors assocs combinators cpu.architecture fry
|
USING: accessors arrays assocs combinators compiler.cfg
|
||||||
heaps kernel math math.order namespaces layouts sequences vectors
|
|
||||||
linked-assocs compiler.cfg compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions
|
compiler.cfg.instructions
|
||||||
compiler.cfg.linear-scan.live-intervals ;
|
compiler.cfg.linear-scan.live-intervals compiler.cfg.registers
|
||||||
|
cpu.architecture fry heaps kernel layouts linked-assocs math
|
||||||
|
math.order namespaces sequences ;
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
IN: compiler.cfg.linear-scan.allocation.state
|
IN: compiler.cfg.linear-scan.allocation.state
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,13 @@
|
||||||
! 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 kernel math assocs namespaces sequences heaps
|
USING: accessors assocs combinators compiler.cfg
|
||||||
fry make combinators combinators.short-circuit sets locals arrays
|
|
||||||
cpu.architecture layouts
|
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.def-use
|
|
||||||
compiler.cfg.liveness
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions
|
compiler.cfg.instructions
|
||||||
compiler.cfg.linearization
|
|
||||||
compiler.cfg.ssa.destruction.leaders
|
|
||||||
compiler.cfg.renaming.functor
|
|
||||||
compiler.cfg.linear-scan.allocation
|
|
||||||
compiler.cfg.linear-scan.allocation.state
|
compiler.cfg.linear-scan.allocation.state
|
||||||
compiler.cfg.linear-scan.live-intervals ;
|
compiler.cfg.linear-scan.live-intervals
|
||||||
|
compiler.cfg.linearization compiler.cfg.liveness
|
||||||
|
compiler.cfg.registers compiler.cfg.renaming.functor
|
||||||
|
compiler.cfg.ssa.destruction.leaders heaps kernel locals make
|
||||||
|
math namespaces sequences ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.linear-scan.assignment
|
IN: compiler.cfg.linear-scan.assignment
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
! 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: accessors kernel sequences sets arrays math strings fry
|
USING: accessors arrays assocs
|
||||||
namespaces prettyprint compiler.cfg.linear-scan.live-intervals
|
compiler.cfg.linear-scan.allocation
|
||||||
compiler.cfg.linear-scan.allocation compiler.cfg assocs ;
|
compiler.cfg.linear-scan.live-intervals fry kernel math
|
||||||
FROM: namespaces => set ;
|
namespaces prettyprint sequences strings ;
|
||||||
IN: compiler.cfg.linear-scan.debugger
|
IN: compiler.cfg.linear-scan.debugger
|
||||||
|
|
||||||
: check-linear-scan ( live-intervals machine-registers -- )
|
: check-linear-scan ( live-intervals machine-registers -- )
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
! 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: kernel accessors assocs sequences namespaces make locals
|
USING: accessors assocs compiler.cfg.linear-scan.allocation
|
||||||
cpu.architecture
|
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.rpo
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.linear-scan.numbering
|
|
||||||
compiler.cfg.linear-scan.live-intervals
|
|
||||||
compiler.cfg.linear-scan.allocation
|
|
||||||
compiler.cfg.linear-scan.allocation.state
|
|
||||||
compiler.cfg.linear-scan.assignment
|
compiler.cfg.linear-scan.assignment
|
||||||
compiler.cfg.linear-scan.resolve ;
|
compiler.cfg.linear-scan.live-intervals
|
||||||
FROM: assocs => change-at ;
|
compiler.cfg.linear-scan.numbering
|
||||||
|
compiler.cfg.linear-scan.resolve cpu.architecture kernel locals
|
||||||
|
sequences ;
|
||||||
IN: compiler.cfg.linear-scan
|
IN: compiler.cfg.linear-scan
|
||||||
|
|
||||||
! References:
|
! References:
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
! 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: namespaces kernel assocs accessors locals sequences math
|
USING: accessors assocs binary-search combinators
|
||||||
math.order fry combinators binary-search
|
compiler.cfg.def-use compiler.cfg.instructions
|
||||||
compiler.cfg.instructions
|
compiler.cfg.linearization compiler.cfg.liveness
|
||||||
compiler.cfg.registers
|
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
|
||||||
compiler.cfg.def-use
|
cpu.architecture fry kernel locals math math.order namespaces
|
||||||
compiler.cfg.liveness
|
sequences ;
|
||||||
compiler.cfg.linearization
|
|
||||||
compiler.cfg.ssa.destruction.leaders
|
|
||||||
compiler.cfg
|
|
||||||
cpu.architecture ;
|
|
||||||
IN: compiler.cfg.linear-scan.live-intervals
|
IN: compiler.cfg.linear-scan.live-intervals
|
||||||
|
|
||||||
TUPLE: live-range from to ;
|
TUPLE: live-range from to ;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! 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: kernel accessors math sequences grouping namespaces
|
USING: accessors compiler.cfg.linearization grouping kernel math
|
||||||
compiler.cfg.linearization ;
|
namespaces sequences ;
|
||||||
IN: compiler.cfg.linear-scan.numbering
|
IN: compiler.cfg.linear-scan.numbering
|
||||||
|
|
||||||
: number-instruction ( n insn -- n' )
|
: number-instruction ( n insn -- n' )
|
||||||
|
|
|
@ -1,20 +1,12 @@
|
||||||
! Copyright (C) 2009, 2011 Slava Pestov.
|
! Copyright (C) 2009, 2011 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
|
USING: accessors arrays assocs combinators
|
||||||
combinators.short-circuit fry kernel locals namespaces
|
combinators.short-circuit compiler.cfg compiler.cfg.instructions
|
||||||
make math sequences hashtables
|
compiler.cfg.linear-scan.allocation.state
|
||||||
cpu.architecture
|
compiler.cfg.linear-scan.assignment compiler.cfg.parallel-copy
|
||||||
compiler.cfg
|
compiler.cfg.predecessors compiler.cfg.registers
|
||||||
compiler.cfg.rpo
|
compiler.cfg.rpo compiler.cfg.utilities cpu.architecture fry
|
||||||
compiler.cfg.liveness
|
kernel locals make namespaces sequences ;
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.predecessors
|
|
||||||
compiler.cfg.parallel-copy
|
|
||||||
compiler.cfg.ssa.destruction
|
|
||||||
compiler.cfg.linear-scan.assignment
|
|
||||||
compiler.cfg.linear-scan.allocation.state ;
|
|
||||||
IN: compiler.cfg.linear-scan.resolve
|
IN: compiler.cfg.linear-scan.resolve
|
||||||
|
|
||||||
TUPLE: location
|
TUPLE: location
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
! 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 arrays assocs deques dlists hashtables kernel
|
USING: accessors assocs combinators combinators.short-circuit
|
||||||
make sorting namespaces sequences combinators
|
compiler.cfg.loop-detection compiler.cfg.predecessors
|
||||||
combinators.short-circuit fry math compiler.cfg.rpo
|
compiler.cfg.rpo compiler.cfg.utilities deques dlists fry kernel
|
||||||
compiler.cfg.utilities compiler.cfg.loop-detection
|
make math namespaces sequences sets sorting ;
|
||||||
compiler.cfg.predecessors sets hash-sets ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.linearization
|
IN: compiler.cfg.linearization
|
||||||
|
|
||||||
|
|
|
@ -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: arrays kernel accessors assocs fry locals combinators
|
USING: accessors assocs combinators compiler.cfg.def-use
|
||||||
deques dlists namespaces sequences sets compiler.cfg
|
compiler.cfg.instructions compiler.cfg.predecessors
|
||||||
compiler.cfg.def-use compiler.cfg.instructions
|
compiler.cfg.registers compiler.cfg.rpo
|
||||||
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
|
compiler.cfg.ssa.destruction.leaders compiler.cfg.utilities
|
||||||
compiler.cfg.utilities compiler.cfg.predecessors
|
cpu.architecture deques dlists fry kernel locals namespaces
|
||||||
compiler.cfg.rpo cpu.architecture ;
|
sequences sets ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.liveness
|
IN: compiler.cfg.liveness
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! 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: accessors assocs combinators deques dlists fry kernel
|
USING: accessors assocs compiler.cfg compiler.cfg.predecessors
|
||||||
namespaces sequences sets compiler.cfg compiler.cfg.predecessors ;
|
deques dlists fry kernel namespaces sequences sets ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.loop-detection
|
IN: compiler.cfg.loop-detection
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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 cpu.architecture compiler.cfg.registers
|
USING: assocs compiler.cfg.instructions compiler.cfg.registers
|
||||||
compiler.cfg.instructions compiler.cfg.ssa.destruction.leaders
|
compiler.cfg.ssa.destruction.leaders cpu.architecture deques
|
||||||
deques dlists fry kernel locals namespaces sequences hashtables ;
|
dlists fry kernel locals namespaces sequences ;
|
||||||
FROM: sets => conjoin ;
|
FROM: sets => conjoin ;
|
||||||
IN: compiler.cfg.parallel-copy
|
IN: compiler.cfg.parallel-copy
|
||||||
|
|
||||||
|
|
|
@ -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: kernel accessors fry sequences assocs compiler.cfg.rpo
|
USING: accessors assocs compiler.cfg.rpo compiler.cfg.utilities
|
||||||
compiler.cfg.instructions compiler.cfg.utilities ;
|
fry kernel sequences ;
|
||||||
IN: compiler.cfg.predecessors
|
IN: compiler.cfg.predecessors
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! 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: accessors namespaces kernel math parser assocs sequences ;
|
USING: assocs kernel math namespaces parser sequences ;
|
||||||
IN: compiler.cfg.registers
|
IN: compiler.cfg.registers
|
||||||
|
|
||||||
! Virtual registers, used by CFG and machine IRs, are just integers
|
! Virtual registers, used by CFG and machine IRs, are just integers
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
! Copyright (C) 2009, 2011 Slava Pestov.
|
! Copyright (C) 2009, 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs fry functors generic.parser
|
USING: accessors arrays assocs compiler.cfg.def-use
|
||||||
kernel lexer namespaces parser sequences slots words sets
|
compiler.cfg.instructions compiler.cfg.instructions.syntax fry
|
||||||
compiler.cfg.def-use compiler.cfg.instructions
|
functors generic.parser kernel lexer namespaces parser sequences
|
||||||
compiler.cfg.instructions.syntax ;
|
sets slots words ;
|
||||||
IN: compiler.cfg.renaming.functor
|
IN: compiler.cfg.renaming.functor
|
||||||
|
|
||||||
! Like compiler.cfg.def-use, but for changing operands
|
! Like compiler.cfg.def-use, but for changing operands
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
! 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: accessors assocs kernel namespaces sequences
|
USING: assocs compiler.cfg.registers
|
||||||
compiler.cfg.instructions compiler.cfg.registers
|
compiler.cfg.renaming.functor kernel namespaces ;
|
||||||
compiler.cfg.renaming.functor ;
|
|
||||||
IN: compiler.cfg.renaming
|
IN: compiler.cfg.renaming
|
||||||
|
|
||||||
SYMBOL: renamings
|
SYMBOL: renamings
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors byte-arrays combinators
|
USING: accessors byte-arrays combinators
|
||||||
combinators.short-circuit kernel layouts locals make math
|
combinators.short-circuit compiler.cfg.instructions
|
||||||
namespaces sequences cpu.architecture compiler.cfg.registers
|
compiler.cfg.registers compiler.cfg.representations.rewrite
|
||||||
compiler.cfg.instructions
|
compiler.cfg.representations.selection cpu.architecture kernel
|
||||||
compiler.cfg.representations.rewrite
|
layouts locals make math namespaces sequences ;
|
||||||
compiler.cfg.representations.selection ;
|
|
||||||
IN: compiler.cfg.representations.peephole
|
IN: compiler.cfg.representations.peephole
|
||||||
|
|
||||||
! Representation selection performs some peephole optimizations
|
! Representation selection performs some peephole optimizations
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
! 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: kernel accessors sequences arrays fry namespaces generic
|
USING: accessors arrays combinators compiler.cfg.def-use
|
||||||
words sets combinators generalizations sequences.generalizations
|
compiler.cfg.instructions compiler.units cpu.architecture fry
|
||||||
cpu.architecture compiler.units compiler.cfg.utilities
|
generic kernel namespaces sequences sequences.generalizations
|
||||||
compiler.cfg compiler.cfg.rpo compiler.cfg.instructions
|
sets words ;
|
||||||
compiler.cfg.def-use ;
|
|
||||||
FROM: compiler.cfg.instructions.syntax => insn-def-slots
|
FROM: compiler.cfg.instructions.syntax => insn-def-slots
|
||||||
insn-use-slots insn-temp-slots scalar-rep ;
|
insn-use-slots insn-temp-slots scalar-rep ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
|
|
|
@ -2,15 +2,14 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING:
|
USING:
|
||||||
compiler.cfg
|
compiler.cfg
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.predecessors
|
|
||||||
compiler.cfg.loop-detection
|
compiler.cfg.loop-detection
|
||||||
compiler.cfg.representations.rewrite
|
compiler.cfg.predecessors
|
||||||
compiler.cfg.representations.peephole
|
compiler.cfg.registers
|
||||||
compiler.cfg.representations.selection
|
|
||||||
compiler.cfg.representations.coalescing
|
compiler.cfg.representations.coalescing
|
||||||
compiler.cfg.utilities
|
compiler.cfg.representations.peephole
|
||||||
kernel ;
|
compiler.cfg.representations.rewrite
|
||||||
|
compiler.cfg.representations.selection
|
||||||
|
compiler.cfg.utilities ;
|
||||||
IN: compiler.cfg.representations
|
IN: compiler.cfg.representations
|
||||||
|
|
||||||
! Virtual register representation selection. This is where
|
! Virtual register representation selection. This is where
|
||||||
|
|
|
@ -1,16 +1,10 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 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
|
USING: arrays assocs compiler.cfg.instructions
|
||||||
combinators.short-circuit layouts kernel locals make math
|
compiler.cfg.registers compiler.cfg.renaming.functor
|
||||||
namespaces sequences
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.renaming.functor
|
|
||||||
compiler.cfg.representations.conversion
|
compiler.cfg.representations.conversion
|
||||||
compiler.cfg.representations.preferred
|
compiler.cfg.representations.preferred compiler.cfg.rpo kernel
|
||||||
compiler.cfg.rpo
|
locals make namespaces sequences ;
|
||||||
compiler.cfg.utilities
|
|
||||||
cpu.architecture ;
|
|
||||||
IN: compiler.cfg.representations.rewrite
|
IN: compiler.cfg.representations.rewrite
|
||||||
|
|
||||||
! Insert conversions. This introduces new temporaries, so we need
|
! Insert conversions. This introduces new temporaries, so we need
|
||||||
|
|
|
@ -1,18 +1,13 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 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 byte-arrays combinators
|
USING: accessors arrays assocs byte-arrays combinators
|
||||||
disjoint-sets fry kernel locals math math.functions
|
compiler.cfg compiler.cfg.instructions
|
||||||
namespaces sequences sets
|
compiler.cfg.loop-detection compiler.cfg.registers
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.loop-detection
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.representations.preferred
|
|
||||||
compiler.cfg.representations.coalescing
|
compiler.cfg.representations.coalescing
|
||||||
compiler.cfg.rpo
|
compiler.cfg.representations.preferred compiler.cfg.rpo
|
||||||
compiler.cfg.utilities
|
compiler.cfg.utilities compiler.utilities cpu.architecture
|
||||||
compiler.utilities
|
disjoint-sets fry kernel locals math math.functions namespaces
|
||||||
cpu.architecture ;
|
sequences sets ;
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.representations.selection
|
IN: compiler.cfg.representations.selection
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
! 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: kernel accessors namespaces make math sequences sets
|
USING: accessors compiler.cfg fry kernel make sequences sets ;
|
||||||
assocs fry compiler.cfg compiler.cfg.instructions ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.rpo
|
IN: compiler.cfg.rpo
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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 compiler.cfg.instructions compiler.cfg.registers
|
USING: accessors combinators.short-circuit
|
||||||
compiler.cfg.rpo cpu.architecture kernel sequences vectors
|
compiler.cfg.instructions compiler.cfg.registers
|
||||||
combinators.short-circuit ;
|
compiler.cfg.rpo cpu.architecture kernel sequences ;
|
||||||
IN: compiler.cfg.save-contexts
|
IN: compiler.cfg.save-contexts
|
||||||
|
|
||||||
! Insert context saves.
|
! Insert context saves.
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
! Copyright (C) 2009, 2010 Daniel Ehrenberg.
|
! Copyright (C) 2009, 2010 Daniel Ehrenberg.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs compiler.cfg.def-use compiler.cfg.dependence
|
USING: accessors arrays assocs compiler.cfg.dependence
|
||||||
compiler.cfg.instructions compiler.cfg.linear-scan.numbering compiler.cfg.rpo
|
compiler.cfg.instructions compiler.cfg.linear-scan.numbering
|
||||||
cpu.architecture fry kernel make math namespaces sequences sets splitting ;
|
compiler.cfg.rpo fry kernel make math namespaces sequences
|
||||||
|
splitting ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.scheduling
|
IN: compiler.cfg.scheduling
|
||||||
|
|
||||||
|
|
|
@ -1,16 +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: namespaces kernel accessors sequences fry assocs
|
USING: accessors assocs combinators compiler.cfg
|
||||||
sets math combinators deques dlists
|
compiler.cfg.def-use compiler.cfg.dominance
|
||||||
compiler.cfg
|
compiler.cfg.instructions compiler.cfg.registers
|
||||||
compiler.cfg.rpo
|
compiler.cfg.renaming.functor compiler.cfg.rpo
|
||||||
compiler.cfg.def-use
|
compiler.cfg.ssa.construction.tdmsc deques dlists fry kernel
|
||||||
compiler.cfg.registers
|
math namespaces sequences sets ;
|
||||||
compiler.cfg.dominance
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.renaming
|
|
||||||
compiler.cfg.renaming.functor
|
|
||||||
compiler.cfg.ssa.construction.tdmsc ;
|
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.ssa.construction
|
IN: compiler.cfg.ssa.construction
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: accessors arrays assocs bit-arrays bit-sets combinators compiler.cfg
|
USING: accessors arrays assocs bit-sets compiler.cfg
|
||||||
compiler.cfg.dominance compiler.cfg.rpo compiler.cfg.utilities fry
|
compiler.cfg.dominance compiler.cfg.rpo compiler.cfg.utilities
|
||||||
hashtables hints kernel locals math namespaces sequences sets ;
|
fry hashtables kernel locals math namespaces sequences sets ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
IN: compiler.cfg.ssa.construction.tdmsc
|
IN: compiler.cfg.ssa.construction.tdmsc
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
! Copyright (C) 2009, 2011 Slava Pestov.
|
! Copyright (C) 2009, 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs kernel locals fry make namespaces
|
USING: accessors assocs compiler.cfg compiler.cfg.instructions
|
||||||
sequences cpu.architecture
|
compiler.cfg.predecessors compiler.cfg.registers
|
||||||
compiler.cfg
|
compiler.cfg.rpo compiler.cfg.utilities fry kernel locals make
|
||||||
compiler.cfg.rpo
|
namespaces sequences ;
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.predecessors
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions ;
|
|
||||||
FROM: assocs => change-at ;
|
FROM: assocs => change-at ;
|
||||||
IN: compiler.cfg.ssa.cssa
|
IN: compiler.cfg.ssa.cssa
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,13 @@
|
||||||
! Copyright (C) 2009, 2011 Slava Pestov.
|
! Copyright (C) 2009, 2011 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 fry locals kernel
|
USING: accessors arrays assocs combinators compiler.cfg.def-use
|
||||||
make namespaces sequences sequences.deep sets vectors
|
compiler.cfg.dominance compiler.cfg.instructions
|
||||||
cpu.architecture
|
compiler.cfg.liveness compiler.cfg.parallel-copy
|
||||||
compiler.cfg.rpo
|
compiler.cfg.registers compiler.cfg.rpo compiler.cfg.ssa.cssa
|
||||||
compiler.cfg.def-use
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.dominance
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.liveness
|
|
||||||
compiler.cfg.ssa.cssa
|
|
||||||
compiler.cfg.ssa.destruction.leaders
|
compiler.cfg.ssa.destruction.leaders
|
||||||
compiler.cfg.ssa.interference
|
compiler.cfg.ssa.interference
|
||||||
compiler.cfg.ssa.interference.live-ranges
|
compiler.cfg.ssa.interference.live-ranges cpu.architecture
|
||||||
compiler.cfg.parallel-copy
|
kernel locals make namespaces sequences sets ;
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.utilities ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.ssa.destruction
|
IN: compiler.cfg.ssa.destruction
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! 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 arrays assocs combinators
|
USING: accessors arrays combinators combinators.short-circuit
|
||||||
combinators.short-circuit fry kernel math math.order sorting
|
compiler.cfg.dominance compiler.cfg.ssa.interference.live-ranges
|
||||||
sorting.slots namespaces sequences locals compiler.cfg.def-use
|
kernel locals math math.order sequences sorting.slots ;
|
||||||
compiler.cfg.dominance compiler.cfg.ssa.interference.live-ranges ;
|
|
||||||
IN: compiler.cfg.ssa.interference
|
IN: compiler.cfg.ssa.interference
|
||||||
|
|
||||||
! Interference testing using SSA properties.
|
! Interference testing using SSA properties.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
! 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 fry kernel namespaces sequences math
|
USING: assocs compiler.cfg compiler.cfg.def-use
|
||||||
arrays compiler.cfg.def-use compiler.cfg.instructions
|
compiler.cfg.dominance compiler.cfg.instructions
|
||||||
compiler.cfg.liveness compiler.cfg.rpo
|
compiler.cfg.liveness compiler.cfg.rpo kernel math namespaces
|
||||||
compiler.cfg.dominance compiler.cfg ;
|
sequences ;
|
||||||
IN: compiler.cfg.ssa.interference.live-ranges
|
IN: compiler.cfg.ssa.interference.live-ranges
|
||||||
|
|
||||||
! Live ranges for interference testing
|
! Live ranges for interference testing
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
! 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: math math.order namespaces accessors kernel layouts
|
USING: accessors kernel math namespaces ;
|
||||||
combinators assocs sequences cpu.architecture
|
|
||||||
words compiler.cfg.instructions ;
|
|
||||||
IN: compiler.cfg.stack-frame
|
IN: compiler.cfg.stack-frame
|
||||||
|
|
||||||
TUPLE: stack-frame
|
TUPLE: stack-frame
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
! 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: namespaces assocs kernel fry accessors sequences make math locals
|
USING: accessors assocs compiler.cfg compiler.cfg.instructions
|
||||||
combinators compiler.cfg compiler.cfg.hats compiler.cfg.instructions
|
compiler.cfg.predecessors compiler.cfg.rpo
|
||||||
compiler.cfg.utilities compiler.cfg.rpo compiler.cfg.stacks.local
|
|
||||||
compiler.cfg.stacks.global compiler.cfg.stacks.height
|
compiler.cfg.stacks.global compiler.cfg.stacks.height
|
||||||
compiler.cfg.predecessors ;
|
compiler.cfg.stacks.local compiler.cfg.utilities fry kernel
|
||||||
|
locals make math sequences ;
|
||||||
IN: compiler.cfg.stacks.finalize
|
IN: compiler.cfg.stacks.finalize
|
||||||
|
|
||||||
! This pass inserts peeks and replaces.
|
! This pass inserts peeks and replaces.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! 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 kernel combinators compiler.cfg.dataflow-analysis
|
USING: assocs combinators compiler.cfg.dataflow-analysis
|
||||||
compiler.cfg.stacks.local ;
|
compiler.cfg.stacks.local kernel ;
|
||||||
IN: compiler.cfg.stacks.global
|
IN: compiler.cfg.stacks.global
|
||||||
|
|
||||||
: transfer-peeked-locs ( assoc bb -- assoc' )
|
: transfer-peeked-locs ( assoc bb -- assoc' )
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! 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: accessors assocs fry kernel math
|
USING: accessors assocs compiler.cfg.registers fry kernel math
|
||||||
namespaces compiler.cfg.registers ;
|
namespaces ;
|
||||||
IN: compiler.cfg.stacks.height
|
IN: compiler.cfg.stacks.height
|
||||||
|
|
||||||
! Global stack height tracking done while constructing CFG.
|
! Global stack height tracking done while constructing CFG.
|
||||||
|
|
|
@ -1,13 +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: accessors assocs kernel math math.order namespaces sets make
|
USING: accessors assocs combinators compiler.cfg
|
||||||
sequences combinators fry
|
compiler.cfg.instructions compiler.cfg.parallel-copy
|
||||||
compiler.cfg
|
compiler.cfg.registers compiler.cfg.stacks.height kernel make
|
||||||
compiler.cfg.hats
|
math math.order namespaces sequences sets ;
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.stacks.height
|
|
||||||
compiler.cfg.parallel-copy ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.cfg.stacks.local
|
IN: compiler.cfg.stacks.local
|
||||||
|
|
||||||
|
|
|
@ -1,10 +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: math sequences kernel namespaces accessors biassocs compiler.cfg
|
USING: accessors biassocs compiler.cfg compiler.cfg.registers
|
||||||
compiler.cfg.instructions compiler.cfg.registers compiler.cfg.hats
|
compiler.cfg.stacks.finalize compiler.cfg.stacks.global
|
||||||
compiler.cfg.predecessors compiler.cfg.stacks.local
|
compiler.cfg.stacks.height compiler.cfg.stacks.local kernel math
|
||||||
compiler.cfg.stacks.height compiler.cfg.stacks.global
|
namespaces sequences ;
|
||||||
compiler.cfg.stacks.finalize ;
|
|
||||||
IN: compiler.cfg.stacks
|
IN: compiler.cfg.stacks
|
||||||
|
|
||||||
: begin-stack-analysis ( -- )
|
: begin-stack-analysis ( -- )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: accessors arrays assocs classes.tuple compiler.cfg.dataflow-analysis
|
USING: accessors arrays compiler.cfg.dataflow-analysis
|
||||||
compiler.cfg.instructions compiler.cfg.registers fry kernel math math.order
|
compiler.cfg.instructions compiler.cfg.registers fry kernel math
|
||||||
sequences sets ;
|
math.order sequences sets ;
|
||||||
IN: compiler.cfg.stacks.vacant
|
IN: compiler.cfg.stacks.vacant
|
||||||
|
|
||||||
! Utils
|
! Utils
|
||||||
|
|
|
@ -1,13 +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: accessors combinators.short-circuit kernel math
|
USING: accessors combinators combinators.short-circuit
|
||||||
namespaces sequences fry combinators
|
compiler.cfg compiler.cfg.instructions compiler.cfg.rpo
|
||||||
compiler.utilities
|
compiler.cfg.utilities compiler.utilities fry kernel math
|
||||||
compiler.cfg
|
namespaces sequences ;
|
||||||
compiler.cfg.rpo
|
|
||||||
compiler.cfg.hats
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.utilities ;
|
|
||||||
IN: compiler.cfg.tco
|
IN: compiler.cfg.tco
|
||||||
|
|
||||||
! Tail call optimization.
|
! Tail call optimization.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! 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: kernel accessors sequences math combinators
|
USING: accessors combinators.short-circuit compiler.cfg
|
||||||
combinators.short-circuit vectors compiler.cfg
|
|
||||||
compiler.cfg.instructions compiler.cfg.rpo
|
compiler.cfg.instructions compiler.cfg.rpo
|
||||||
compiler.cfg.utilities ;
|
compiler.cfg.utilities kernel sequences vectors ;
|
||||||
IN: compiler.cfg.useless-conditionals
|
IN: compiler.cfg.useless-conditionals
|
||||||
|
|
||||||
: delete-conditional? ( bb -- ? )
|
: delete-conditional? ( bb -- ? )
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! 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 assocs combinators combinators.short-circuit
|
USING: accessors assocs combinators.short-circuit compiler.cfg
|
||||||
cpu.architecture kernel layouts locals make math namespaces sequences
|
compiler.cfg.instructions compiler.cfg.rpo cpu.architecture fry
|
||||||
sets vectors fry arrays compiler.cfg compiler.cfg.instructions
|
kernel locals make math namespaces sequences sets ;
|
||||||
compiler.cfg.rpo compiler.utilities ;
|
|
||||||
IN: compiler.cfg.utilities
|
IN: compiler.cfg.utilities
|
||||||
|
|
||||||
: block>cfg ( bb -- cfg )
|
: block>cfg ( bb -- cfg )
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators combinators.short-circuit fry
|
USING: accessors combinators combinators.short-circuit
|
||||||
kernel make math sequences
|
compiler.cfg.hats compiler.cfg.instructions
|
||||||
cpu.architecture
|
compiler.cfg.utilities compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.hats
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.value-numbering.math
|
compiler.cfg.value-numbering.math
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.rewrite cpu.architecture fry kernel
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
make math sequences ;
|
||||||
IN: compiler.cfg.value-numbering.alien
|
IN: compiler.cfg.value-numbering.alien
|
||||||
|
|
||||||
M: ##box-displaced-alien rewrite
|
M: ##box-displaced-alien rewrite
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators kernel math math.order namespaces
|
USING: accessors combinators combinators.short-circuit
|
||||||
sequences vectors combinators.short-circuit
|
compiler.cfg compiler.cfg.comparisons compiler.cfg.instructions
|
||||||
cpu.architecture
|
compiler.cfg.registers compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.value-numbering.math
|
compiler.cfg.value-numbering.math
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.rewrite cpu.architecture kernel
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
math math.order namespaces sequences vectors ;
|
||||||
IN: compiler.cfg.value-numbering.comparisons
|
IN: compiler.cfg.value-numbering.comparisons
|
||||||
|
|
||||||
! Optimizations performed here:
|
! Optimizations performed here:
|
||||||
|
|
|
@ -1,11 +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 classes classes.algebra combinators fry
|
USING: accessors arrays classes.algebra combinators
|
||||||
generic.parser kernel math namespaces quotations sequences slots
|
compiler.cfg.instructions compiler.cfg.instructions.syntax
|
||||||
words make sets
|
compiler.cfg.value-numbering.graph generic.parser kernel make
|
||||||
compiler.cfg.instructions
|
math namespaces quotations sequences sets slots words ;
|
||||||
compiler.cfg.instructions.syntax
|
|
||||||
compiler.cfg.value-numbering.graph ;
|
|
||||||
FROM: sequences.private => set-array-nth ;
|
FROM: sequences.private => set-array-nth ;
|
||||||
IN: compiler.cfg.value-numbering.expressions
|
IN: compiler.cfg.value-numbering.expressions
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors kernel layouts math math.bitwise
|
USING: accessors compiler.cfg.instructions
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
compiler.cfg.value-numbering.rewrite kernel layouts math
|
||||||
|
math.bitwise ;
|
||||||
IN: compiler.cfg.value-numbering.folding
|
IN: compiler.cfg.value-numbering.folding
|
||||||
|
|
||||||
: binary-constant-fold? ( insn -- ? )
|
: binary-constant-fold? ( insn -- ? )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! 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 kernel math namespaces assocs ;
|
USING: assocs kernel namespaces ;
|
||||||
IN: compiler.cfg.value-numbering.graph
|
IN: compiler.cfg.value-numbering.graph
|
||||||
|
|
||||||
SYMBOL: input-expr-counter
|
SYMBOL: input-expr-counter
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators combinators.short-circuit
|
USING: accessors combinators combinators.short-circuit
|
||||||
cpu.architecture fry kernel layouts locals make math sequences
|
compiler.cfg.instructions compiler.cfg.registers
|
||||||
compiler.cfg.instructions
|
compiler.cfg.utilities compiler.cfg.value-numbering.folding
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.value-numbering.folding
|
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
compiler.cfg.value-numbering.rewrite cpu.architecture fry kernel
|
||||||
|
layouts locals make math ;
|
||||||
IN: compiler.cfg.value-numbering.math
|
IN: compiler.cfg.value-numbering.math
|
||||||
|
|
||||||
: f-insn? ( insn -- ? )
|
: f-insn? ( insn -- ? )
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors cpu.architecture kernel
|
USING: accessors compiler.cfg.instructions
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
compiler.cfg.value-numbering.rewrite cpu.architecture kernel ;
|
||||||
IN: compiler.cfg.value-numbering.misc
|
IN: compiler.cfg.value-numbering.misc
|
||||||
|
|
||||||
M: ##replace rewrite
|
M: ##replace rewrite
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators combinators.short-circuit kernel
|
USING: accessors combinators combinators.short-circuit
|
||||||
layouts math cpu.architecture
|
compiler.cfg.instructions compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.instructions
|
cpu.architecture kernel layouts math ;
|
||||||
compiler.cfg.value-numbering.graph ;
|
|
||||||
IN: compiler.cfg.value-numbering.rewrite
|
IN: compiler.cfg.value-numbering.rewrite
|
||||||
|
|
||||||
! Outputs f to mean no change
|
! Outputs f to mean no change
|
||||||
|
|
|
@ -1,18 +1,12 @@
|
||||||
! 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 combinators combinators.short-circuit arrays
|
USING: accessors alien.c-types combinators
|
||||||
fry kernel layouts math namespaces sequences cpu.architecture
|
combinators.short-circuit compiler.cfg.instructions
|
||||||
math.bitwise math.order classes generalizations
|
compiler.cfg.utilities compiler.cfg.value-numbering.graph
|
||||||
locals make alien.c-types io.binary grouping
|
|
||||||
math.vectors.simd.intrinsics
|
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.value-numbering.math
|
compiler.cfg.value-numbering.math
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.rewrite cpu.architecture
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
generalizations grouping io.binary kernel locals make math
|
||||||
|
sequences ;
|
||||||
IN: compiler.cfg.value-numbering.simd
|
IN: compiler.cfg.value-numbering.simd
|
||||||
|
|
||||||
! Some lame constant folding for SIMD intrinsics. Eventually this
|
! Some lame constant folding for SIMD intrinsics. Eventually this
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators.short-circuit cpu.architecture fry
|
USING: accessors compiler.cfg.instructions
|
||||||
kernel math
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.value-numbering.graph
|
compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.value-numbering.rewrite ;
|
compiler.cfg.value-numbering.rewrite cpu.architecture fry kernel
|
||||||
|
math ;
|
||||||
IN: compiler.cfg.value-numbering.slots
|
IN: compiler.cfg.value-numbering.slots
|
||||||
|
|
||||||
: simplify-slot-addressing? ( insn -- ? )
|
: simplify-slot-addressing? ( insn -- ? )
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
! 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
|
USING: accessors arrays assocs compiler.cfg compiler.cfg.def-use
|
||||||
compiler.cfg
|
compiler.cfg.instructions compiler.cfg.rpo
|
||||||
compiler.cfg.rpo
|
compiler.cfg.utilities kernel locals namespaces sequences
|
||||||
compiler.cfg.def-use
|
sequences.deep ;
|
||||||
compiler.cfg.utilities
|
|
||||||
compiler.cfg.instructions
|
USE: compiler.cfg.value-numbering.alien
|
||||||
compiler.cfg.value-numbering.alien
|
USE: compiler.cfg.value-numbering.comparisons
|
||||||
compiler.cfg.value-numbering.comparisons
|
USE: compiler.cfg.value-numbering.expressions
|
||||||
compiler.cfg.value-numbering.graph
|
USE: compiler.cfg.value-numbering.folding
|
||||||
compiler.cfg.value-numbering.math
|
USE: compiler.cfg.value-numbering.graph
|
||||||
compiler.cfg.value-numbering.rewrite
|
USE: compiler.cfg.value-numbering.math
|
||||||
compiler.cfg.value-numbering.slots
|
USE: compiler.cfg.value-numbering.misc
|
||||||
compiler.cfg.value-numbering.misc
|
USE: compiler.cfg.value-numbering.rewrite
|
||||||
compiler.cfg.value-numbering.expressions
|
USE: compiler.cfg.value-numbering.slots
|
||||||
cpu.architecture kernel locals namespaces sequences sequences.deep sets
|
|
||||||
sorting ;
|
|
||||||
IN: compiler.cfg.value-numbering
|
IN: compiler.cfg.value-numbering
|
||||||
|
|
||||||
GENERIC: process-instruction ( insn -- insn' )
|
GENERIC: process-instruction ( insn -- insn' )
|
||||||
|
|
|
@ -1,23 +1,13 @@
|
||||||
! Copyright (C) 2008, 2011 Slava Pestov.
|
! Copyright (C) 2008, 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: byte-arrays namespaces make math math.order math.parser
|
USING: accessors arrays assocs byte-arrays classes combinators
|
||||||
sequences accessors kernel layouts assocs words summary arrays
|
compiler.cfg compiler.cfg.comparisons compiler.cfg.instructions
|
||||||
combinators sets continuations.private fry
|
compiler.cfg.linearization compiler.cfg.stack-frame
|
||||||
cpu.architecture classes classes.struct locals slots parser
|
compiler.codegen.gc-maps compiler.codegen.labels
|
||||||
generic.parser strings quotations hashtables
|
compiler.codegen.relocation compiler.constants cpu.architecture
|
||||||
sequences.generalizations
|
fry generic.parser kernel layouts locals make math namespaces
|
||||||
compiler.constants
|
parser quotations sequences sequences.generalizations slots
|
||||||
compiler.cfg
|
words ;
|
||||||
compiler.cfg.linearization
|
|
||||||
compiler.cfg.instructions
|
|
||||||
compiler.cfg.comparisons
|
|
||||||
compiler.cfg.stack-frame
|
|
||||||
compiler.cfg.registers
|
|
||||||
compiler.cfg.builder
|
|
||||||
compiler.codegen.gc-maps
|
|
||||||
compiler.codegen.labels
|
|
||||||
compiler.codegen.relocation
|
|
||||||
compiler.utilities ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.codegen
|
IN: compiler.codegen
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
! Copyright (C) 2011 Slava Pestov.
|
! Copyright (C) 2011 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs bit-arrays classes.tuple combinators
|
USING: accessors arrays assocs bit-arrays classes.tuple
|
||||||
combinators.short-circuit compiler.cfg.instructions
|
combinators compiler.codegen.relocation cpu.architecture fry
|
||||||
compiler.codegen.relocation cpu.architecture fry kernel layouts
|
kernel layouts make math math.order namespaces sequences
|
||||||
make math math.order namespaces sequences sequences.generalizations ;
|
sequences.generalizations ;
|
||||||
IN: compiler.codegen.gc-maps
|
IN: compiler.codegen.gc-maps
|
||||||
|
|
||||||
SYMBOLS: return-addresses gc-maps ;
|
SYMBOLS: return-addresses gc-maps ;
|
||||||
|
|
|
@ -1,26 +1,14 @@
|
||||||
! Copyright (C) 2004, 2010 Slava Pestov.
|
! Copyright (C) 2004, 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors kernel namespaces arrays sequences io words fry
|
USING: accessors assocs classes.algebra combinators
|
||||||
continuations vocabs assocs definitions math graphs generic
|
combinators.short-circuit compiler.cfg compiler.cfg.builder
|
||||||
generic.single combinators macros make source-files.errors
|
compiler.cfg.finalization compiler.cfg.optimizer
|
||||||
combinators.short-circuit classes.algebra vocabs.loader
|
compiler.codegen compiler.crossref compiler.errors
|
||||||
sets
|
compiler.tree.builder compiler.tree.optimizer compiler.units
|
||||||
|
compiler.utilities continuations definitions fry generic
|
||||||
stack-checker stack-checker.dependencies stack-checker.inlining
|
generic.single io kernel macros make namespaces sequences sets
|
||||||
stack-checker.errors
|
stack-checker.dependencies stack-checker.errors
|
||||||
|
stack-checker.inlining vocabs.loader words ;
|
||||||
compiler.errors compiler.units compiler.utilities compiler.crossref
|
|
||||||
|
|
||||||
compiler.tree.builder
|
|
||||||
compiler.tree.optimizer
|
|
||||||
|
|
||||||
compiler.cfg
|
|
||||||
compiler.cfg.builder
|
|
||||||
compiler.cfg.builder.alien
|
|
||||||
compiler.cfg.optimizer
|
|
||||||
compiler.cfg.finalization
|
|
||||||
|
|
||||||
compiler.codegen ;
|
|
||||||
IN: compiler
|
IN: compiler
|
||||||
|
|
||||||
SYMBOL: compiled
|
SYMBOL: compiled
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! 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: math kernel layouts system strings words quotations byte-arrays
|
USING: alien arrays byte-arrays kernel layouts literals math
|
||||||
alien arrays literals sequences ;
|
quotations sequences strings words ;
|
||||||
IN: compiler.constants
|
IN: compiler.constants
|
||||||
|
|
||||||
! These constants must match vm/memory.h
|
! These constants must match vm/memory.h
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
! 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: arrays assocs classes.algebra compiler.units definitions
|
USING: assocs combinators fry graphs grouping kernel namespaces
|
||||||
graphs grouping kernel namespaces sequences words fry
|
sequences sets stack-checker.dependencies words ;
|
||||||
stack-checker.dependencies combinators sets ;
|
|
||||||
IN: compiler.crossref
|
IN: compiler.crossref
|
||||||
|
|
||||||
SYMBOL: compiled-crossref
|
SYMBOL: compiled-crossref
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2007, 2009 Slava Pestov.
|
! Copyright (C) 2007, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors source-files.errors kernel namespaces assocs fry
|
USING: accessors assocs command-line fry kernel namespaces
|
||||||
summary command-line ;
|
source-files.errors summary ;
|
||||||
IN: compiler.errors
|
IN: compiler.errors
|
||||||
|
|
||||||
SYMBOL: +compiler-error+
|
SYMBOL: +compiler-error+
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2010 Slava Pestov.
|
! Copyright (C) 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays compiler.units kernel stack-checker
|
USING: accessors arrays compiler.units kernel sequences
|
||||||
sequences vocabs words tools.test tools.test.private ;
|
stack-checker tools.test vocabs words ;
|
||||||
IN: compiler.test
|
IN: compiler.test
|
||||||
|
|
||||||
: decompile ( word -- )
|
: decompile ( word -- )
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
! 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: fry locals accessors quotations kernel sequences namespaces
|
USING: accessors combinators compiler.tree continuations hints
|
||||||
assocs words arrays vectors hints combinators continuations
|
kernel locals namespaces quotations sequences
|
||||||
effects compiler.tree
|
stack-checker.backend stack-checker.errors
|
||||||
stack-checker
|
stack-checker.recursive-state stack-checker.state
|
||||||
stack-checker.state
|
stack-checker.visitor vectors words ;
|
||||||
stack-checker.errors
|
|
||||||
stack-checker.visitor
|
|
||||||
stack-checker.backend
|
|
||||||
stack-checker.recursive-state ;
|
|
||||||
IN: compiler.tree.builder
|
IN: compiler.tree.builder
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
! Copyright (C) 2008 Slava Pestov.
|
! Copyright (C) 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: sequences kernel sets namespaces accessors assocs
|
USING: accessors arrays assocs columns combinators compiler.tree
|
||||||
arrays combinators continuations columns math vectors
|
compiler.tree.combinators compiler.tree.def-use
|
||||||
grouping stack-checker.branches
|
compiler.tree.recursive continuations grouping kernel math
|
||||||
compiler.tree
|
namespaces sequences sets vectors ;
|
||||||
compiler.tree.def-use
|
|
||||||
compiler.tree.recursive
|
|
||||||
compiler.tree.combinators ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.tree.checker
|
IN: compiler.tree.checker
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
! 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: kernel accessors sequences combinators fry
|
USING: accessors classes classes.algebra combinators
|
||||||
classes.algebra namespaces assocs words math math.private
|
compiler.tree compiler.tree.combinators
|
||||||
math.partial-dispatch math.intervals classes classes.tuple
|
compiler.tree.propagation.branches
|
||||||
classes.tuple.private layouts definitions stack-checker.dependencies
|
compiler.tree.propagation.info compiler.utilities fry kernel
|
||||||
stack-checker.branches
|
layouts math math.intervals math.partial-dispatch math.private
|
||||||
compiler.utilities
|
namespaces sequences stack-checker.branches
|
||||||
compiler.tree
|
stack-checker.dependencies words ;
|
||||||
compiler.tree.combinators
|
|
||||||
compiler.tree.propagation.info
|
|
||||||
compiler.tree.propagation.branches ;
|
|
||||||
IN: compiler.tree.cleanup
|
IN: compiler.tree.cleanup
|
||||||
|
|
||||||
GENERIC: delete-node ( node -- )
|
GENERIC: delete-node ( node -- )
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
! 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: assocs combinators combinators.short-circuit fry kernel
|
USING: accessors assocs combinators combinators.short-circuit
|
||||||
locals accessors sequences compiler.utilities arrays
|
compiler.tree compiler.utilities kernel locals namespaces
|
||||||
stack-checker.inlining namespaces compiler.tree math.order ;
|
sequences stack-checker.inlining ;
|
||||||
IN: compiler.tree.combinators
|
IN: compiler.tree.combinators
|
||||||
|
|
||||||
:: each-node ( ... nodes quot: ( ... node -- ... ) -- ... )
|
:: each-node ( ... nodes quot: ( ... node -- ... ) -- ... )
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! 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: math math.order math.intervals assocs combinators ;
|
USING: assocs combinators math math.intervals math.order ;
|
||||||
IN: compiler.tree.comparisons
|
IN: compiler.tree.comparisons
|
||||||
|
|
||||||
! Some utilities for working with comparison operations.
|
! Some utilities for working with comparison operations.
|
||||||
|
|
|
@ -1,9 +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: sequences namespaces kernel accessors assocs sets fry
|
USING: accessors assocs columns combinators compiler.tree
|
||||||
arrays combinators columns stack-checker.backend
|
compiler.tree.dead-code.liveness compiler.tree.dead-code.simple
|
||||||
stack-checker.branches compiler.tree compiler.tree.combinators
|
fry kernel namespaces sequences stack-checker.backend
|
||||||
compiler.tree.dead-code.liveness compiler.tree.dead-code.simple ;
|
stack-checker.branches ;
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.tree.dead-code.branches
|
IN: compiler.tree.dead-code.branches
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
! Copyright (C) 2008 Slava Pestov.
|
! Copyright (C) 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: fry accessors namespaces assocs deques search-deques
|
USING: accessors assocs compiler.tree compiler.tree.combinators
|
||||||
dlists kernel sequences compiler.utilities words sets
|
compiler.tree.def-use compiler.utilities deques dlists kernel
|
||||||
stack-checker.branches compiler.tree compiler.tree.def-use
|
namespaces sets stack-checker.branches ;
|
||||||
compiler.tree.combinators ;
|
|
||||||
FROM: namespaces => set ;
|
FROM: namespaces => set ;
|
||||||
IN: compiler.tree.dead-code.liveness
|
IN: compiler.tree.dead-code.liveness
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue