Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								f147bd4404 
								
							
								 
							
						 
						
							
							
								
								VM: uppercasing gc_op  
							
							 
							
							
							
						 
						
							2016-10-19 09:09:32 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Alexander Iljin
							
						 
						
							 
							
							
							
								
							
								0d57734dab 
								
							
								 
							
						 
						
							
							
								
								vm: replace block comments /**/ with line comments //  
							
							 
							
							
							
						 
						
							2016-09-09 05:47:52 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								f629a95b03 
								
							
								 
							
						 
						
							
							
								
								VM: moving collector methods to slot_visitor methods  
							
							 
							
							... 
							
							
							
							collector::trace_cards moved to slot_visitor::visit_cards and
collector::trace_code_heap_roots moved to
slot_visitor::visit_code_heap_roots. Both those methods are pointer visitors 
							
						 
						
							2016-05-04 00:32:17 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								58ad5fb4ce 
								
							
								 
							
						 
						
							
							
								
								VM: all the started_<blah>() replaced with reset_timer()  
							
							 
							
							
							
						 
						
							2016-04-24 15:21:17 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								a23bb8cf16 
								
							
								 
							
						 
						
							
							
								
								VM: nr of code blocks scanned always = points_to_<gen>.size()  
							
							 
							
							
							
						 
						
							2016-04-22 12:01:26 +02:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								5d7fb5da60 
								
							
								 
							
						 
						
							
							
								
								VM: smaller style-fixes, like removing redundant else clauses and this prefixes  
							
							 
							
							
							
						 
						
							2015-08-14 20:19:55 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								3887b58c02 
								
							
								 
							
						 
						
							
							
								
								VM: cleanups, like removing redundant paranthesis and removing method  
							
							 
							
							... 
							
							
							
							declarations that doesn't exist 
							
						 
						
							2015-05-09 20:04:22 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								0a6486ef78 
								
							
								 
							
						 
						
							
							
								
								VM: the aging_policy and nursery_policy classes are so small that they  
							
							 
							
							... 
							
							
							
							can be in the same cpp file with the methods that use them 
							
						 
						
							2015-05-09 20:04:21 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								e4bb3058e0 
								
							
								 
							
						 
						
							
							
								
								VM: the copying_collector only contained one method, so it can easily be  
							
							 
							
							... 
							
							
							
							merged with its base class 
							
						 
						
							2015-05-09 20:04:21 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								685a795aa0 
								
							
								 
							
						 
						
							
							
								
								VM: to_tenured_collector isn't needed, it's just a normal collector instance  
							
							 
							
							
							
						 
						
							2015-05-09 20:04:21 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								a43a455990 
								
							
								 
							
						 
						
							
							
								
								VM: the unmarker classes are not needed, easier to just send the unmask pattern to the trace_cards function directly  
							
							 
							
							
							
						 
						
							2015-02-28 14:14:30 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								b5a206c587 
								
							
								 
							
						 
						
							
							
								
								VM: new function visit_mark_stack() to factor out the mark stack iteration  
							
							 
							
							
							
						 
						
							2015-02-28 14:14:29 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								d2aea0f606 
								
							
								 
							
						 
						
							
							
								
								VM: replaced the reset_generation() generic method with one method for each generation  
							
							 
							
							
							
						 
						
							2015-01-15 09:29:14 +00:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								93134b949f 
								
							
								 
							
						 
						
							
							
								
								VM: the aging_collector and nursery_collector classes aren't needed because they are just simple instatiations of copying_collector  
							
							 
							
							
							
						 
						
							2014-12-04 10:23:33 -08:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								7b1b1eef23 
								
							
								 
							
						 
						
							
							
								
								VM: Remove unnecessary _ suffix in constructors  
							
							 
							
							
							
						 
						
							2013-05-12 23:20:43 -04:00  
						
					 
				
					
						
							
							
								 
								Erik Charlebois
							
						 
						
							 
							
							
							
								
							
								ee9fd64b69 
								
							
								 
							
						 
						
							
							
								
								VM: Refactor aging_collector to Factor style  
							
							 
							
							
							
						 
						
							2013-05-12 13:24:40 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e96404327e 
								
							
								 
							
						 
						
							
							
								
								Get optimizing compiler working without global register variables in VM  
							
							 
							
							
							
						 
						
							2009-12-22 15:42:49 +13:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								001a3f2847 
								
							
								 
							
						 
						
							
							
								
								vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand  
							
							 
							
							
							
						 
						
							2009-11-23 19:17:12 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b28619ce2f 
								
							
								 
							
						 
						
							
							
								
								vm: minor GC traces embedded pointers  
							
							 
							
							
							
						 
						
							2009-11-22 13:37:39 -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
							
						 
						
							 
							
							
							
								
							
								6f7607eed7 
								
							
								 
							
						 
						
							
							
								
								vm: clean up card unmarking  
							
							 
							
							
							
						 
						
							2009-10-30 03:15:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								91cec17e52 
								
							
								 
							
						 
						
							
							
								
								vm: get GC events working, -verbosegc switch now produces more info  
							
							 
							
							
							
						 
						
							2009-10-26 23:57:26 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e793a72060 
								
							
								 
							
						 
						
							
							
								
								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
							
						 
						
							 
							
							
							
								
							
								af855b7fa9 
								
							
								 
							
						 
						
							
							
								
								vm: debugging mark-sweep  
							
							 
							
							
							
						 
						
							2009-10-21 19:41:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								814f6371d6 
								
							
								 
							
						 
						
							
							
								
								vm: mark sweep gc for tenured space work in progress  
							
							 
							
							
							
						 
						
							2009-10-20 22:20:49 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d22d5466fc 
								
							
								 
							
						 
						
							
							
								
								vm: move factor_vm::untagged_object_size() to object::size()  
							
							 
							
							
							
						 
						
							2009-10-20 13:13:39 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8ef0d411ac 
								
							
								 
							
						 
						
							
							
								
								vm: cleanup  
							
							 
							
							
							
						 
						
							2009-10-19 00:16:32 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0a3d08bc52 
								
							
								 
							
						 
						
							
							
								
								vm: make the code nice and pretty  
							
							 
							
							
							
						 
						
							2009-10-16 02:55:02 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								70dcecf61a 
								
							
								 
							
						 
						
							
							
								
								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
							
						 
						
							 
							
							
							
								
							
								45eb68fa38 
								
							
								 
							
						 
						
							
							
								
								vm: during tenuring stage of aging collection, if tenured space fills up, it would attempt a to_tenured collection. this will succeed if all roots were tenured. however, this is unsound, because there's now an untraced segment of tenured space. fix: if tenuring fails, go on to do a full collection instead  
							
							 
							
							
							
						 
						
							2009-10-15 05:51:11 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1796688acd 
								
							
								 
							
						 
						
							
							
								
								vm: during an aging collection, promote objects referenced from tenured directly to tenured  
							
							 
							
							
							
						 
						
							2009-10-14 06:03:52 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d34c7854cd 
								
							
								 
							
						 
						
							
							
								
								vm: simplify card marking logic, and unmark more cards during aging collections by checking if they actually contained young pointers or not  
							
							 
							
							
							
						 
						
							2009-10-09 01:37:45 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								21f55ab1a3 
								
							
								 
							
						 
						
							
							
								
								vm: more efficient code heap remembered set  
							
							 
							
							
							
						 
						
							2009-10-08 23:10:32 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								dbf0dd4a2d 
								
							
								 
							
						 
						
							
							
								
								vm: split off parts of data_gc into sub-files and clean up logic  
							
							 
							
							
							
						 
						
							2009-10-08 02:10:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6939759f46 
								
							
								 
							
						 
						
							
							
								
								vm: working on new object-oriented garbage collector  
							
							 
							
							
							
						 
						
							2009-10-07 15:48:09 -05:00