Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d0c393aa60 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.  
							
							 
							
							
							
						 
						
							2009-08-08 20:02:56 -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
							
						 
						
							 
							
							
							
								
							
								857ef94acc 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass  
							
							 
							
							
							
						 
						
							2009-07-28 07:39:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								89db2e745d 
								
							
								 
							
						 
						
							
							
								
								Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code  
							
							 
							
							
							
						 
						
							2009-07-22 06:07:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								21a012e3d7 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework  
							
							 
							
							
							
						 
						
							2009-07-22 03:08:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8ff473e42c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges  
							
							 
							
							
							
						 
						
							2009-07-12 23:00:33 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e2044602aa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: debugging spilling, add more assertions  
							
							 
							
							
							
						 
						
							2009-07-07 13:01:27 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5a78956956 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Working on resolve pass  
							
							 
							
							
							
						 
						
							2009-06-21 00:20:01 -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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								04c72d0a72 
								
							
								 
							
						 
						
							
							
								
								Linear scan: correctly compute live spill slots  
							
							 
							
							
							
						 
						
							2009-06-05 18:06:47 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e04df76f60 
								
							
								 
							
						 
						
							
							
								
								Various codegen improvements:  
							
							 
							
							... 
							
							
							
							- new-insn word to construct instructions
- cache RPO in the CFG
- re-organize low-level optimizer so that MR is built after register allocation
- register allocation now stores instruction numbers in the instructions themselves
- split defs-vregs into defs-vregs and temp-vregs 
							
						 
						
							2009-05-29 13:11:34 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c0d89b061e 
								
							
								 
							
						 
						
							
							
								
								Fixing register allocator prspilling  
							
							 
							
							
							
						 
						
							2008-10-19 01:10:21 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cf46a832e7 
								
							
								 
							
						 
						
							
							
								
								Debugging register allocator and inline allocation  
							
							 
							
							
							
						 
						
							2008-10-08 23:42:53 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7b6d9c4c4f 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							 
							
							
							
						 
						
							2008-10-07 20:00:38 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f436fd0c0f 
								
							
								 
							
						 
						
							
							
								
								Merging in new codegen  
							
							 
							
							
							
						 
						
							2008-10-07 16:16:50 -05:00