Slava Pestov
|
e4ad642134
|
vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)
|
2009-11-02 04:25:54 -06:00 |
Slava Pestov
|
59fbe85c9b
|
compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused
|
2009-09-27 20:36:05 -05:00 |
Slava Pestov
|
85a2bfab6c
|
compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax
|
2009-09-02 06:22:37 -05:00 |
Slava Pestov
|
7590ad3574
|
compiler.cfg: introduce less temporaries when building CFG
|
2009-07-24 03:37:18 -05:00 |
Slava Pestov
|
d947c61bd7
|
compiler.cfg.stacks: now performs online local DCN
|
2009-07-23 20:54:38 -05:00 |
Slava Pestov
|
605b37a949
|
compiler.cfg.builder: annotate calls with height changes, once again
|
2009-07-18 23:08:53 -05:00 |
Slava Pestov
|
3fb4fc1bde
|
Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases
|
2009-07-16 23:50:48 -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
|
af875ba836
|
compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics
|
2009-07-02 00:51:06 -05:00 |
Doug Coleman
|
8b728e0a8a
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-06-30 23:02:04 -05:00 |
Doug Coleman
|
b1c7374175
|
optimize fixnum*fast and fixnum-shift-fast
|
2009-06-30 23:01:44 -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 |
Doug Coleman
|
97cd0d584e
|
make commutative operations with immediates output the same IR
|
2009-06-30 18:47:24 -05:00 |
Slava Pestov
|
421ee726b8
|
Merge branch 'master' into new_ui
|
2009-02-16 21:22:12 -06:00 |
Slava Pestov
|
6b25e99470
|
Add summary for heaps more vocabs
|
2009-02-16 21:05:13 -06: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
|
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
|
67471dedac
|
Forgot to emit a ##branch after ##fixnum-{add,sub,mul} ops; tools.annotations test faild
|
2008-11-29 00:36:43 -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 |
sheeple
|
d2ec46e38f
|
PowerPC backend almost functional; some new compiler unit tests added,
better compilation of 'f eq?'; f becomes an immediate operand
move aux-offset to compiler.constants
|
2008-11-06 06:27:27 -06:00 |
Slava Pestov
|
3834eaeb05
|
Don't generate GC checks if the allocation instruction is optimized out
|
2008-11-02 01:50:48 -06:00 |
Slava Pestov
|
73d01452cb
|
Replace ##gc with a gc flag in the basic block
|
2008-10-22 18:38:30 -05:00 |
Slava Pestov
|
1b06ab1b39
|
Fixing various bugs
|
2008-10-21 23:17:32 -05:00 |
Slava Pestov
|
94a2bfa2ea
|
Working on comparison operations, clearing out remaining dead wood
|
2008-10-21 03:20:48 -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 |