Slava Pestov
ac800e2396
compiler.tree.escape-analysis: make tests a bit more robust; a change to boa constructors recently meant dead curries were showing up on certain expansions, this was throwing off the escape-analysis test's unboxed allocation counting. Fix this by having the test run DCE first, and remove a few tests that no longer make sense now
2010-01-18 23:32:34 +13:00
Slava Pestov
df4fb4a3ee
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Slava Pestov
44a604fdbe
compiler.tree: remove some code duplication concerning #alien nodes
2010-01-07 16:06:07 +13:00
Doug Coleman
3f3d57032b
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Slava Pestov
8a9c15ab0b
compiler.tree.escape-analysis: if the output of an #introduce node has an immutable tuple class type declaration, and it is not passed to any subroutine calls, or returned from the word, then unbox it. This speeds up vector arithmetic words on specialized arrays, because the specialized array is unboxed up-front, eliminating an indirection on every loop iteration
2009-08-09 16:29:21 -05:00
Slava Pestov
c3d60e5899
compiler.tree.recursive: more accurate loop detection
2009-08-04 19:18:40 -05:00
Slava Pestov
29327a787c
Remove initial-quot feature
2009-06-15 13:07:15 -05:00
Slava Pestov
285c8cecc6
Add some failing unit tests exposing bugs in initial-quot: implementation
2009-06-13 18:34:27 -05:00
Slava Pestov
dedbd14945
Fix escape analysis bug reported by Doug
2009-05-15 17:18:38 -05:00
Slava Pestov
65faa3fda3
Fix unit tests and load errors for slip removal
2009-05-10 17:03:41 -05:00
Slava Pestov
fc4894fbdf
Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags
2009-04-30 00:27:35 -05:00
Slava Pestov
05f3f9dcb9
Fixing unit tests for stack effect inference changes
2009-04-20 21:15:19 -05:00
Slava Pestov
6b25e99470
Add summary for heaps more vocabs
2009-02-16 21:05:13 -06:00
Slava Pestov
bf5ff11720
Update usages of all-equal? now that its in the grouping vocab
2009-01-16 15:14:30 -06:00
Slava Pestov
145b635eb6
More optimization intended to reduce compile time. Another 10% speedup on compiling empty PEG parser
...
- new map-flat combinator replaces usages of 'map flatten' in compiler
- compiler.tree.def-use.simplified uses an explicit accumulator instead of flatten
- compiler.tree.tuple-unboxing uses an explicit accumulator instead of flatten
- fix inlining regression from last time: custom inlining results would sometimes be discarded
- compiler.tree's 3each and 3map combinators rewritten to not use flip
- rewrite math.partial-dispatch without locals (purely stylistic, no performance increase)
- hand-optimize flip for common arrays-of-arrays case
- don't run escape analysis and tuple unboxing if there are no allocations in the IR
2008-12-06 11:17:19 -06:00
Slava Pestov
5bae69426d
Stack checker cleanup and optimization
...
- stack-checker.state vocabulary split up into stack-checker.{state,values,recursive-state}
- code that modifies and searches recursive state factored out into stack-checker.recursive-state
- recursive state is now a set of three binary hash trees instead of an alist, and no longer contains unnecessary data
- binary hash trees are in stack-checker.recursive-state.tree: unbalanced, persistent
- ~8 second speedup on bootstrap, ~20 second speedup in "peg.javascript" require
2008-11-13 00:07:45 -06:00
Slava Pestov
792df37431
Update unit test
2008-11-11 08:50:30 -06:00
Slava Pestov
0cc0a41e57
Update for compiler.intrinsics removal
2008-10-20 20:40:36 -05:00
Slava Pestov
40da49bef5
Perform loop detection before normalization, clean up normalization pass, more aggressive recursive return value propagation. Fixes regression on nsieve benchmark
2008-09-12 05:17:27 -05:00
Slava Pestov
cf80dd122a
Updating code for make and fry changes
2008-09-10 22:11:40 -05:00
Doug Coleman
8a921c791c
if-empty changes
2008-09-06 19:13:59 -05:00
Slava Pestov
e1716d92b3
Remove delegation slot
2008-09-03 03:46:56 -05:00
Slava Pestov
a4a00f6e40
Adding missing optimizations to finalization pass
2008-09-02 22:59:49 -05:00
Slava Pestov
6717d3743e
Fix escape analysis bug; speedup on fib4 benchmark
2008-08-31 09:03:03 -05:00
Slava Pestov
6ead724b25
Fixing bugs
2008-08-29 04:23:39 -05:00
Slava Pestov
799cefc39a
Fix conflict
2008-08-27 05:52:38 -05:00
Slava Pestov
8c46a3d56f
Only annotate certain nodes ith value info
2008-08-24 14:02:33 -05:00
Slava Pestov
9aa6d8ae04
Compiler fixes
2008-08-22 15:30:57 -05:00
Slava Pestov
17758f3749
Stack flow checker; various fixes
2008-08-19 17:11:33 -05:00
Slava Pestov
aa9341e579
Enforce that usages of >r/r> must be balanced within a quotation
2008-08-18 20:49:03 -05:00
Slava Pestov
9b6fb70eba
Debugging optimizer
2008-08-18 15:47:49 -05:00
Slava Pestov
e1987d4af9
Debugging new optimizer
2008-08-14 23:35:19 -05:00
Slava Pestov
a61e13f7be
More aggressive DCE
2008-08-13 23:52:49 -05:00
Slava Pestov
4f82ebdc23
DCE work in progress
2008-08-13 14:17:04 -05:00
Slava Pestov
56d272df9e
Merge branch 'master' into new_optimizer
2008-08-12 03:36:44 -05:00
Slava Pestov
f2a5a30c6f
New front-end and high-level optimizer lands
2008-08-12 03:22:45 -05:00