compiler.cfg.representations.preferred compiler.cfg.rpo
compiler.cfg.utilities cpu.architecture fry kernel locals math
namespaces sequences sets ;
-QUALIFIED: namespaces
IN: compiler.cfg.alias-analysis
! Local copy propagation
] [ vreg kill-computed-set-slot ] if ;
: init-alias-analysis ( -- )
- H{ } clone vregs>acs namespaces:set
- H{ } clone acs>vregs namespaces:set
- H{ } clone live-slots namespaces:set
- H{ } clone copies namespaces:set
- H{ } clone recent-stores namespaces:set
- HS{ } clone dead-stores namespaces:set
- 0 ac-counter namespaces:set ;
+ H{ } clone vregs>acs set
+ H{ } clone acs>vregs set
+ H{ } clone live-slots set
+ H{ } clone copies set
+ H{ } clone recent-stores set
+ HS{ } clone dead-stores set
+ 0 ac-counter set ;
GENERIC: insn-slot# ( insn -- slot#/f )
GENERIC: insn-object ( insn -- vreg )
copies get clear-assoc
dead-stores get clear-set
- next-ac heap-ac namespaces:set
+ next-ac heap-ac set
##vm-field set-new-ac
##alien-global set-new-ac ;
compiler.cfg.renaming compiler.cfg.rpo compiler.cfg.utilities
deques dlists fry kernel locals math namespaces sequences sets
vectors ;
-QUALIFIED: namespaces
IN: compiler.cfg.branch-splitting
: clone-instructions ( insns -- insns' )
[ worklist get push-front ] [ drop ] if ;
: init-worklist ( cfg -- )
- <dlist> worklist namespaces:set
- HS{ } clone visited namespaces:set
+ <dlist> worklist set
+ HS{ } clone visited set
entry>> add-to-worklist ;
: split-branches ( cfg -- )
compiler.cfg.instructions compiler.cfg.predecessors
compiler.cfg.renaming compiler.cfg.rpo compiler.cfg.utilities
fry grouping kernel namespaces sequences ;
-FROM: namespaces => set ;
IN: compiler.cfg.copy-prop
<PRIVATE
USING: accessors arrays assocs combinators compiler.cfg.def-use
compiler.cfg.instructions compiler.cfg.predecessors
compiler.cfg.rpo kernel namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.dce
! Maps vregs to sequences of vregs
compiler.cfg.instructions compiler.cfg.instructions.syntax
compiler.cfg.rpo compiler.units fry generic kernel namespaces
quotations sequences sequences.generalizations sets slots words ;
-FROM: namespaces => set ;
IN: compiler.cfg.def-use
! Utilities for iterating over instruction operands
USING: accessors assocs combinators compiler.cfg.predecessors
compiler.cfg.rpo deques dlists fry kernel locals math math.order
namespaces sequences sorting vectors ;
-FROM: namespaces => set ;
IN: compiler.cfg.dominance
<PRIVATE
compiler.cfg.linear-scan.live-intervals compiler.cfg.renaming.functor
compiler.cfg.ssa.destruction.leaders cpu.architecture
fry heaps kernel make math namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.linear-scan.assignment
! This contains both active and inactive intervals; any interval
compiler.cfg.linear-scan.allocation.spilling
compiler.cfg.linear-scan.debugger
compiler.cfg.utilities ;
-FROM: namespaces => set ;
IN: compiler.cfg.linear-scan.tests
check-allocation? on
compiler.cfg.loop-detection compiler.cfg.predecessors
compiler.cfg.rpo compiler.cfg.utilities deques dlists fry kernel
make math namespaces sequences sets sorting ;
-FROM: namespaces => set ;
IN: compiler.cfg.linearization
! This is RPO except loops are rotated and unlikely blocks go
compiler.cfg.ssa.destruction.leaders compiler.cfg.utilities
cpu.architecture deques dlists fry kernel locals namespaces
sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.liveness
SYMBOL: live-ins
USING: accessors assocs combinators.short-circuit compiler.cfg
compiler.cfg.predecessors compiler.cfg.utilities deques dlists fry kernel
namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.loop-detection
TUPLE: natural-loop header index ends blocks ;
sets words ;
FROM: compiler.cfg.instructions.syntax => insn-def-slots
insn-use-slots insn-temp-slots scalar-rep ;
-FROM: namespaces => set ;
IN: compiler.cfg.representations.preferred
GENERIC: defs-vreg-reps ( insn -- reps )
compiler.cfg.utilities compiler.utilities cpu.architecture
disjoint-sets fry kernel locals math math.functions namespaces
sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.representations.selection
SYMBOL: tagged-vregs
! Copyright (C) 2008, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors compiler.cfg fry kernel make sequences sets ;
-FROM: namespaces => set ;
+USING: accessors compiler.cfg fry kernel make namespaces
+sequences sets ;
IN: compiler.cfg.rpo
: post-order-traversal ( visited bb -- visited )
compiler.cfg.def-use compiler.cfg.dominance
compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.renaming.functor compiler.cfg.rpo
-compiler.cfg.ssa.construction.tdmsc compiler.cfg.utilities deques dlists fry
-kernel math sequences sets ;
-FROM: namespaces => set get ;
+compiler.cfg.ssa.construction.tdmsc deques dlists fry kernel
+math namespaces sequences sets ;
IN: compiler.cfg.ssa.construction
<PRIVATE
USING: accessors arrays compiler.cfg compiler.cfg.debugger
-compiler.cfg.dominance compiler.cfg.predecessors
-compiler.cfg.ssa.construction.tdmsc compiler.cfg.utilities kernel namespaces
-sequences sets tools.test vectors ;
-FROM: namespaces => set ;
+compiler.cfg.ssa.construction.tdmsc compiler.cfg.utilities
+kernel namespaces sequences sets tools.test ;
IN: compiler.cfg.ssa.construction.tdmsc.tests
: test-tdmsc ( -- )
USING: accessors arrays assocs bit-sets compiler.cfg
compiler.cfg.dominance compiler.cfg.rpo compiler.cfg.utilities
fry hashtables kernel locals math namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.ssa.construction.tdmsc
! TDMSC-I algorithm from "A Practical and Fast Iterative Algorithm for
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
compiler.cfg.ssa.interference cpu.architecture fry kernel make
namespaces sequences sets sorting ;
-FROM: namespaces => set ;
IN: compiler.cfg.ssa.destruction.coalescing
: zip-scalar ( scalar seq -- pairs )
compiler.cfg.parallel-copy compiler.cfg.rpo compiler.cfg.ssa.cssa
compiler.cfg.ssa.destruction.coalescing compiler.cfg.ssa.destruction.leaders
compiler.cfg.ssa.interference.live-ranges compiler.cfg.utilities
-kernel make sequences ;
-FROM: namespaces => set ;
+kernel make sequences namespaces ;
IN: compiler.cfg.ssa.destruction
<PRIVATE
compiler.cfg.instructions compiler.cfg.parallel-copy
compiler.cfg.registers compiler.cfg.stacks.height
fry hash-sets kernel make math math.order namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.stacks.local
: current-height ( state -- ds rs )
USING: accessors assocs combinators.short-circuit
compiler.cfg.instructions compiler.cfg.rpo kernel namespaces
sequences sets ;
-FROM: namespaces => set ;
IN: compiler.cfg.write-barrier
! This pass must run after GC check insertion and scheduling.
fry generic.parser kernel layouts locals make math namespaces
parser quotations sequences sequences.generalizations slots
words ;
-FROM: namespaces => set ;
IN: compiler.codegen
SYMBOL: insn-counts
compiler.tree.combinators compiler.tree.def-use
compiler.tree.recursive continuations grouping kernel math
namespaces sequences sets vectors ;
-FROM: namespaces => set ;
IN: compiler.tree.checker
! Check some invariants; this can help catch compiler bugs.
compiler.tree.dead-code.liveness compiler.tree.dead-code.simple
fry kernel namespaces sequences stack-checker.backend
stack-checker.branches ;
-FROM: namespaces => set ;
IN: compiler.tree.dead-code.branches
M: #if mark-live-values* look-at-inputs ;
USING: accessors assocs compiler.tree compiler.tree.combinators
compiler.tree.def-use compiler.utilities deques dlists kernel
namespaces sets stack-checker.branches ;
-FROM: namespaces => set ;
IN: compiler.tree.dead-code.liveness
SYMBOL: work-list
prettyprint.sections quotations sequences sequences.private sets
sorting words ;
FROM: fry => _ ;
-FROM: namespaces => set ;
RENAME: _ match => __
IN: compiler.tree.debugger
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs compiler.tree compiler.tree.combinators
fry kernel namespaces sequences stack-checker.branches ;
-FROM: namespaces => set ;
QUALIFIED: sets
IN: compiler.tree.def-use
! See http://factorcode.org/license.txt for BSD license.
USING: accessors compiler.tree compiler.tree.def-use kernel
namespaces sequences sets stack-checker.branches ;
-FROM: namespaces => set ;
IN: compiler.tree.def-use.simplified
! Simplified def-use follows chains of copies.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators disjoint-sets fry kernel
namespaces sequences stack-checker.values ;
-FROM: namespaces => set ;
IN: compiler.tree.escape-analysis.allocations
SYMBOL: value-classes
compiler.tree.late-optimizations compiler.tree.propagation.info
fry kernel layouts math math.intervals math.partial-dispatch
math.private memoize namespaces sequences sets words ;
-FROM: namespaces => set ;
IN: compiler.tree.modular-arithmetic
! This is a late-stage optimization.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators.short-circuit compiler.tree fry
kernel namespaces sequences sets ;
-FROM: namespaces => set ;
IN: compiler.tree.recursive
TUPLE: call-site tail? node label ;
math combinators namespaces urls.encoding xml.syntax xmode.code2html
xml.data arrays strings vectors xml.writer io.streams.string locals
unicode.categories ;
-FROM: namespaces => set ;
IN: farkup
SYMBOL: relative-link-prefix
furnace.boilerplate
furnace.auth.providers
furnace.auth.providers.db ;
-FROM: namespaces => set ;
IN: furnace.auth
SYMBOL: logged-in-user
USING: accessors arrays assocs definitions fry generic help
help.markup io.streams.string kernel math namespaces parser
sequences sets strings tools.test words ;
-FROM: namespaces => set ;
IN: help.markup.tests
: with-markup-test ( quot -- )
splitting strings urls vectors vocabs vocabs.loader words
words.symbol ;
FROM: prettyprint.sections => with-pprint ;
-FROM: namespaces => set ;
IN: help.markup
PREDICATE: simple-element < array
io.styles kernel math mirrors namespaces prettyprint
prettyprint.custom prettyprint.sections sequences sets sorting
summary ;
-FROM: namespaces => set ;
IN: inspector
SYMBOL: +number-rows+
namespaces make threads continuations init libc math math.bitwise
sets alien alien.strings alien.c-types vocabs.loader accessors
system hashtables destructors unix classes.struct literals ;
-FROM: namespaces => set ;
IN: io.monitors.linux
SYMBOL: watches
io io.sockets io.sockets.secure io.streams.duplex io.styles
io.timeouts kernel logging make math math.parser namespaces
present prettyprint random sequences sets strings threads ;
-FROM: namespaces => set ;
IN: io.servers
TUPLE: threaded-server < identity-tuple
generalizations kernel locals make math math.order namespaces
quotations sequences sets splitting unicode.categories vectors
words ;
-FROM: namespaces => set ;
IN: peg
TUPLE: parse-result remaining ast ;
combinators.short-circuit continuations hashtables io io.styles
kernel make math namespaces prettyprint.config sequences sets
splitting strings vocabs vocabs.parser words ;
-FROM: namespaces => set ;
IN: prettyprint.sections
! State
unicode.categories regexp.transition-tables words sets hashtables
combinators.short-circuit unicode.data regexp.ast
regexp.classes memoize ;
-FROM: namespaces => set ;
IN: regexp.nfa
! This uses unicode.data for ch>upper and ch>lower
prettyprint.backend prettyprint.config prettyprint.custom
prettyprint.sections sequences sets slots sorting strings summary
words words.symbol words.constant words.alias vocabs ;
-FROM: namespaces => set ;
IN: see
GENERIC: synopsis* ( defspec -- )
stack-checker.recursive-state stack-checker.state
stack-checker.values stack-checker.visitor words ;
FROM: sequences.private => from-end ;
-FROM: namespaces => set ;
IN: stack-checker.backend
: push-d ( obj -- ) meta-d push ;
classes.algebra classes.tuple combinators.short-circuit fry
generic kernel math namespaces sequences sets words ;
FROM: classes.tuple.private => tuple-layout ;
-FROM: namespaces => set ;
IN: stack-checker.dependencies
! Words that the current quotation depends on
stack-checker.dependencies stack-checker.errors
stack-checker.recursive-state stack-checker.values
stack-checker.visitor words ;
-FROM: namespaces => set ;
IN: stack-checker.transforms
: call-transformer ( stack quot -- newquot )
QUALIFIED: source-files.errors
QUALIFIED: vocabs
QUALIFIED: vocabs.loader
-FROM: namespaces => set ;
IN: tools.deploy.shaker
! This file is some hairy shit.
io.encodings.utf16n windows.errors literals ui.pixel-formats
ui.pixel-formats.private memoize classes colors
specialized-arrays classes.struct ;
-FROM: namespaces => set ;
SPECIALIZED-ARRAY: POINT
QUALIFIED-WITH: alien.c-types c
IN: ui.backend.windows
tools.test namespaces models kernel dlists deques math
math.parser ui sequences hashtables assocs io arrays prettyprint
io.streams.string math.rectangles ui.gadgets.private sets generic ;
-FROM: namespaces => set ;
IN: ui.gadgets.tests
{ { 300 300 } }
math.vectors classes.tuple classes boxes calendar timers combinators
sets columns fry deques ui.gadgets ui.gadgets.private ascii
combinators.short-circuit ;
-FROM: namespaces => set ;
IN: ui.gestures
: get-gesture-handler ( gesture gadget -- quot )
USING: math.rectangles math.vectors namespaces kernel accessors
assocs combinators sequences sets opengl opengl.gl colors
colors.constants ui.gadgets ui.pens ;
-FROM: namespaces => set ;
IN: ui.render
SYMBOL: clip
USING: accessors assocs checksums checksums.crc32
combinators.short-circuit io.encodings.utf8 io.files kernel
namespaces sequences sets source-files vocabs vocabs.loader ;
-FROM: namespaces => set ;
IN: vocabs.refresh
: source-modified? ( path -- ? )
xml.data accessors arrays make xml.char-classes fry assocs sequences
math xml.errors sets combinators io.encodings io.encodings.iana
unicode.case xml.dtd strings xml.entities unicode.categories ;
-FROM: namespaces => set ;
IN: xml.elements
: take-interpolated ( quot -- interpolated )
alien.syntax arrays byte-arrays continuations fry kernel kernel.private
layouts libc math namespaces prettyprint sequences sets system tools.memory
tools.test ;
-FROM: namespaces => set ;
IN: alien.tests
{ t } [ -1 <alien> alien-address 0 > ] unit-test
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators definitions kernel
make namespaces quotations sequences sets words words.symbol ;
-FROM: namespaces => set ;
IN: classes
ERROR: bad-inheritance class superclass ;
classes.tuple classes.tuple.private continuations definitions
generic hash-sets init kernel kernel.private math namespaces
sequences sets source-files.errors vocabs words ;
-FROM: namespaces => set ;
IN: compiler.units
PRIMITIVE: modify-code-heap ( alist update-existing? reset-pics? -- )
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs continuations init kernel make
namespaces sequences sets ;
-FROM: namespaces => set ;
IN: destructors
SYMBOL: disposables
math.constants math.functions namespaces parser quotations
sequences specialized-vectors strings tools.test words ;
QUALIFIED-WITH: alien.c-types c
-FROM: namespaces => set ;
SPECIALIZED-VECTOR: c:double
IN: generic.standard.tests
compiler.units continuations definitions io.encodings.utf8
io.files io.pathnames kernel namespaces sequences sets
source-files.errors strings words ;
-FROM: namespaces => set ;
IN: source-files
SYMBOL: source-files
compiler.cfg.predecessors
compiler.cfg.renaming.functor
compiler.cfg.rpo ;
-FROM: namespaces => set ;
QUALIFIED: assocs
IN: compiler.cfg.gvn.avail
io.pathnames kernel locals make math math.combinatorics
math.parser memoize namespaces sequences sequences.extras sets
splitting system tools.test ;
-FROM: namespaces => set ;
IN: graphviz.tests
! XXX hack
kernel locals make math math.matrices math.matrices.elimination
math.order math.parser math.vectors namespaces prettyprint
sequences sets shuffle sorting splitting ;
-FROM: namespaces => set ;
IN: koszul
! Utilities
combinators.smart io io.crlf io.encodings.utf8 kernel locals
managed-server namespaces sequences sorting splitting
unicode.case ;
-FROM: namespaces => set ;
IN: managed-server.chat
TUPLE: chat-server < managed-server ;
io.streams.duplex fry kernel locals math math.ranges multiline
namespaces prettyprint random sequences sets splitting threads
tools.continuations ;
-FROM: namespaces => set ;
IN: managed-server
TUPLE: managed-server < threaded-server clients ;
USING: assocs kernel math math.combinatorics math.functions
math.parser math.primes namespaces project-euler.common
sequences sets strings grouping math.ranges arrays fry math.order ;
-FROM: namespaces => set ;
IN: project-euler.051
<PRIVATE
SYMBOL: family-count