f070a47ec0 
								
							
								 
							
						 
						
							
							
								
								VM: add marking as a timed gc phase  
							
							... 
							
							
							
							I think that makes sense because most time when doing a full gc is spent
marking. 
							
						 
						
							2016-10-20 07:46:21 +02:00  
				
					
						
							
							
								 
						
							
							
								752c895d23 
								
							
								 
							
						 
						
							
							
								
								VM: refactor gc_event so that the phase times are stored in an array  
							
							... 
							
							
							
							So that you don't need a new method for each gc phase to time. 
							
						 
						
							2016-10-20 00:34:18 +02:00  
				
					
						
							
							
								 
						
							
							
								f147bd4404 
								
							
								 
							
						 
						
							
							
								
								VM: uppercasing gc_op  
							
							
							
						 
						
							2016-10-19 09:09:32 +02:00  
				
					
						
							
							
								 
						
							
							
								4f6381587c 
								
							
								 
							
						 
						
							
							
								
								VM: removing update_code_roots_for_sweep()  
							
							
							
						 
						
							2016-10-19 08:12:40 +02:00  
				
					
						
							
							
								 
						
							
							
								aace892527 
								
							
								 
							
						 
						
							
							
								
								VM: rename of collect_growing_heap_op and collect_growing_heap()  
							
							... 
							
							
							
							The idea is to "make room" for collect_growing_code_heap_op and
collect_growing_code_heap() to enable code heap growth. 
							
						 
						
							2016-10-13 02:13:09 +02:00  
				
					
						
							
							
								 
						
							
							
								c02d913579 
								
							
								 
							
						 
						
							
							
								
								VM: big refactoring removing the gc_workhorse  
							
							... 
							
							
							
							Each collector were a slot_visitor containing a gc_workhorse containing
a policy class. This commit removes the gc_workhorse and the policies
and instead "inlines" the common code in the collector bodies. So there
is more code duplication, but the control flow doesn't "jump around" so
much so it is easier to understand. It also makes the nursery gc faster
because its collection code can be optimized better without the
workhorse/policy system. 
							
						 
						
							2016-09-22 13:12:59 +02:00  
				
					
						
							
							
								 
						
							
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
				
					
						
							
							
								 
						
							
							
								583fb5825b 
								
							
								 
							
						 
						
							
							
								
								VM: removes the collector class  
							
							... 
							
							
							
							The cheneys_algorithm() method can be moved to slot_visitor (because it
kind of visists objects), and then there is no need for the collector
class. 
							
						 
						
							2016-05-04 17:52:04 +02:00  
				
					
						
							
							
								 
						
							
							
								58ad5fb4ce 
								
							
								 
							
						 
						
							
							
								
								VM: all the started_<blah>() replaced with reset_timer()  
							
							
							
						 
						
							2016-04-24 15:21:17 +02:00  
				
					
						
							
							
								 
						
							
							
								beb71ce49b 
								
							
								 
							
						 
						
							
							
								
								VM: merge full_collector.hpp into full_collector.cpp  
							
							
							
						 
						
							2015-08-04 16:02:10 +02:00  
				
					
						
							
							
								 
						
							
							
								9d289e35f4 
								
							
								 
							
						 
						
							
							
								
								VM: macro FACTOR_FOR_EACH used in more places to drive iteration  
							
							
							
						 
						
							2015-06-05 02:14:49 +02:00  
				
					
						
							
							
								 
						
							
							
								b5a206c587 
								
							
								 
							
						 
						
							
							
								
								VM: new function visit_mark_stack() to factor out the mark stack iteration  
							
							
							
						 
						
							2015-02-28 14:14:29 -08:00  
				
					
						
							
							
								 
						
							
							
								5490c50217 
								
							
								 
							
						 
						
							
							
								
								VM: visit_roots and visit_contexts where always called in tandem, make a new method visit_all_roots that calls them both  
							
							
							
						 
						
							2015-02-28 14:14:29 -08:00  
				
					
						
							
							
								 
						
							
							
								8ea1eea4e1 
								
							
								 
							
						 
						
							
							
								
								VM: instead of passing around the trace_contexts_p arg, just clear the contexts in primitive_save_image_and_exit() it has the same effect but is simpler  
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								4d7bc4c169 
								
							
								 
							
						 
						
							
							
								
								VM: merge of slot_visitor and code_block_visitor  
							
							... 
							
							
							
							Looks like there is no reason for them to be separate classes and by
