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
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
7142274aef
vm: combine heap_block and code_block structs, eliminates some boilerplate
2009-10-24 21:33:31 -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
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
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
5e12356a22
vm: new mark_bits data structure replaces hashtable when compacting code heap
2009-10-19 02:21:11 -05:00
Slava Pestov
89612b7f31
vm: rename myvm and parent_vm instance variables to parent, clean up casts in primitive definitions
2009-10-18 20:31:59 -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
030d035e94
vm: code heap compaction at runtime using compact-gc primitive
2009-10-16 11:39:35 -05:00
Slava Pestov
7c126be62b
vm: simpler and more efficient code heap compaction; restructure a few things to get ready for runtime code heap compaction
2009-10-16 04:33:35 -05:00
Slava Pestov
786f6826b6
Merge branch 'reentrantvm' of git://github.com/phildawes/factor
2009-10-16 03:52:35 -05:00
Slava Pestov
78f3f0e90d
vm: don't flush instruction cache twice per code block on a major GC on PowerPC
2009-10-15 22:31:41 -05:00
Slava Pestov
bfd1f0d6d2
vm: rt-vm relocation now supports accessing a field directly
2009-10-14 19:24:23 -05:00
Phil Dawes
0b2db4018a
Removed VM_PTR macros. All builds reentrant by default
2009-10-14 19:14:57 +01:00
Slava Pestov
e89d037c3f
vm: debugging new card marking
2009-10-14 04:59:28 -05:00
Slava Pestov
10ad5cad53
Working on adding support for the new write barrier to optimized code
2009-10-14 02:06:01 -05:00
Slava Pestov
4d0ec09d9c
vm: put code block owner directly in the header, instead of as the first entry in the literal table. Reduces x86-64 image size by ~700kb, also eliminates separate 'strip' set of staging images from deploy tool
2009-10-06 06:25:07 -05:00
Slava Pestov
fa2ee8ee7a
vm: free up a cell in compiled code block headers
2009-10-06 05:52:45 -05:00
Slava Pestov
d066d46c8d
vm: add a remembered set for code blocks which may reference young literals. Improves loading time
2009-10-06 04:36:34 -05:00
Slava Pestov
1bfa4ef5ca
vm: cleanup
2009-10-06 01:42:17 -05:00
Slava Pestov
9ca96b1b3f
Merge branch 'master' into new_gc
2009-10-06 01:31:50 -05:00
Slava Pestov
2058b31b5b
vm: minor tweaks which reduce image size by ~300kb
2009-10-06 01:31:39 -05:00
Slava Pestov
d5be02d48f
vm: refactoring garbage collector
2009-10-05 22:16:08 -05:00
Slava Pestov
3887292543
Big VM cleanup
...
- Move forward declarations of 'struct factor_vm' to one place
- Rename template parameters from T and TYPE to descriptive names. New convention: CamelCase for template parameters
- Change some higher-order functions taking function pointers into templates, and define classes overriding operator(). There's a bit of new boilerplate here but its more consistent than the old mish-mash approaches
- Put GC state into a gc_state struct
- Use exceptions instead of longjmp for non-local control transfer in GC
- In code GC, instead of interleaving code block tracing with copying, add code blocks which need to be revisited to an std::set stored in the gc_state
2009-10-03 08:47:05 -05:00
Slava Pestov
aa0359f78d
Merge branch 'reentrantvm' of git://github.com/phildawes/factor
2009-10-02 03:28:21 -05:00
Slava Pestov
09aa172725
vm: fix stack alignment in primitive_inline_cache_miss
2009-10-02 03:25:18 -05:00
Phil Dawes
0ca2b9b3b2
Converted some callback fns to use member-fn pointers
2009-09-28 19:45:10 +01:00
Slava Pestov
3d196110b7
Make segment, context, data_heap, zone more object-oriented, and fix crash when calling undefined symbols
2009-09-25 21:17:20 -05:00
Slava Pestov
5195fdaeaa
vm: make heap data-type object-oriented
2009-09-25 20:32:00 -05:00
Phil Dawes
1c5329cc2e
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
134a359353
misc cleanup
2009-09-24 08:02:14 +01:00
Phil Dawes
911471c411
removed superflous whitspace lines
2009-09-24 08:02:14 +01:00
Phil Dawes
b84c10e33c
cleaning up stray vm singleton usage
2009-09-16 08:17:27 +01:00
Phil Dawes
d4f602c9e7
got debug compiles working again
2009-09-16 08:16:32 +01:00
Phil Dawes
b70e60eaea
added VM relocation type
2009-09-16 08:16:30 +01:00
Phil Dawes
abee922604
removed global functions from code_block.cpp
2009-09-16 08:16:27 +01:00
Phil Dawes
03ecc58bbf
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
d2fd7bd3e1
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
23deff22fe
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
50875c77f3
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
ebbf2151fe
added vm member to gc_root and growable arrays
2009-09-16 08:16:22 +01:00
Phil Dawes
5f66fd18e9
moved code_block functions to vm
2009-09-16 08:16:20 +01:00
Philipp Brüschweiler
18240b0219
misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644
2009-08-10 21:33:07 +02:00
Slava Pestov
096803e58f
Redo compiler.codegen.fixup and get %dispatch to work
2009-06-01 02:32:36 -05:00
Slava Pestov
64114947d2
Various improvements aimed at getting local optimization regressions fixed:
...
- Rename _gc to ##gc
- Absolute labels are now supported
- Generate _dispatch-label
2009-05-31 23:28:08 -05:00
Slava Pestov
05146c6907
Remove compiled slot from quotations since its not needed
2009-05-12 03:09:15 -05:00
Slava Pestov
92ae2f7e71
VM cleanup: replace some #defines with constants and inline functions
2009-05-08 15:05:55 -05:00
Slava Pestov
9b419aa0b1
Count megamorphic cache hits
2009-05-07 14:26:08 -05:00