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
bd186b6320
Eliminate 3 instructions from PIC fast path
2009-04-29 21:32:05 -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
4d10105802
Working on inline caching
2009-04-28 03:48:37 -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
bba3bdd2bd
Merge branch 'inline_caching' into jit_cleanup
2009-04-27 17:09:12 -05:00
Slava Pestov
bf0e8606a8
Merge branch 'master' into inline_caching
2009-04-26 21:26:39 -05:00
Slava Pestov
087c962f75
VM: simplify GC a bit, add GC_DEBUG compile-time flag
2009-04-26 16:05:09 -05:00
Slava Pestov
a14e5a4a3b
Better local cache
2009-04-26 08:06:37 -05:00
Slava Pestov
63fff0a832
Clean up VM's growable array implementation, and non-optimizing compiler
2009-04-26 07:00:48 -05:00
Slava Pestov
39b53817b9
Small size reduction for deployed images
2009-03-31 08:15:27 -05:00
Slava Pestov
2314af94fe
Remove redundant flush_icache() call
2009-03-29 16:38:12 -05:00
Slava Pestov
2a7848053f
Fix 64-bit build issue; relocation entries are 32-bit on all platforms
2009-03-19 23:21:32 -05:00
Slava Pestov
ae09d85d84
More compact relocation layout
2009-03-19 20:03:07 -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
c074740746
Split off data_heap.c from data_gc.c; split off write_barrier.h, local_roots.h from data_gc.h, misc other cleanups
2009-01-24 23:39:00 -06: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