Slava Pestov
|
7590ad3574
|
compiler.cfg: introduce less temporaries when building CFG
|
2009-07-24 03:37:18 -05:00 |
Slava Pestov
|
2bea107202
|
compiler.cfg.builder: fix stack effect declaration
|
2009-07-23 21:24:15 -05:00 |
Slava Pestov
|
d947c61bd7
|
compiler.cfg.stacks: now performs online local DCN
|
2009-07-23 20:54:38 -05:00 |
Slava Pestov
|
d29c275089
|
compiler.cfg.builder: Fix construction of ##return instructions from #return-recursive nodes
|
2009-07-22 19:17:21 -05:00 |
Slava Pestov
|
44bcd258f6
|
Insert _loop-entry in linearization pass instead of in CFG builder, so that optimizations don't have to worry about it
|
2009-07-22 06:05:17 -05:00 |
Slava Pestov
|
fdef772d67
|
compiler.cfg: if a block has an instruction that kills values it must be the only instruction in the block
|
2009-07-19 20:12:04 -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
|
b83f27af74
|
compiler.cfg.builder: remove some dead code
|
2009-07-17 21:52:33 -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
|
768e2a5148
|
compiler.cfg: split off condition codes into a comparisons sub-vocabulary
|
2009-07-13 14:42:52 -05:00 |
Slava Pestov
|
72b6bef19d
|
compiler.cfg.builder: emit less crap after a #terminate node
|
2009-06-30 23:03:25 -05:00 |
Slava Pestov
|
0402790001
|
compiler.cfg Remove height tracking for ##call instructions, wire in ##no-tco instruction
|
2009-06-30 21:21:46 -05:00 |
Slava Pestov
|
eca718b32d
|
compiler.cfg.builder: fix stack effect
|
2009-06-30 21:07:55 -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
|
2d231f066a
|
GC checks now save and restore registers
|
2009-06-02 18:23:47 -05:00 |
Slava Pestov
|
76d74c16af
|
Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation
|
2009-05-29 01:39:14 -05:00 |
Slava Pestov
|
a2b982e247
|
compiler.cfg.builder: don't make basic blocks after terminating calls
|
2009-05-25 19:16:36 -05:00 |
Slava Pestov
|
e58fcd485c
|
Working on global optimizations
|
2009-05-19 17:28:13 -05:00 |
Slava Pestov
|
cddb1f6133
|
Fix spelling
|
2009-02-15 04:07:05 -06:00 |
Slava Pestov
|
1c0789e616
|
Didn't generate ##branch after ##alien-invoke and ##alien-indirect
|
2008-11-29 03:46:57 -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
|
eb05dd3a12
|
Optimize a ##dispatch that is applied to the result of a ##sub-imm or ##add-imm; this eliminates an instruction from the common 1 fixnum-fast { ... } dispatch and 8 fixnum-fast { ... } dispatch code sequences appearing in generic word expansions
|
2008-11-13 04:16:08 -06:00 |
Slava Pestov
|
26f309d2ae
|
Trying to make PEGs compile faster by reducing the number of low level IR nodes: merge functionality of #>r and #r> into #shuffle, and generate 1 node instead of 3 for calls to get-local
|
2008-11-11 18:46:31 -06:00 |
sheeple
|
5b7d40d9b4
|
We need to end the basic block after the ##prologue in the dispatch branch so that the GC check can go after the prologue
|
2008-11-10 02:58:05 -06:00 |
Slava Pestov
|
4e55cd973b
|
If a #dispatch branch is a call to another word which is not an intrinsic, we avoid generating the dispatch branch and just jump to the word directly
|
2008-11-06 11:48:55 -06:00 |
Slava Pestov
|
1c1333fbe9
|
Compile not and >boolean as branchless intrinsics by having the CFG builder detect certain code patterns
|
2008-11-06 09:09:21 -06:00 |
Slava Pestov
|
59f4f25b91
|
Loop alignment: appears to be a small win for reverse-complement
|
2008-11-03 06:20:51 -06:00 |
Slava Pestov
|
445e353337
|
Optimize away useless jumps
|
2008-11-02 23:09:31 -06:00 |
Slava Pestov
|
804c6f93ea
|
Fix x86.32
|
2008-10-31 21:07:41 -05: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 |
Slava Pestov
|
37cf7d9a9c
|
Add SSA comparison instructions, fix various problems
|
2008-10-20 05:55:20 -05:00 |
Slava Pestov
|
f092622fac
|
CFG IR is now pure SSA
|
2008-10-20 01:56:28 -05:00 |
Slava Pestov
|
c0d89b061e
|
Fixing register allocator prspilling
|
2008-10-19 01:10:21 -05:00 |
Slava Pestov
|
239578353f
|
Simplifying vregs work in progress
|
2008-10-17 15:35:04 -05:00 |
Slava Pestov
|
ae3c4ae1b6
|
Fix some problems with callbacks
|
2008-10-12 23:32:14 -05:00 |
Slava Pestov
|
b2ade7f556
|
Fix callbacks and non-tailcalls to dispatch
|
2008-10-12 17:37:26 -05:00 |
Slava Pestov
|
5f93ab74e4
|
Fix #dispatch generation
|
2008-10-12 16:46:59 -05:00 |
Slava Pestov
|
3844cb62d8
|
Fix %write-barrier
|
2008-10-10 03:16:26 -05:00 |
Slava Pestov
|
3e29808f17
|
Fix loop compilation
|
2008-10-10 02:33:32 -05:00 |
Slava Pestov
|
cf46a832e7
|
Debugging register allocator and inline allocation
|
2008-10-08 23:42:53 -05:00 |
Slava Pestov
|
0e4e05d5cd
|
Debugging new codegen
|
2008-10-08 03:51:44 -05:00 |
Slava Pestov
|
7b6d9c4c4f
|
Debugging new codegen
|
2008-10-07 20:00:38 -05:00 |
Slava Pestov
|
f436fd0c0f
|
Merging in new codegen
|
2008-10-07 16:16:50 -05:00 |