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