Commit Graph

39 Commits (1f273a852a2dd53eca1434e9926a9adc696273c1)

Author SHA1 Message Date
Slava Pestov ed1a2855b5 Big code GC refactoring
- Move code block-specific parts of code_gc.c to code_heap.c
- code_gc.c is now a generic malloc-style heap
- New code_block.c to split up large code_heap.c
- Clean up relocation code and remove some duplication
- Fix problems with code heap not being updated properly with uninterned words (bug re
ported by doublec)
- Remove boolean parameter from modify-code-heap primitive
- Less unnecessary fixup speeds up bootstrap slightly
2009-01-24 20:13:17 -06:00
Slava Pestov 32bb531621 Move literal tables out of code heap, instead each code block holds a reference to the literal table 2009-01-24 17:01:01 -06:00
Slava Pestov a8d1459c08 Rename compiled slot of words to optimized, to reflect what it really means (all words are compiled) 2009-01-23 00:37:02 -06:00
Slava Pestov 833d9f9c0b Fix quotation pooling 2008-12-08 21:24:45 -06:00
slava fbc0f33c86 The deploy tool would coalesce equal quotations into one. This created a problem
for the non-optimizing compiler because if the new 'leader' quotation was not
compiled but some of the ones that it replaces were, then calls to the quotation
from contexts where they have to be compiled (eg, compiled if and dip) would no
longer work. Add a `jit-compile' primitive to compile quotations, and call it
as appropriate in `compress-quotations`.
2008-11-24 15:59:27 -06:00
Slava Pestov a4282139dc Add comments explaining recent changes 2008-11-24 09:27:15 -06:00
Slava Pestov ab689c098b Clean up direct literal code and make a first attempt at PowerPC support 2008-11-24 08:16:14 -06:00
Slava Pestov 2aaf860f47 Experimental optimizations 2008-11-24 06:40:51 -06:00
Slava Pestov 8663ca2982 Fix VM for PowerPC 2008-11-24 02:03:01 -06:00
Slava Pestov d86524f4bc Non-optimizing compiler now compiles dip, 2dip, 3dip, if, with direct branches instead of indirect branches. 8% bootstrap time improvement on Core Duo 2 2008-11-24 00:23:17 -06:00
Slava Pestov 1d6e389d18 Fixing walker, adding traceback tests 2008-11-23 21:40:54 -06:00
Slava Pestov a4d9cdfeb3 Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov cfa82cb474 New calling convention for VM primitives:
instead of the Factor side passing the stack pointer as the first parameter, and having the VM save it to stack_chain->top, we instead have the Factor side save it. Eliminates a lot of crud in the VM
2008-11-13 03:20:34 -06:00
Slava Pestov aff81d80e7 Fix walker 2008-07-13 02:29:59 -05:00
Slava Pestov 16b85df5db Fixes and a small optiimization 2008-07-12 22:27:28 -05:00
Slava Pestov 380891943c Better comments 2008-07-11 17:38:53 -05:00
Slava Pestov a876005c98 Clean up non optimizing compiler, rewrite more primitives in assembly 2008-07-11 17:25:46 -05:00
Slava Pestov 70e370f69d Fix walker 2008-07-07 19:26:58 -05:00
Slava Pestov a8808b7087 Non-optimizing compiler now inlow inlines some primitives, this improves bootstrap time 2008-07-07 10:39:04 -05:00
Slava Pestov 727cfcba43 Move relocation info out of the code heap and into the data heap 2008-05-30 01:31:05 -05:00
Slava Pestov 98d8621ac1 First class compose, curry is now a tuple class 2008-02-11 13:50:29 -06:00
Slava Pestov c6bc074472 Simplify code heap layout 2008-01-16 15:45:04 -05:00
Slava Pestov 028e0075d8 PowerPC support work in progress 2008-01-09 01:33:40 -05:00
Slava Pestov 928c68b506 JIT improvements; simpler 'current XT' relocation logic 2008-01-07 17:14:09 -04:00
Slava Pestov b7327b6228 Redo the profiler 2008-01-02 20:36:36 -04:00
Slava Pestov af41a0efe7 Re-implement callstack>array 2007-12-30 16:54:01 -05:00
Slava Pestov 93e1bdfcd7 Simplify JIT, fix tuples unit tests 2007-12-26 20:02:41 -05:00
Slava Pestov f91ec96425 Fix code heap compaction and clean up VM a bit 2007-12-26 17:14:33 -05:00
Slava Pestov 4bb2a43a10 Early binding JIT work in progress 2007-12-26 02:33:49 -05:00
Slava Pestov c09af2f2c6 Improved JIT compiler design; better REGISTER_ROOT/UNREGISTER_ROOT stuff 2007-12-26 01:45:16 -05:00
Slava Pestov 3d784c7927 Simplify quotation calling convention: no need to pass XT 2007-12-25 23:40:36 -05:00
Slava Pestov 3c5b2073ef Fix save-image-and-exit, clean up compiler a bit 2007-12-16 18:42:56 -05:00
Slava Pestov c9646d20c5 Working on smarter recompilation 2007-12-16 15:17:28 -05:00
Slava Pestov fbcd41be39 Clean up 2007-12-12 00:32:43 -05:00
Slava Pestov 1f2001143c Add type check to curry primitive 2007-11-25 15:27:11 -05:00
Slava Pestov ef22d57ef6 Improved profiler doesn't require all words to be recompiled to enable/disable 2007-10-28 04:33:36 -04:00
Slava Pestov 5c58a50ac8 VM portion of improved deployment 2007-10-09 02:08:20 -04:00
Slava Pestov fab1453bfc Re-implemented single stepper for new evaluation model 2007-10-03 16:56:49 -04:00
Slava Pestov d3ae70c53d VM cleanup 2007-10-02 17:53:05 -04:00