Commit Graph

200 Commits (6032e4e4d6a607b1f5fb635723ca10f39a7c9c5f)

Author SHA1 Message Date
Slava Pestov eb165a5450 Instead of bumping the definition counter every time in the VM, bump it only if stack effects changed or macros were redefined 2009-11-13 03:52:14 -06:00
Slava Pestov 06fb247b8c Invalidate inline caches used by call( and execute( when words are redefined 2009-11-12 16:09:07 -06:00
Slava Pestov 585a1a7fbe vm: fix fencepost error in write barrier on large object allocation; fixes benchmark.sort crash 2009-11-11 19:31:18 -06:00
Slava Pestov 21c165190c vm: fix GC safety issue in callers of unbox_array_size(), and change how disable-gc-events works so that it doesn't make a byte array that's too large 2009-11-11 05:21:03 -06:00
Slava Pestov 68f3087c1c Faster identity-hashcode primitive; fast path now opencoded by the compiler 2009-11-11 02:27:19 -06:00
Slava Pestov 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 2f8ba13da0 vm: faster data_root and <array> primitive 2009-11-06 05:30:37 -06:00
Slava Pestov 7c0c2fec47 vm: restructure data_roots so that its a sequence of handle/len pairs rather than just handles, use it in inline_gc() and all_instances() so that we don't run out of heap while building the object array 2009-11-06 00:54:28 -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 fa50753d40 vm: remove some dead code 2009-11-05 19:32:26 -06:00
Slava Pestov 9ae5faa14e vm: rewrite 'become' primitive so that it uses a slot visitor instead of GC 2009-11-05 19:03:51 -06:00
Slava Pestov 40a82aba19 tools.time: overhaul 2009-11-05 01:07:59 -06:00
Slava Pestov f2bf46e516 vm: fix issue with unnecessary heap growth 2009-11-03 22:25:22 -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 d65296b334 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 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 761978b662 Merge optimizations from master branch 2009-10-31 03:02:19 -05:00
Slava Pestov 984a8e6adf vm: faster tuple allocation primitives 2009-10-31 02:58:00 -05:00
Slava Pestov 2d0a36804f vm: various minor optimizations speeding up gc0 and dispatch1 benchmarks, as well as bootstrap
- make allot_object() inline, move slow case to allot_large_object()
- reduce number of conditional branches in megamorphic cache miss handler
- make unbox_array_size() inline, move slow case to unbox_array_size_slow()
- new memset_cell() function uses memset_pattern4/8() on Mac OS X
2009-10-31 02:30:48 -05:00
Slava Pestov e2beabf2be vm: new GC policy: mark sweep after N megabytes promoted, mark compact if tenured space cannot fit nursery+aging in one contiguous block. N = 32 on 32-bit and 64 on 64-bit 2009-10-30 02:26:57 -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 61c2ff4fff vm: add primitives for getting at GC events, data-room and code-room primitives now return structs instead of arrays 2009-10-27 03:32:28 -05:00
Slava Pestov 74ecd90cd6 vm: remove crummy old GC stats, split off free list code, clean up various other things 2009-10-26 22:08:35 -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 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 38df6426de vm: move binary_payload_start() method from factor_vm to object class 2009-10-24 04:27:45 -05:00
Slava Pestov 60f3cb669a vm: data heap compaction work in progress 2009-10-24 04:18:33 -05:00
Slava Pestov eefcc0fb8c vm: factor out code that visits object slots and code heap blocks into slot_visitor and code_block_visitor 2009-10-24 03:54:53 -05:00
Slava Pestov 6c561b5c4c vm: rename userenv to special_objects 2009-10-23 00:33:53 -05:00
Slava Pestov b78202e816 Merge branch 'master' into new_gc 2009-10-22 05:40:57 -05:00
Slava Pestov 28de799296 vm: fix compilation 2009-10-22 06:38:02 -04:00
Slava Pestov 5a63edf278 vm: clean up signal handling and add EXC_BAD_INSTRUCTION Mach exception handler for OS X, since signal handlers cannot change the stack pointer 2009-10-22 05:22:59 -05:00
Slava Pestov e51882c555 vm: debugging mark and sweep 2009-10-21 23:24:35 -05:00
Slava Pestov 6ee56ca93a vm: use iostreams instead of printf for debug messages, clean up a few things 2009-10-21 20:12:57 -05:00
Slava Pestov a03a817bdb vm: mark sweep gc for tenured space work in progress 2009-10-20 22:20:49 -05:00
Slava Pestov 056ccc6741 vm: split off free_list_allocator from heap class, rename zone to bump_allocator 2009-10-20 15:26:11 -05:00
Slava Pestov 1f97169c62 vm: move factor_vm::untagged_object_size() to object::size() 2009-10-20 13:13:39 -05:00
Slava Pestov f442d1949b Change data heap alignment to 16 bytes 2009-10-20 12:45:00 -05:00
Slava Pestov fad52e8420 vm: fix crash when converting a callstack to an array 2009-10-20 12:19:02 -05:00
Slava Pestov f9fc3487c6 vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits 2009-10-20 09:37:24 -05:00
Slava Pestov e68b570e2b vm: move compaction algorithm to mark_bits.hpp since it doesn't rely on properties of heaps per se 2009-10-19 03:05:20 -05:00
Slava Pestov 5e12356a22 vm: new mark_bits data structure replaces hashtable when compacting code heap 2009-10-19 02:21:11 -05:00
Slava Pestov be96d985e9 vm: working on new compaction implementation 2009-10-19 00:07:43 -05:00
Slava Pestov a977ade0af vm: fix conflict in image.cpp 2009-10-18 20:54:13 -05:00
Slava Pestov f0a1a3ce5b vm: rename F to false_object, and rename T to true_object 2009-10-18 20:26:21 -05:00
Slava Pestov 40b5c2c732 vm: code heap: move mark bits to a separate bitmap 2009-10-16 14:41:40 -05:00