John Benediktsson
							
						 
						
							 
							
							
							
								
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							 
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								5fe9ce4235 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- )  
							
							 
							
							
							
						 
						
							2014-12-11 14:30:46 +01:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								8744d908b6 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: fix stack effect of compiler passes in optimize-cfg  
							
							 
							
							... 
							
							
							
							since they all modify the cfg in place, it is better if their stack
effect is ( cfg -- ) instead of ( cfg -- cfg' ) 
							
						 
						
							2014-12-11 14:30:45 +01: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
							
						 
						
							 
							
							
							
								
							
								428ba9fd0f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:28 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e90712b1ed 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: cleanup  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:26 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a141df595b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: more cleanups  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:10 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ef8094e3b3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: identify VNs with their representative vregs, eliminating the vn>vreg hash  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:10 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								edaf59bf46 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: maintain a VN to instruction mapping. This eliminates all instances of expression inspection, allowing the auto-generated expression classes to be removed  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:09 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f14f2cbdab 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: merge 'simplify' pass into 'rewrite'  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:08 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b8d556514c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: add slot addressing rewrite rule to eliminate a redundant ##add-imm from array-nth and set-array-nth  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:07 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								913b95192e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:06 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5d3a7a7362 
								
							
								 
							
						 
						
							
							
								
								Untagged fixnums work in progress  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								85a2bfab6c 
								
							
								 
							
						 
						
							
							
								
								compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax  
							
							 
							
							
							
						 
						
							2009-09-02 06:22:37 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f662e6403a 
								
							
								 
							
						 
						
							
							
								
								compiler: new inline intrinsic for <displaced-alien> where the inputs have known types; value numbering now eliminates unnecessary allocation of displaced aliens if the result is immediately unboxed again  
							
							 
							
							
							
						 
						
							2009-08-27 00:06:19 -05:00  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
								
							
								13c3fdcb5c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Fixing test failures  
							
							 
							
							
							
						 
						
							2009-07-24 06:08:07 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e0f6d89ff1 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: insert ##copy instructions for instructions whose expressions simplify. While subsequent usages are replaced with the instruction computing the simplified vreg locally, global usages may exist of the original instruction. In this case, the ##copy is not dead  
							
							 
							
							
							
						 
						
							2009-07-24 05:30:30 -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
							
						 
						
							 
							
							
							
								
							
								ebcd0dc252 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Fix regressions from recent changes  
							
							 
							
							
							
						 
						
							2009-07-14 20:43:06 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								11731f8d48 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: merge in compiler.cfg.branch-folding  
							
							 
							
							
							
						 
						
							2009-07-14 20:05:01 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2ace87370e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: more optimizations  
							
							 
							
							
							
						 
						
							2009-07-14 16:05:25 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								789d82745c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: factor out value renaming into a separate compiler.cfg.renaming vocabulary  
							
							 
							
							
							
						 
						
							2009-07-09 23:14:26 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								692b479302 
								
							
								 
							
						 
						
							
							
								
								Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass  
							
							 
							
							
							
						 
						
							2009-05-31 12:20:46 -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
							
						 
						
							 
							
							
							
								
							
								117cb78d6b 
								
							
								 
							
						 
						
							
							
								
								Fixing local optimizations  
							
							 
							
							
							
						 
						
							2009-05-27 18:58:41 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ce25e0ad8d 
								
							
								 
							
						 
						
							
							
								
								New local-optimization combinator removes some boilerplate  
							
							 
							
							
							
						 
						
							2009-05-26 19:56:56 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1db81da264 
								
							
								 
							
						 
						
							
							
								
								Refactoring low-level optimizer to support stack analysis pass  
							
							 
							
							
							
						 
						
							2009-05-26 19:31:19 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								52967c5bf1 
								
							
								 
							
						 
						
							
							
								
								Improved value numbering  
							
							 
							
							
							
						 
						
							2008-10-23 02:49:26 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d723b69990 
								
							
								 
							
						 
						
							
							
								
								Value numbering  
							
							 
							
							
							
						 
						
							2008-10-22 21:59:07 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f092622fac 
								
							
								 
							
						 
						
							
							
								
								CFG IR is now pure SSA  
							
							 
							
							
							
						 
						
							2008-10-20 01:56:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c0d89b061e 
								
							
								 
							
						 
						
							
							
								
								Fixing register allocator prspilling  
							
							 
							
							
							
						 
						
							2008-10-19 01:10:21 -05:00