compiler: The non-optimizing compiler is too slow with smart combinators in the compiler. Speed up bootstrap by not using them.

db4
Doug Coleman 2011-12-05 14:26:14 -08:00
parent 72fdb8c5fb
commit 80385770ef
3 changed files with 13 additions and 13 deletions

View File

@ -3,7 +3,7 @@
USING: accessors combinators combinators.short-circuit arrays USING: accessors combinators combinators.short-circuit arrays
fry kernel layouts math namespaces sequences cpu.architecture fry kernel layouts math namespaces sequences cpu.architecture
math.bitwise math.order classes generalizations math.bitwise math.order classes generalizations
combinators.smart locals make alien.c-types io.binary grouping locals make alien.c-types io.binary grouping
math.vectors.simd.intrinsics math.vectors.simd.intrinsics
compiler.cfg compiler.cfg
compiler.cfg.registers compiler.cfg.registers
@ -84,8 +84,8 @@ M: ##gather-int-vector-2 rewrite rewrite-gather-vector-2 ;
insn dst>> insn dst>>
[ [
src1 src2 src3 src4 src1 src2 src3 src4
[ insn rep>> scalar-value ] 4 napply [ insn rep>> scalar-value % ] 4 napply
] B{ } append-outputs-as ] B{ } make
##load-reference new-insn ; ##load-reference new-insn ;
: rewrite-gather-vector-4 ( insn -- insn/f ) : rewrite-gather-vector-4 ( insn -- insn/f )

View File

@ -2,9 +2,10 @@
! 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: byte-arrays namespaces make math math.order math.parser
sequences accessors kernel layouts assocs words summary arrays sequences accessors kernel layouts assocs words summary arrays
combinators combinators.smart sets continuations.private fry combinators sets continuations.private fry
cpu.architecture classes classes.struct locals slots parser cpu.architecture classes classes.struct locals slots parser
generic.parser strings quotations hashtables generic.parser strings quotations hashtables
sequences.generalizations
compiler.constants compiler.constants
compiler.cfg compiler.cfg
compiler.cfg.linearization compiler.cfg.linearization
@ -106,7 +107,7 @@ M: ##dispatch generate-insn
label-table get label-table get
] B{ } make ] B{ } make
dup check-fixup dup check-fixup
] output>array ; inline ] call 5 narray ; inline
: generate ( cfg -- code ) : generate ( cfg -- code )
[ [

View File

@ -2,9 +2,8 @@
! 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 kernel namespaces arrays sequences io words fry
continuations vocabs assocs definitions math graphs generic continuations vocabs assocs definitions math graphs generic
generic.single combinators combinators.smart macros generic.single combinators macros make source-files.errors
source-files.errors combinators.short-circuit classes.algebra combinators.short-circuit classes.algebra vocabs.loader
vocabs.loader
stack-checker stack-checker.dependencies stack-checker.inlining stack-checker stack-checker.dependencies stack-checker.inlining
stack-checker.errors stack-checker.errors
@ -165,11 +164,11 @@ M: optimizing-compiler recompile ( words -- alist )
M: optimizing-compiler to-recompile ( -- words ) M: optimizing-compiler to-recompile ( -- words )
[ [
changed-effects get new-words get assoc-diff outdated-effect-usages changed-effects get new-words get assoc-diff outdated-effect-usages %
changed-definitions get new-words get assoc-diff outdated-definition-usages changed-definitions get new-words get assoc-diff outdated-definition-usages %
maybe-changed get new-words get assoc-diff outdated-conditional-usages maybe-changed get new-words get assoc-diff outdated-conditional-usages %
changed-definitions get [ drop word? ] assoc-filter 1array changed-definitions get [ drop word? ] assoc-filter 1array %
] append-outputs assoc-combine keys ; ] { } make assoc-combine keys ;
M: optimizing-compiler process-forgotten-words M: optimizing-compiler process-forgotten-words
[ delete-compiled-xref ] each ; [ delete-compiled-xref ] each ;