From: Daniel Ehrenberg Date: Wed, 20 Jan 2010 06:15:55 +0000 (-0600) Subject: Merge branch 'master' of git://factorcode.org/git/factor X-Git-Tag: 0.97~4743^2~43^2~4 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=d3590ea21094646d40976a4fc840b137e502fd62 Merge branch 'master' of git://factorcode.org/git/factor Conflicts: basis/compiler/tree/propagation/transforms/transforms.factor --- d3590ea21094646d40976a4fc840b137e502fd62 diff --cc basis/compiler/tree/propagation/transforms/transforms.factor index b0605bfb35,63c0aea13e..2d145ef74f --- a/basis/compiler/tree/propagation/transforms/transforms.factor +++ b/basis/compiler/tree/propagation/transforms/transforms.factor @@@ -301,11 -282,17 +282,26 @@@ CONSTANT: lookup-table-at-max 25 \ intersect [ intersect-quot ] 1 define-partial-eval +: fixnum-bits ( -- n ) + cell-bits tag-bits get - ; + +: bit-quot ( #call -- quot/f ) + in-d>> second value-info interval>> 0 fixnum-bits [a,b] interval-subset? + [ [ >fixnum ] dip fixnum-bit? ] f ? ; + +\ bit? [ bit-quot ] "custom-inlining" set-word-prop ++ + ! Speeds up sum-file, sort and reverse-complement benchmarks by + ! compiling decoder-readln better + \ push [ + in-d>> second value-info class>> growable class<= + [ \ push def>> ] [ f ] if + ] "custom-inlining" set-word-prop + + ! We want to constant-fold calls to heap-size, and recompile those + ! calls when a C type is redefined + \ heap-size [ + dup word? [ + [ inlined-dependency depends-on ] [ heap-size '[ _ ] ] bi + ] [ drop f ] if + ] 1 define-partial-eval