Commit Graph

55 Commits (c2236c0ca457ef74aeffbee84a9e13e9be6d615f)

Author SHA1 Message Date
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
Slava Pestov d3b85c14c9 Working on inline caching for tail call sites 2009-05-06 19:22:22 -05:00
Slava Pestov 0ca1d013f8 Add new RC_ABSOLUTE_PPC_2 relocation type 2009-05-05 20:56:23 -05:00
Slava Pestov 3acadbd23f Remove debug messages from VM 2009-05-05 14:27:22 -05:00
Slava Pestov ec943c2299 Change (void) to () 2009-05-05 11:33:35 -05:00
Slava Pestov bec40fd54b Store forwarding table off to the side instead of in the code block; saves one cell per code block 2009-05-05 11:07:20 -05:00
Slava Pestov 6729e70895 Some VM fixes 2009-05-04 15:11:31 -05:00
Slava Pestov 0d62ce7802 Attempt to fix gcc 4.5.0 compile error 2009-05-04 07:11:00 -05:00
Slava Pestov 7e75312b60 Fixing some build issues on Linux with GCC 4.3 2009-05-04 08:00:06 -04:00