File:  [gforth] / gforth / peeprules.vmg
Revision 1.10: download - view: text, annotated - select for diffs
Mon Nov 3 20:13:35 2003 UTC (20 years, 4 months ago) by anton
Branches: MAIN
CVS tags: HEAD
made classical 1-register stack caching work again (and probably
  general stack caching with non-empty canonical state).  There was a
  subtle bug involving ?DUP-?BRANCH.
made this the default for gforth-fast and turned off anything beyond
deleted the now-unused rewrite_bb().

    1: \ taken from David Gregg's EuroForth 2001 paper; omitted some sequences
    2: super1 = lit +
    3: super2 = lit call
    4: super3 = lit @
    5: super4 = lit @ call
    6: super5 = @ call
    7: super6 = lit !
    8: super7 = lit lit
    9: super8 = dup lit
   10: super9 = ! lit
   11: super10 = lit ! lit
   12: super11 = ! ;s
   13: super12 = lit + @
   14: super13 = 0= ?branch
   15: super14 = dup call
   16: super15 = useraddr @
   17: super16 = + @
   18: super17 = lit @ ?branch
   19: super18 = lit ! ;s
   20: super19 = lit @ and
   21: super20 = = ?branch
   22: super21 = lit lit !
   23: super22 = @ ?branch
   24: super23 = useraddr !
   25: super24 = dup ?branch
   26: super25 = @ ;s
   27: super26 = lit @ +
   28: super27 = dup @
   29: 
   30: \  \F 0 [if]
   31: 
   32: \  \ \E prim-states ;s                   \ 2950159
   33: \  \E prim-states lit                  \ 2802835
   34: \  \ \E prim-states call                 \ 2558373
   35: \  \E prim-states @                    \ 2244351
   36: \  \E branch-states ?branch              \ 1134432
   37: \  \E prim-states lit@                 \ 1051813
   38: \  \E prim-states swap                 \ 737988
   39: \  \E S0 S2 state-prim swap
   40: \  \E S1 S2 state-prim swap
   41: \  \E S2 S3 state-prim swap
   42: \  \E S3 S2 state-prim swap
   43: \  \E prim-states c@                   \ 651406
   44: \  \E prim-states =                    \ 590006
   45: \  \E prim-states 0=                   \ 584487
   46: \  \E prim-states dup                  \ 566855
   47: \  \E S0 S1 state-prim dup
   48: \  \E prim-states +                    \ 566003
   49: \  \E prim-states i                    \ 502908
   50: \  \E prim-states +!                   \ 448925
   51: \  \ \E prim-states branch               \ 409561
   52: \  \ \E prim-states (loop)               \ 379646
   53: \  \ \E prim-states lp!                  \ 326743
   54: \  \E prim-states and                  \ 309427
   55: \  \E prim-states useraddr             \ 303254
   56: \  \E prim-states over                 \ 283556
   57: \  \E S0 S1 state-prim over
   58: \  \E S1 S2 state-prim over
   59: \  \E S2 S1 state-prim over
   60: \  \E S3 S2 state-prim over
   61: \  \E prim-states negate               \ 257417
   62: \  \E prim-states cells                \ 254644
   63: \  \E prim-states rot                  \ 220273
   64: \  \E S3 S1 state-prim rot
   65: \  \E S2 S3 state-prim rot
   66: \  \E S1 S3 state-prim rot
   67: \  \E S0 S3 state-prim rot
   68: \  \E prim-states !                    \ 218672
   69: \  \E prim-states 2dup                 \ 211315
   70: \  \E S0 S2 state-prim 2dup
   71: \  \E S1 S3 state-prim 2dup
   72: \  \E S2 S2 state-prim 2dup
   73: \  \E S3 S1 state-prim 2dup
   74: \  \ \E branch-states lit-perform          \ 188331
   75: \  \E prim-states <>                   \ 179502
   76: \  \E prim-states c!                   \ 179332
   77: \  \E prim-states lit+                 \ 179156
   78: \  \E prim-states drop                 \ 173995
   79: \  \E S0 S0 state-prim drop
   80: \  \E prim-states lshift               \ 164671
   81: \  \E prim-states /mod                 \ 164670
   82: \  \E prim-states >r                   \ 145247
   83: \  \E prim-states r>                   \ 133792
   84: \  \ \E branch-states does-exec            \ 120944
   85: \  \E prim-states cell+                \ 116183
   86: \  \E prim-states lp+!#                \ 106697 \ --
   87: \  \E prim-states -                    \ 106245
   88: \  \E prim-states unloop               \ 98938 \ --
   89: \  \E prim-states lp+                  \ 87190 \ --
   90: \  \E prim-states >=                   \ 80994
   91: \  \E prim-states tuck                 \ 78696
   92: \  \E S2 S2 state-prim tuck
   93: \  \E prim-states /string              \ 78595
   94: \  \E prim-states char+                \ 77542
   95: \  \ \E prim-states ?dup                 \ 76850
   96: \  \E prim-states @local0              \ 75322
   97: \  \E prim-states min                  \ 75264
   98: \  \ \E prim-states compare              \ 65603
   99: \  \E branch-states (u+do)               \ 63823
  100: \  \ \E prim-states (read-line)          \ 63823
  101: \  \E prim-states 2>r                  \ 62646
  102: \  \E prim-states 2r>                  \ 62644
  103: \  \E prim-states 2r@                  \ 61338
  104: \  \E prim-states 2@                   \ 61067
  105: \  \E prim-states nip                  \ 54961
  106: \  \E S1 S1 state-prim nip
  107: \  \E S0 S1 state-prim nip
  108: \  \E prim-states within               \ 51075
  109: \  \E prim-states 1-                   \ 47441
  110: \  \E branch-states execute              \ 46674
  111: \  \E prim-states lp-                  \ 45385
  112: \  \E branch-states perform              \ 38756
  113: \  \E prim-states xor                  \ 35599
  114: \  \E prim-states @local#              \ 34586
  115: \  \ \E prim-states pick                 \ 32015
  116: \  \E prim-states u>                   \ 29373
  117: \  \E prim-states -rot                 \ 26211
  118: \  \E S3 S2 state-prim -rot
  119: \  \E S1 S3 state-prim -rot
  120: \  \E prim-states 2drop                \ 25418
  121: \  \E S0 S0 state-prim 2drop
  122: \  \E S1 S0 state-prim 2drop
  123: \  \ \E prim-states (tablelfind)         \ 22243
  124: \  \E prim-states or                   \ 21587
  125: \  \E prim-states @local2              \ 20859
  126: \  \E branch-states (+loop)              \ 20006
  127: \  \E prim-states 1+                   \ 17944
  128: \  \E prim-states rdrop                \ 17902
  129: \  \E branch-states (?do)                \ 17348
  130: \  \E prim-states max                  \ 16948
  131: \  \E prim-states 2*                   \ 15606
  132: \  \ \E prim-states filename-match       \ 15003
  133: \  \ \E prim-states (listlfind)          \ 13074
  134: \  \ \E prim-states sp@                  \ 12741
  135: \  \ \E prim-states fp@                  \ 12384
  136: \  \ \E prim-states um/mod               \ 12288
  137: \  \E prim-states 2!                   \ 11904
  138: \  \ \E prim-states fill                 \ 10781
  139: \  \ \E prim-states (parse-white)        \ 10624
  140: \  \E branch-states (do)                 \ 10516
  141: \  \ \E prim-states (hashkey1)           \ 10239
  142: \  \E prim-states u<                   \ 9602
  143: \  \ \E prim-states write-file           \ 8973
  144: \  \E prim-states count                \ 8873
  145: \  \ \E prim-states rp@                  \ 8410
  146: \  \E prim-states 0<                   \ 8380
  147: \  \E prim-states <                    \ 7741
  148: \  \E prim-states @local1              \ 7458
  149: \  \ \E prim-states move                 \ 7050
  150: \  \E prim-states u>=                  \ 6138
  151: \  \E branch-states (+do)                \ 5863
  152: \  \ \E prim-states va-return-double     \ 5517
  153: \  \E prim-states um*                  \ 5342
  154: \  \E prim-states toupper              \ 3517
  155: \  \ \E prim-states f@local1             \ 2907
  156: \  \ \E prim-states rp!                  \ 2859
  157: \  \ \E prim-states ?dup-?branch         \ 2829
  158: \  \E prim-states d+                   \ 2671
  159: \  \ \E prim-states ftuck                \ 2636
  160: \  \ \E prim-states read-file            \ 2623
  161: \  \ \E prim-states ms                   \ 2454
  162: \  \ \E prim-states (s+loop)             \ 2429
  163: \  \ \E prim-states allocate             \ 1869
  164: \  \E prim-states *                    \ 1520
  165: \  \E prim-states 0<>                  \ 925
  166: \  \ \E prim-states noop                 \ 715
  167: \  \E prim-states aligned              \ 714
  168: \  \E prim-states u<=                  \ 684
  169: \  \E prim-states i'                   \ 684
  170: \  \E prim-states >                    \ 411
  171: \  \ \E prim-states (hashlfind)          \ 397
  172: \  \E prim-states 2swap                \ 336
  173: \  \E S0 S3 state-prim 2swap
  174: \  \E S1 S3 state-prim 2swap
  175: \  \E prim-states laddr#               \ 335
  176: \  \ \E prim-states faxpy                \ 286
  177: \  \ \E prim-states (next)               \ 272
  178: \  \ \E prim-states (-loop)-lp+!#        \ 248
  179: \  \E prim-states <=                   \ 199
  180: \  \E prim-states invert               \ 170
  181: \  \E branch-states (-do)                \ 169
  182: \  \E prim-states 2over                \ 165
  183: \  \E S0 S2 state-prim 2over
  184: \  \E S1 S3 state-prim 2over
  185: \  \E prim-states under+               \ 154
  186: \  \E prim-states dnegate              \ 128
  187: \  \E prim-states u<>                  \ 128
  188: \  \E prim-states 0>                   \ 122
  189: \  \ \E prim-states (loop)-lp+!#         \ 118
  190: \  \E prim-states j                    \ 117
  191: \  \E prim-states float+               \ 78
  192: \  \ \E prim-states (for)                \ 68
  193: \  \E prim-states 2rdrop               \ 60 \ --
  194: \  \ \E prim-states f!                   \ 14
  195: \  \E prim-states >l                   \ 14
  196: \  \ \E prim-states close-file           \ 5
  197: \  \ \E prim-states call-c               \ 4
  198: \  \ \E prim-states reposition-file      \ 3
  199: \  \E prim-states /                    \ 3
  200: \  \ \E prim-states resize-file          \ 2
  201: \  \ \E prim-states free                 \ 2
  202: \  \E prim-states 2/                   \ 2
  203: \  \ \E prim-states up!                  \ 1
  204: \  \ \E prim-states stdin                \ 1
  205: \  \ \E prim-states key?-file            \ 1
  206: \  \ \E prim-states flush-icache         \ 1
  207: \  \ \E prim-states cmove                \ 1
  208: \  \ \E prim-states (system)             \ 1
  209: 
  210: \  \E ' noop is output-nextp0
  211: \  \E ' noop is output-nextp1
  212: 
  213: \  \E gen-transitions noop
  214: 
  215: \  \F [ENDIF]

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>