John Benediktsson
							
						 
						
							 
							
							
							
								
							
								2a893a110a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: don't use slot.syntax.  
							
							 
							
							
							
						 
						
							2014-12-15 13:10:59 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								84f8f26ce8 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: doc fixing  
							
							 
							
							
							
						 
						
							2014-12-15 20:44:53 +01:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								35d00da765 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.*: maybe a fix for  #1227  
							
							 
							
							... 
							
							
							
							The register allocator pops from the unhandled-intervals and
unhandled-sync-points heaps. If two live intervals share the same
start slot, then they can be popped in either order leading to
differently generated code. So instead use one
heap (unhandled-min-heap) and both the start and end slot as the heap
key to resolve tie-breakers 
							
						 
						
							2014-12-15 20:44:53 +01:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								8a011c8366 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: more docs  
							
							 
							
							
							
						 
						
							2014-12-15 20:44:07 +01:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								c810677b47 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: refactoring to simplify init-allocator and get rid of init-unhandled  
							
							 
							
							
							
						 
						
							2014-12-15 20:44:06 +01:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							 
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								ad9d44aa2b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: simplify init-unhandled.  
							
							 
							
							
							
						 
						
							2014-12-01 22:18:15 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								d3c91bea72 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: stub docs and tests  
							
							 
							
							
							
						 
						
							2014-11-16 06:25:54 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								1eac4afc8b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: sub docs and tests  
							
							 
							
							
							
						 
						
							2014-11-16 06:25:53 -08:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								07227f22f9 
								
							
								 
							
						 
						
							
							
								
								WIP  
							
							 
							
							
							
						 
						
							2012-12-31 11:03:33 -08:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								2bd6de9a02 
								
							
								 
							
						 
						
							
							
								
								slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global  
							
							 
							
							
							
						 
						
							2011-09-19 10:03:43 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e27adb2830 
								
							
								 
							
						 
						
							
							
								
								compiler: re-architect low-level optimizer to allow more than one output value per instruction  
							
							 
							
							
							
						 
						
							2010-07-13 07:40:14 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ba7cb61133 
								
							
								 
							
						 
						
							
							
								
								Stack allocation improvements  
							
							 
							
							... 
							
							
							
							- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas 
							
						 
						
							2010-05-22 02:37:00 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f5c5d8b44c 
								
							
								 
							
						 
						
							
							
								
								compiler: remove flat machine representation and generate code directly from the CFG  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:32 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ffd1844d52 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: clean up spill slot assignment  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:24 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								43f269e4eb 
								
							
								 
							
						 
						
							
							
								
								Register allocation now uses SSA properties to coalesce values with different representations  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:20 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9b34a4a054 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:18 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								43fc230c69 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: cleanups  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:18 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								299b5b0f6c 
								
							
								 
							
						 
						
							
							
								
								filter-here -> filter!  
							
							 
							
							
							
						 
						
							2009-10-28 00:44:05 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								50f5c3d116 
								
							
								 
							
						 
						
							
							
								
								remq -> remove-eq, delq -> remove-eq!  
							
							 
							
							
							
						 
						
							2009-10-28 00:23:08 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1d872db58d 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: tweak it so that register allocation does not depend on hashing order  
							
							 
							
							
							
						 
						
							2009-09-27 23:29:48 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								705b4ab5c3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code  
							
							 
							
							
							
						 
						
							2009-09-27 19:28:20 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0db01f6d5f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan now supports partial sync-points where all registers are spilled; taking advantage of this, there are new trigonometric intrinsics which yield a 2x performance boost on benchmark.struct-arrays and a 25% boost on benchmark.partial-sums  
							
							 
							
							
							
						 
						
							2009-08-30 04:52:01 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4b7ba38aab 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case  
							
							 
							
							
							
						 
						
							2009-08-08 04:02:18 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								725280d424 
								
							
								 
							
						 
						
							
							
								
								Split off the notion of a register representation from a register class  
							
							 
							
							
							
						 
						
							2009-08-07 17:44:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								dea872c7e3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic  
							
							 
							
							
							
						 
						
							2009-07-10 00:25:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d02854b04e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: two live intervals which are coalesced will use the same spill slot  
							
							 
							
							
							
						 
						
							2009-07-09 23:12:49 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e2044602aa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: debugging spilling, add more assertions  
							
							 
							
							
							
						 
						
							2009-07-07 13:01:27 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0bcf4ce535 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Re-implement spilling, add some additional runtime assertions, simplify assignment pass since it doesn't have to track spill slots anymore; just assume a live value that's not in active or inactive is spilled  
							
							 
							
							
							
						 
						
							2009-07-07 03:28:55 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d07c0429fc 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: assign spill slots to vregs globally, so that resolve pass never has to perform a memory->memory transfer  
							
							 
							
							
							
						 
						
							2009-07-03 22:51:40 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1f5f8393c3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Further progress on inactive interval handling  
							
							 
							
							
							
						 
						
							2009-06-17 15:27:20 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d0f6a7d048 
								
							
								 
							
						 
						
							
							
								
								Split up compiler.cfg.linear-scan.allocation into a number of sub-vocabularies; start work on compiler.cfg.linear-scan.resolve; start work on inactive interval splitting  
							
							 
							
							
							
						 
						
							2009-06-11 17:55:14 -05:00