Commit Graph

47 Commits (28ec9c3a3be7f21a4dfe463b7e06380cc0e93f26)

Author SHA1 Message Date
Slava Pestov 5bc63fc237 At the end of a compilation unit, all PICs become dead so add them to the free list immediately instead of having them waste space until the next GC.
Similarly, when a PIC transition occurs, add the old PIC to the free list immediately. 
Remove an unused function update_code_heap_roots()
2009-04-30 05:59:44 -05:00
Slava Pestov 5fb5c19d61 Machine code is now stored in a byte array instead of an array for add_code_block() 2009-04-30 04:34:35 -05:00
Slava Pestov 9243316489 Debugging inline caching 2009-04-28 23:05:18 -05:00
Slava Pestov c15a4c1c5a Add new relocation type for call sites which may be replaced by ICs 2009-04-28 17:53:14 -05:00
Slava Pestov 5f6c074edd Split up types.c/h into smaller files, remove optimized slot from F_WORD struct 2009-04-28 17:26:11 -05:00
Slava Pestov 15ef4f651b Sprinkle VM source with assertions, add a missing local root to quotations.c, fix GROWABLE_ARRAY macros for GC safety 2009-04-28 00:11:09 -05:00
Slava Pestov f38d2f91f6 Words which didn't compile cannot be run at all 2009-04-20 22:05:41 -05:00
Slava Pestov 8f059e07a7 Move flags from F_CODE_BLOCK to F_BLOCK for further space savings 2009-03-19 03:49:49 -05:00
Slava Pestov 78f168e304 Remove code_length field from F_CODE_BLOCK struct, and make F_BLOCK the head of F_CODE_BLOCK to simplify other code 2009-03-19 03:45:37 -05:00
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 670d0106d1 Clean up some duplication 2009-01-24 17:42:28 -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 9ad51490af Fix GC crash with -generations=2 2008-12-09 16:26:30 -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 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 7fd0a27c0d VM no longer uses printf since format string directives are not portable between Win64 and everything else... 2008-11-18 18:21:42 -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 16b85df5db Fixes and a small optiimization 2008-07-12 22:27:28 -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 4c08b7dc81 Add zip word, better code-room primitive 2008-04-07 20:19:49 -05:00
Slava Pestov b2cb88f497 GC: allocate large objects directly into tenured space 2008-04-05 04:01:46 -05:00
Slava Pestov 4ee8a0cfa6 Better code heap 2008-02-25 20:09:52 -06:00
Slava Pestov de8b804abe Fix method redefinition bug 2008-02-17 18:38:29 -06:00
Slava Pestov 0b19589630 linkage errors don't thwart compilation anymore 2008-02-16 00:54:54 -06:00
Slava Pestov d9f7acae0f VM changes for record1 strings 2008-01-31 23:03:10 -06:00
Slava Pestov c6bc074472 Simplify code heap layout 2008-01-16 15:45:04 -05:00
Slava Pestov 952c559b52 Faster compilation of dispatch primitive 2008-01-13 17:07:59 -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 6922bded81 Speed up compile-call 2007-12-30 21:34:44 -05:00
Slava Pestov 5378c05508 Fix bootstrap 2007-12-29 22:44:25 -05:00
Slava Pestov 2b37b76d65 Working on profiler 2007-12-29 12:44:01 -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 07a4022d62 Parser, definitions, source-files refactoring work in progress 2007-12-21 21:18:24 -05:00
Slava Pestov 308cf5aef7 Listener auto-compiles; more smart recompile work in progress 2007-12-17 16:29:54 -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 2e78ce3d4a Profiler fixes 2007-10-29 01:12:27 -04: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 9d80b13932 Add sanity check 2007-10-22 03:49:19 -04:00
Slava Pestov d3ae70c53d VM cleanup 2007-10-02 17:53:05 -04:00