merging them you can simplify lots of code. 
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								d2aea0f606 
								
							
								 
							
						 
						
							
							
								
								VM: replaced the reset_generation() generic method with one method for each generation  
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								b61eaa8a16 
								
							
								 
							
						 
						
							
							
								
								VM: the full_collector class isn't needed since it is only used once  
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								693e8ad33a 
								
							
								 
							
						 
						
							
							
								
								VM: the clear_mark_bits methods are only called once -- make the calls inline instead  
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
				
					
						
							
							
								 
						
							
							
								1beac119d8 
								
							
								 
							
						 
						
							
							
								
								VM: removes the template parameter from mark_bits  
							
							... 
							
							
							
							since mark_bits only deals with arithmetic on memory addresses, it
doesn't need to be specialized so it can be untemplateized 
							
						 
						
							2015-01-15 09:29:13 +00:00  
				
					
						
							
							
								 
						
							
							
								615420fe61 
								
							
								 
							
						 
						
							
							
								
								VM: calls to visit_code_roots() replaced with visit_uninitialized_code_blocks()  
							
							
							
						 
						
							2015-01-15 09:29:13 +00:00  
				
					
						
							
							
								 
						
							
							
								8ee1f890f2 
								
							
								 
							
						 
						
							
							
								
								VM: refactoring intended to remove trace_*-methods that are just  
							
							... 
							
							
							
							simple delegations to the data/code_visitor instances 
							
						 
						
							2015-01-15 09:29:12 +00:00  
				
					
						
							
							
								 
						
							
							
								7b1b1eef23 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary _ suffix in constructors  
							
							
							
						 
						
							2013-05-12 23:20:43 -04:00  
				
					
						
							
							
								 
						
							
							
								9e2d775095 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor full_collector to Factor style  
							
							
							
						 
						
							2013-05-12 13:24:44 -04:00  
				
					
						
							
							
								 
						
							
							
								bd7e6b33f8 
								
							
								 
							
						 
						
							
							
								
								vm: erase code blocks from all_blocks during sweep  
							
							... 
							
							
							
							Fixes  #437  
						
							2011-12-13 12:28:09 -08:00  
				
					
						
							
							
								 
						
							
							
								e3e2788414 
								
							
								 
							
						 
						
							
							
								
								vm: walk code roots from sample callstacks  
							
							
							
						 
						
							2011-11-02 13:23:08 -07:00  
				
					
						
							
							
								 
						
							
							
								83b8717bad 
								
							
								 
							
						 
						
							
							
								
								Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily  
							
							
							
						 
						
							2011-09-05 16:28:00 -07:00  
				
					
						
							
							
								 
						
							
							
								2498a4d881 
								
							
								 
							
						 
						
							
							
								
								vm: don't call nano_count() from the GC at all, unless GC event recording is on  
							
							
							
						 
						
							2010-09-04 13:21:45 -07:00  
				
					
						
							
							
								 
						
							
							
								806e54630a 
								
							
								 
							
						 
						
							
							
								
								GC maps for more compact inline GC checks  
							
							
							
						 
						
							2010-06-11 20:06:00 -04:00  
				
					
						
							
							
								 
						
							
							
								d22eb40360 
								
							
								 
							
						 
						
							
							
								
								Fix spaces that crept into vm/ cpp files  
							
							
							
						 
						
							2010-02-06 01:06:26 -06:00  
				
					
						
							
							
								 
						
							
							
								942f6e0943 
								
							
								 
							
						 
						
							
							
								
								Update Win64 support  
							
							
							
						 
						
							2010-01-25 15:39:34 +13:00  
				
					
						
							
							
								 
						
							
							
								7271900e6f 
								
							
								 
							
						 
						
							
							
								
								vm: code cleanup  
							
							
							
						 
						
							2009-12-26 15:24:21 +13:00  
				
					
						
							
							
								 
						
							
							
								0068bce934 
								
							
								 
							
						 
						
							
							
								
								vm: big overhaul of non-optimizing compiler  
							
							... 
							
							
							
							- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups 
							
						 
						
							2009-12-15 07:20:09 -05:00  
				
					
						
							
							
								 
						
							
							
								344c357ef1 
								
							
								 
							
						 
						
							
							
								
								vm: grow the heap if a full collection doesn't reclaim enough space  
							
							
							
						 
						
							2009-12-05 19:03:53 -05:00  
				
					
						
							
							
								 
						
							
							
								68c09f0e93 
								
							
								 
							
						 
						
							
							
								
								Split literal table into literal and parameter tables, literal table is discarded after code block initialization  
							
							
							
						 
						
							2009-12-02 04:28:15 -06:00  
				
					
						
							
							
								 
						
							
							
								c6602bda27 
								
							
								 
							
						 
						
							
							
								
								Big cleanup of literal table and relocation-related code  
							
							... 
							
							
							
							- new way to iterate over instruction_operands cleans up relocation code
