Commit Graph

37 Commits (faa9b4ea3fea968d16fb51dda0d9d373101a9007)

Author SHA1 Message Date
Joe Groff 00967b4931 vm: iterate_callstack_reversed in slot_visitor 2011-12-14 09:56:47 -08:00
Joe Groff 8f8873c859 vm: reinitialize all_blocks from scratch after gc
Faster and more likely to be correct than trying to fixup the existing set
2011-12-12 19:05:48 -08:00
Joe Groff 55115d7971 vm: initialize all_blocks map from image
um, code blocks from the image need to go in the set too
2011-11-23 11:11:26 -08:00
Joe Groff 0d8cf08ea0 vm: keep a set of all code_blocks in the code_heap
This way looking up code blocks by return address is an O(log n) set lookup rather than an O(n) linear scan.
2011-11-23 11:11:26 -08:00
Joe Groff 89d5236980 vm: walk code roots from sample callstacks 2011-11-02 13:23:08 -07:00
Slava Pestov 22ad7c4fcd vm: fix high_fragmentation_p assertion 2011-09-05 23:30:28 -07:00
Slava Pestov f4c0ffb143 Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily 2011-09-05 16:28:00 -07:00
Slava Pestov 09c74bda0b vm: don't call nano_count() from the GC at all, unless GC event recording is on 2010-09-04 13:21:45 -07:00
Slava Pestov 7e2d888767 vm: fix RT_HERE fixup on image load 2010-06-11 21:54:47 -04:00
Slava Pestov a08295d9b7 GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
Slava Pestov 0165daf56c Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types 2010-01-18 20:54:00 +13:00
Slava Pestov edb1346239 vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile. 2010-01-17 03:43:22 +13:00
Slava Pestov 2d8b44e5b7 vm: code cleanup 2009-12-26 15:24:21 +13:00
Slava Pestov 31a260b74c vm: big overhaul of non-optimizing compiler
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Slava Pestov daf47a539c RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further 2009-12-02 04:55:48 -06:00
Slava Pestov 912b1265fc Split literal table into literal and parameter tables, literal table is discarded after code block initialization 2009-12-02 04:28:15 -06:00
Slava Pestov c04c15c52d vm: update callback stub machine code at the end of compaction to prevent it from seeing an inconsistent data stack 2009-12-02 03:31:57 -06:00
Slava Pestov 8a25e8365a vm: Clean up more code duplication and rename a few methods 2009-12-02 01:17:30 -06:00
Slava Pestov ca7bca6738 Big cleanup of literal table and relocation-related code
- new way to iterate over instruction_operands cleans up relocation code
- move some methods out of the VM class to clean up code
- if debugging is on, die earlier if attempting to allocate inside GC
- callback heap entries are now code_blocks
- replace block_granularity with data_alignment
2009-12-02 00:48:41 -06:00
Slava Pestov 8d41693ee3 vm: growing heap no longer uses relocate_code_block() 2009-11-28 19:48:26 -06:00
Slava Pestov 3789e75e0c vm: compaction now updates the needs_fixup set 2009-11-24 19:29:59 -06:00
Slava Pestov bfa5340ea8 vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand 2009-11-23 19:17:12 -06:00
Slava Pestov 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 065dac3736 vm: simpler object space implementation. begin-scan/next-object/end-scan primitives replaced by a single all-instances primitive 2009-11-05 21:49:03 -06:00
Slava Pestov b341527428 vm: rename gc_root to data_root, add code_root to fix a problem where code blocks would move underneath the PIC compiler if PIC compiler allocated enough 2009-11-02 18:10:34 -06:00
Slava Pestov f68319fef3 vm: more sweep phase optimizations 2009-11-01 04:40:15 -06:00
Slava Pestov c7430d74c2 vm: remove promotion strategy, clean up compaction code 2009-11-01 03:47:09 -06:00
Slava Pestov 99e3b9c59c vm: don't do a data compaction when growing the data heap, speeds up data heap grow by a bit 2009-10-31 21:06:34 -05:00
Slava Pestov 503137b1b9 vm: clean up gc events, remove -verbosegc switch, fix compaction bug 2009-10-27 21:31:28 -05:00
Slava Pestov 772c5483dc vm: get GC events working, -verbosegc switch now produces more info 2009-10-26 23:57:26 -05:00
Slava Pestov d574aeb70a vm: make compaction its own gc_op 2009-10-25 14:02:14 -05:00
Slava Pestov b064946b11 vm: debugging compaction 2009-10-25 08:07:21 -05:00
Slava Pestov 79c99be6c6 vm: fix compaction when callback heap has entries in it 2009-10-25 00:06:45 -05:00
Slava Pestov f5a6a3421c vm: got data heap compaction working 2009-10-24 23:51:14 -05:00
Slava Pestov 7142274aef vm: combine heap_block and code_block structs, eliminates some boilerplate 2009-10-24 21:33:31 -05:00
Slava Pestov 7a1f2b2d4b vm: clean up code heap visitor 2009-10-24 04:36:29 -05:00
Slava Pestov 60f3cb669a vm: data heap compaction work in progress 2009-10-24 04:18:33 -05:00