Commit Graph

951 Commits (11174a7ffe157cdf2f7e7b15be5c39568ed48498)

Author SHA1 Message Date
Slava Pestov 4c268f2600 vm: record compaction events correctly 2009-11-13 09:29:21 -06:00
Slava Pestov 86da8ebed9 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 cba12eae37 Invalidate inline caches used by call( and execute( when words are redefined 2009-11-12 16:09:07 -06:00
Slava Pestov 9a475570e4 Revert "Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists""
This reverts commit 81a68ebd36.
2009-11-11 19:33:50 -06:00
Slava Pestov c2b3d6b894 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 5169dddc40 Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists"
This reverts commit 9af2fa1957.
2009-11-11 05:47:22 -06:00
Slava Pestov 2c8f67851e 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 2afd7ce244 Faster identity-hashcode primitive; fast path now opencoded by the compiler 2009-11-11 02:27:19 -06:00
Slava Pestov 064c00f78d New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 4162ee2127 vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists 2009-11-10 20:19:29 -06:00
Slava Pestov cb6552ae6e vm/contexts: cleanup 2009-11-08 19:44:18 -06:00
Slava Pestov 8b52d85aed vm: minor cleanup 2009-11-08 06:08:17 -06:00
Samuel Tardieu 351e795a52 Add parentheses to prevent GCC warning 2009-11-08 02:01:48 +01:00
Slava Pestov 43e08c76fb vm: on 32-bit, the largest free block size was only 512mb, leading to weird errors if the heap grew beyond this. eliminate this limit 2009-11-06 08:44:36 -06:00
Slava Pestov 11075828e5 vm: faster data_root and <array> primitive 2009-11-06 05:30:37 -06:00
Slava Pestov eac0f9ffcf vm: report true size of mark stack 2009-11-06 04:15:55 -06:00
Slava Pestov c512013220 vm: fix crash if all-instances primitive triggers a GC 2009-11-06 01:41:11 -06:00
Slava Pestov 84e191704e vm: fix crash in profiler 2009-11-06 01:22:53 -06:00
Slava Pestov e2107166ff 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 b011295300 vm: fix 'become' when aging space is empty 2009-11-05 23:53:53 -06:00
Slava Pestov c08d325132 Remove unused error from VM 2009-11-05 21:52:31 -06:00
Slava Pestov 4061951d1c 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 18a2ce1f8c vm: remove some dead code 2009-11-05 19:32:26 -06:00
Slava Pestov 22c717616c vm: speed up some bit twiddling on 32-bit 2009-11-05 19:29:27 -06:00
Slava Pestov 72ab6ec548 vm: rewrite 'become' primitive so that it uses a slot visitor instead of GC 2009-11-05 19:03:51 -06:00
Slava Pestov 47df580081 tools.time: overhaul 2009-11-05 01:07:59 -06:00
Slava Pestov 2b1a26228b Align stack pointer on non-Mac OS X x86-32 platforms, and use aligned loads/stores for SIMD values 2009-11-03 23:51:44 -06:00
Slava Pestov e1c365e69a vm: fix issue with unnecessary heap growth 2009-11-03 22:25:22 -06:00
Slava Pestov 9ffb01a9bd vm: fix fixnum* overflow case for 4-bit tags 2009-11-03 21:40:47 -06:00
Slava Pestov ed3ab1335e vm: minor fixes after code review 2009-11-03 04:56:58 -06:00
Slava Pestov 2c0531b015 vm: faster immediate_p() 2009-11-02 20:21:21 -06:00
Slava Pestov 3b767c4d08 vm: remove debug messages 2009-11-02 18:24:04 -06:00
Slava Pestov 68217016d0 vm: add two missing files 2009-11-02 18:11:12 -06:00
Slava Pestov 6c2c87758a 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 e4ad642134 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 7e17c3077c vm: new megamorphic hashcode algorithm improves bootstrap speed 2009-11-02 01:37:58 -06:00
Slava Pestov 94e9230ba3 vm: promote objects referenced from compiled code blocks directly to tenured in an aging collection 2009-11-01 23:14:34 -06:00
Slava Pestov b2d96e5ef1 vm: remove debug messages 2009-11-01 20:34:54 -06:00
Slava Pestov e28580dd0f vm: faster sweep algorithm 2009-11-01 20:24:25 -06:00
Slava Pestov 882daae06c vm: more sweep phase optimizations 2009-11-01 04:40:15 -06:00
Slava Pestov 5ae40e26ee vm: remove promotion strategy, clean up compaction code 2009-11-01 03:47:09 -06:00
Slava Pestov 7cbaf3e0a3 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 b2ba465bcd Merge optimizations from master branch 2009-10-31 03:02:19 -05:00
Slava Pestov b202371d62 vm: faster tuple allocation primitives 2009-10-31 02:58:00 -05:00
Slava Pestov d33d7728a0 vm: fix compile error on non-Mac OS X platforms 2009-10-31 02:36:46 -05:00
Slava Pestov 793d0606f6 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 6f7607eed7 vm: clean up card unmarking 2009-10-30 03:15:50 -05:00
Slava Pestov 5536003cf8 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 a1aac42786 vm: clean up gc events, remove -verbosegc switch, fix compaction bug 2009-10-27 21:31:28 -05:00
Slava Pestov a7b55e7068 vm: use STL in free list, makes finding largest contiguous free block slightly faster 2009-10-27 18:22:08 -05:00