Commit Graph

17 Commits (2945393965491c23d614a43d531639a8f5be4fa4)

Author SHA1 Message Date
Slava Pestov 962d039852 Rename specific-method to method-for-class, rename (effective-method) to method-for-object, and make both much faster 2009-09-21 17:42:20 -05:00
Slava Pestov 32b95c2cdf math: add unordered comparison operators u< u<= u> u>= which behave exactly like < <= > >= except no floating point exceptions are set if one or both inputs are NaNs; also add efficient intrinsic for unordered? predicate, and fix propagation type functions for abs, absq, and bitnot 2009-09-12 22:20:13 -05:00
Slava Pestov c468ed8962 integer/integer partial dispatch ops now use both-fixnums? 2009-03-16 00:44:44 -05:00
Slava Pestov b6f6e880bf Make partially dispatched integer ops foldable 2009-03-11 13:57:13 -05:00
Slava Pestov 669548e62e Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary 2009-02-02 13:43:54 -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 a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Slava Pestov 1361bb7d5c derived-ops for shift didn't include fixnum-shift 2008-11-30 04:44:52 -06:00
Slava Pestov 4f5b0e5cd6 Oops 2008-11-29 13:44:38 -06:00
Slava Pestov ae4f9a2809 Add fixnum/mod-fast and fixnum/i-fast subprimitives 2008-11-21 02:11:36 -06:00
Aaron Schaefer d328589b87 Cleanup partial-dispatch by removing >r r> usage 2008-11-17 17:59:15 -05:00
Slava Pestov 7f3282bb39 Better error reporting 2008-11-03 01:19:06 -06:00
Slava Pestov 10c68ebb21 New modular arithmetic optimization pass 2008-09-12 18:08:38 -05:00
Slava Pestov 54232f80ca Adding identity optimization pass, tweak inlining heuristic 2008-09-12 08:18:44 -05:00
Slava Pestov 44f53de164 Move make to its own vocabulary, remove fry _ feature 2008-09-10 20:07:00 -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 f2a5a30c6f New front-end and high-level optimizer lands 2008-08-12 03:22:45 -05:00