- move some methods out of the VM class to clean up code
- if debugging is on, die earlier if attempting to allocate inside GC
- callback heap entries are now code_blocks
- replace block_granularity with data_alignment 
							
						 
						
							2009-12-02 00:48:41 -06:00  
				
					
						
							
							
								 
						
							
							
								73e105bfc4 
								
							
								 
							
						 
						
							
							
								
								vm: flush icache after GC  
							
							
							
						 
						
							2009-11-24 21:36:35 -06:00  
				
					
						
							
							
								 
						
							
							
								bfd4cce364 
								
							
								 
							
						 
						
							
							
								
								vm: compaction now updates the needs_fixup set  
							
							
							
						 
						
							2009-11-24 19:29:59 -06:00  
				
					
						
							
							
								 
						
							
							
								001a3f2847 
								
							
								 
							
						 
						
							
							
								
								vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand  
							
							
							
						 
						
							2009-11-23 19:17:12 -06:00  
				
					
						
							
							
								 
						
							
							
								b28619ce2f 
								
							
								 
							
						 
						
							
							
								
								vm: minor GC traces embedded pointers  
							
							
							
						 
						
							2009-11-22 13:37:39 -06:00  
				
					
						
							
							
								 
						
							
							
								4c268f2600 
								
							
								 
							
						 
						
							
							
								
								vm: record compaction events correctly  
							
							
							
						 
						
							2009-11-13 09:29:21 -06:00  
				
					
						
							
							
								 
						
							
							
								8b52d85aed 
								
							
								 
							
						 
						
							
							
								
								vm: minor cleanup  
							
							
							
						 
						
							2009-11-08 06:08:17 -06:00  
				
					
						
							
							
								 
						
							
							
								72ab6ec548 
								
							
								 
							
						 
						
							
							
								
								vm: rewrite 'become' primitive so that it uses a slot visitor instead of GC  
							
							
							
						 
						
							2009-11-05 19:03:51 -06:00  
				
					
						
							
							
								 
						
							
							
								e1c365e69a 
								
							
								 
							
						 
						
							
							
								
								vm: fix issue with unnecessary heap growth  
							
							
							
						 
						
							2009-11-03 22:25:22 -06:00  
				
					
						
							
							
								 
						
							
							
								3b767c4d08 
								
							
								 
							
						 
						
							
							
								
								vm: remove debug messages  
							
							
							
						 
						
							2009-11-02 18:24:04 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								e28580dd0f 
								
							
								 
							
						 
						
							
							
								
								vm: faster sweep algorithm  
							
							
							
						 
						
							2009-11-01 20:24:25 -06:00  
				
					
						
							
							
								 
						
							
							
								882daae06c 
								
							
								 
							
						 
						
							
							
								
								vm: more sweep phase optimizations  
							
							
							
						 
						
							2009-11-01 04:40:15 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								91cec17e52 
								
							
								 
							
						 
						
							
							
								
								vm: get GC events working, -verbosegc switch now produces more info  
							
							
							
						 
						
							2009-10-26 23:57:26 -05:00