791fbe4003 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix case where a register can be made available for only a part of a live interval's lifetime, but there are no more usages after the split location. This case never came up until global stack analysis, at which point it started to be exercised on x86-32  
							
							
							
						 
						
							2009-07-30 02:13:30 -05:00  
				
					
						
							
							
								 
						
							
							
								ae67de6f90 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix fencepost error in spill insertion  
							
							
							
						 
						
							2009-07-10 03:58:51 -05:00  
				
					
						
							
							
								 
						
							
							
								dea872c7e3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic  
							
							
							
						 
						
							2009-07-10 00:25:46 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								5a64290386 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm  
							
							
							
						 
						
							2009-07-09 00:20:03 -05:00  
				
					
						
							
							
								 
						
							
							
								4507bdcbc0 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: code cleanups  
							
							
							
						 
						
							2009-07-08 23:28:28 -05:00  
				
					
						
							
							
								 
						
							
							
								c20e6c290f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies  
							
							
							
						 
						
							2009-07-08 23:07:06 -05:00  
				
					
						
							
							
								 
						
							
							
								e2044602aa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: debugging spilling, add more assertions  
							
							
							
						 
						
							2009-07-07 13:01:27 -05:00  
				
					
						
							
							
								 
						
							
							
								43c873f00a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: code cleanup  
							
							
							
						 
						
							2009-07-07 03:45:27 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								4402d8652c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: minor fixes  
							
							
							
						 
						
							2009-07-05 22:51:53 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								e6b1c21590 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix spilling  
							
							
							
						 
						
							2009-07-01 22:37:27 -05:00  
				
					
						
							
							
								 
						
							
							
								a19f22ec82 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: debugging spilling and resolve pass  
							
							
							
						 
						
							2009-07-01 17:41:07 -05:00  
				
					
						
							
							
								 
						
							
							
								578b0126fc 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: compute-free-pos was broken in the case where more than one inactive interval had the same physical register assigned  
							
							
							
						 
						
							2009-06-30 16:07:58 -05:00  
				
					
						
							
							
								 
						
							
							
								c53aca6016 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix coalescing to take lifetime holes into account  
							
							
							
						 
						
							2009-06-23 21:32:51 -05:00  
				
					
						
							
							
								 
						
							
							
								5c912504d7 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: untangle add-active/delete-active/add-handled calls in spilling, replace 'sort-values last' with 'alist-max' in compiler.utilities  
							
							
							
						 
						
							2009-06-19 18:28:30 -05:00  
				
					
						
							
							
								 
						
							
							
								2f15ac3c8f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Fix a couple of bugs  
							
							
							
						 
						
							2009-06-19 03:42:42 -05:00  
				
					
						
							
							
								 
						
							
							
								1f5f8393c3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Further progress on inactive interval handling  
							
							
							
						 
						
							2009-06-17 15:27:20 -05:00  
				
					
						
							
							
								 
						
							
							
								64f93e41a9 
								
							
								 
							
						 
						
							
							
								
								Various linear scan fixes  
							
							... 
							
							
							
							insert spill before reload to fix x86-32 regression
inactive splitting: if all inactive intervals' registers are in use, don't fail
fix stack analysis tests 
							
						 
						
							2009-06-13 17:35:40 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								70b75b8dea 
								
							
								 
							
						 
						
							
							
								
								Linear scan: implement live range intersection  
							
							
							
						 
						
							2009-06-06 01:04:12 -05:00  
				
					
						
							
							
								 
						
							
							
								04c72d0a72 
								
							
								 
							
						 
						
							
							
								
								Linear scan: correctly compute live spill slots  
							
							
							
						 
						
							2009-06-05 18:06:47 -05:00  
				
					
						
							
							
								 
						
							
							
								81b2a39070 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: re-do interval splitting to operate on live ranges; add inactive set processing  
							
							
							
						 
						
							2009-06-04 18:53:02 -05:00  
				
					
						
							
							
								 
						
							
							
								37e278ed02 
								
							
								 
							
						 
						
							
							
								
								Use [ ] [ ] map-reduce instead of unclip [ ] reduce  
							
							
							
						 
						
							2009-04-06 17:50:54 -05:00  
				
					
						
							
							
								 
						
							
							
								421ee726b8 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into new_ui  
							
							
							
						 
						
							2009-02-16 21:22:12 -06:00  
				
					
						
							
							
								 
						
							
							
								6b25e99470 
								
							
								 
							
						 
						
							
							
								
								Add summary for heaps more vocabs  
							
							
							
						 
						
							2009-02-16 21:05:13 -06:00  
				
					
						
							
							
								 
						
							
							
								669548e62e 
								
							
								 
							
						 
						
							
							
								
								Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary  
							
							
							
						 
						
							2009-02-02 13:43:54 -06:00  
				
					
						
							
							
								 
						
							
							
								1af3b8ed65 
								
							
								 
							
						 
						
							
							
								
								If a register is spilled and the reload location is also a copy, we chicken out and don't coalesce. This is suboptimal but it's not clear to me how to implement it cleanly, and SSA graph coloring will solve this problem eventually anyway  
							
							
							
						 
						
							2008-11-04 00:32:56 -06:00  
				
					
						
							
							
								 
						
							
							
								8df1aba71d 
								
							
								 
							
						 
						
							
							
								
								Coalescing  
							
							
							
						 
						
							2008-11-02 01:49:57 -06:00  
				
					
						
							
							
								 
						
							
							
								14d8696f40 
								
							
								 
							
						 
						
							
							
								
								Oops, don't mix register classes in active set  
							
							
							
						 
						
							2008-10-19 03:34:42 -05:00  
				
					
						
							
							
								 
						
							
							
								c0d89b061e 
								
							
								 
							
						 
						
							
							
								
								Fixing register allocator prspilling  
							
							
							
						 
						
							2008-10-19 01:10:21 -05:00  
				
					
						
							
							
								 
						
							
							
								cf46a832e7 
								
							
								 
							
						 
						
							
							
								
								Debugging register allocator and inline allocation  
							
							
							
						 
						
							2008-10-08 23:42:53 -05:00  
				
					
						
							
							
								 
						
							
							
								7b6d9c4c4f 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							
							
						 
						
							2008-10-07 20:00:38 -05:00  
				
					
						
							
							
								 
						
							
							
								f436fd0c0f 
								
							
								 
							
						 
						
							
							
								
								Merging in new codegen  
							
							
							
						 
						
							2008-10-07 16:16:50 -05:00