992314d2de 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: new word for consuming deques slurp/replenish-deque  
							
							... 
							
							
							
							most uses of slurp-deque processes one item and pushes a sequence of
items to continue working with. it can be formalized into a
slurp/replenish-deque combinator which also reduces the amount of
variables you need to use 
							
						 
						
							2015-04-29 09:31:58 -07:00  
				
					
						
							
							
								 
						
							
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
				
					
						
							
							
								 
						
							
							
								e5866dfa80 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- )  
							
							
							
						 
						
							2014-12-11 14:30:47 +01:00  
				
					
						
							
							
								 
						
							
							
								d1032c159a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.dataflow-analysis: generic for configuring the "block skipping"  
							
							... 
							
							
							
							To accurately record uninitialized/overinitialized stack locations,
kill blocks needs to be analyzed. Now you can make it so by overriding
ignore-block?. 
							
						 
						
							2014-09-08 14:54:17 -07:00  
				
					
						
							
							
								 
						
							
							
								76580da5d5 
								
							
								 
							
						 
						
							
							
								
								Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.  
							
							... 
							
							
							
							CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes  #183 .
Fixes  #209 . 
							
						 
						
							2011-09-29 11:28:28 -07:00  
				
					
						
							
							
								 
						
							
							
								c211c3e84e 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions  
							
							
							
						 
						
							2010-05-09 21:36:52 -04:00  
				
					
						
							
							
								 
						
							
							
								5197aca215 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.dataflow-analysis: when intersecting sets, treat uninitialized sets as universal rather than empty; reduces number of stack instructions generated by 1%  
							
							
							
						 
						
							2009-08-20 18:15:41 -05:00  
				
					
						
							
							
								 
						
							
							
								d35e1eb76c 
								
							
								 
							
						 
						
							
							
								
								Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis  
							
							
							
						 
						
							2009-08-12 23:52:29 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								1e5ce41364 
								
							
								 
							
						 
						
							
							
								
								Fix bootstrap  
							
							
							
						 
						
							2009-07-22 03:26:27 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								e6a323dfaa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.dataflow-analysis: iterative dataflow analysis framework  
							
							
							
						 
						
							2009-07-22 02:06:35 -05:00