Slava Pestov
|
725280d424
|
Split off the notion of a register representation from a register class
|
2009-08-07 17:44:50 -05:00 |
Slava Pestov
|
be363d1a5b
|
compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation
|
2009-07-30 09:19:44 -05:00 |
Slava Pestov
|
610c3b33c7
|
compiler.cfg.intrinsics: Disable inline allocation for now
|
2009-07-22 21:11:06 -05:00 |
Slava Pestov
|
3ee68d1ff5
|
Disable fixnum>bignum and bignum>fixnum intrinsics since they're not very useful and they increase code size significantly
|
2009-07-18 01:07:43 -05:00 |
Slava Pestov
|
e76dce8aff
|
Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint
|
2009-07-16 18:29:40 -05:00 |
Slava Pestov
|
a75d558b30
|
compiler.cfg.intrinsics.fixnum: don't generate -imm forms anymore since value numbering does it
|
2009-07-14 19:18:57 -05:00 |
Slava Pestov
|
768e2a5148
|
compiler.cfg: split off condition codes into a comparisons sub-vocabulary
|
2009-07-13 14:42:52 -05:00 |
Slava Pestov
|
1acf243cce
|
Fix conflict
|
2009-06-30 20:16:09 -05:00 |
Slava Pestov
|
5c6c3ecd85
|
compiler.cfg.tco: Tail call optimization moved out of compiler.cfg.builder into its own pass
|
2009-06-30 20:13:35 -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
|
c5160d76e9
|
Merge qualified, alias, symbols, constants into core
|
2008-12-17 18:10:01 -06:00 |
Slava Pestov
|
eb79c6ab71
|
Fix conflict
|
2008-12-09 17:52:45 -06:00 |
Slava Pestov
|
8a8f0c925c
|
Use BSR instruction to implement fixnum-log2 intrinsic
|
2008-12-06 15:31:17 -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
|
908644ee7a
|
O(1) <sbuf> and new-sequence on byte-arrays (work in progress)
|
2008-12-05 07:28:52 -06:00 |
Slava Pestov
|
e256846acd
|
Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement
|
2008-12-05 06:38:51 -06:00 |
Slava Pestov
|
e7f4563374
|
fixnum* intrinsic for x86
|
2008-11-30 07:26:49 -06:00 |
Slava Pestov
|
68dd6cc35a
|
Working on PowerPC overflow checks
|
2008-11-28 20:02:50 -06:00 |
Slava Pestov
|
eb8c621b6f
|
Faster generic arithmetic on fiixnums: both-fixnums? sub-primitive performs a check if the top two stack items are both fixnums with a single conditional branch
|
2008-11-28 08:35:02 -06:00 |
Slava Pestov
|
f44506089d
|
More work on overflow instructions: don't need temp register anymore, add -tail variants which don't need stack frame
|
2008-11-28 06:36:30 -06:00 |
Slava Pestov
|
5634becda1
|
##fixnum-add, ##fixnum-sub instructions open-code overflow check
|
2008-11-28 05:33:58 -06:00 |
Slava Pestov
|
53cd75b06c
|
Add string-nth intrinsic
|
2008-11-06 01:11:28 -06:00 |
Slava Pestov
|
82e9eedd39
|
Forgot about float= intrinsic
|
2008-11-03 07:15:09 -06:00 |
Slava Pestov
|
885adc8dc9
|
Various improvements
|
2008-10-23 05:27:54 -05:00 |
Slava Pestov
|
df498c21a3
|
Trim USING:
|
2008-10-20 20:46:47 -05:00 |
Slava Pestov
|
e92f795a76
|
More work on intrinsics; memory allocation and slot access now expands correctly
|
2008-10-20 20:40:15 -05:00 |