Joe Groff
|
c06be95816
|
compiler: no spurious safepoint at start of loops
|
2011-10-27 21:14:48 -07:00 |
Joe Groff
|
e449fef4e3
|
compiler.cfg.builder: safepoint loops and epilogs
|
2011-10-27 21:14:46 -07:00 |
Slava Pestov
|
a55c8ee671
|
FFI rewrite part 6: deconcatenatize
|
2010-07-02 15:44:12 -04:00 |
Slava Pestov
|
0cde5c8fb5
|
Eliminate compiler.alien
|
2010-05-11 23:24:47 -04:00 |
Slava Pestov
|
c211c3e84e
|
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
|
2010-05-09 21:36:52 -04:00 |
Slava Pestov
|
e763c74096
|
More FFI cleanups
|
2010-05-05 01:13:45 -04:00 |
Slava Pestov
|
82fb1879af
|
Debugging untagged fixnums
|
2010-05-03 17:34:02 -04:00 |
Slava Pestov
|
8f0739197e
|
compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch
|
2010-04-18 21:42:45 -05:00 |
Slava Pestov
|
2aaf24412a
|
compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search
|
2010-04-18 21:42:45 -05:00 |
Slava Pestov
|
235f3238f5
|
Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S
|
2010-01-07 17:39:22 +13:00 |
Slava Pestov
|
ba5b90e063
|
Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
|
2010-01-03 01:11:51 +13:00 |
Joe Groff
|
67cc1c01be
|
Merge branch 'master' into simd-cleanup
|
2009-11-26 16:14:46 -08:00 |
Joe Groff
|
65d8060075
|
fix simd intrinsic compilation
|
2009-11-24 11:37:28 -08:00 |
Slava Pestov
|
0612bc6177
|
Factor source files should not be executable
|
2009-11-21 17:50:43 -06:00 |
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
|
18be7e1f37
|
cpu.x86.32: only create 16-byte parameter area if the word calls into the VM
|
2009-10-20 05:02:42 -05:00 |
Slava Pestov
|
1e7893b6ce
|
compiler: FFI is now slightly more efficient when unboxing parameters, only changes data stack height once
|
2009-10-20 04:31:48 -05:00 |
Joe Groff
|
4d16c569f0
|
struct classes now make their own C type without help from alien.structs. remove alien.structs dependencies from everywhere outside of alien and compiler, and have the FFI handle both alien.structs and classes.struct c-types
|
2009-09-15 17:38:49 -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
|
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
|
4b7ba38aab
|
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
|
2009-08-08 04:02:18 -05:00 |
Slava Pestov
|
d20d335447
|
compiler.cfg.stacks: more accurate deconcatenatization inserts fewer partially redundant ##peeks. 11% improvement on benchmark.beust2, 2% reduction in ##peek and ##replace instructions inserted
|
2009-08-03 07:08:28 -05:00 |
Slava Pestov
|
d10993b837
|
compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction
|
2009-07-28 09:34:08 -05:00 |
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 |