John Benediktsson
							
						 
						
							 
							
							
							
								
							
								71ef8a22c2 
								
							
								 
							
						 
						
							
							
								
								disambiguate namespaces:set and sets:set.  
							
							 
							
							
							
						 
						
							2016-03-29 17:14:42 -07:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								e0d1b14e5c 
								
							
								 
							
						 
						
							
							
								
								factor: don't need FROM: namespaces => set or namespaces:set anymore  
							
							 
							
							
							
						 
						
							2015-08-12 11:25:57 -05:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								296968580a 
								
							
								 
							
						 
						
							
							
								
								use assoc-reject instead of [ ... not ] assoc-filter.  
							
							 
							
							
							
						 
						
							2015-05-12 19:08:42 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								a17e943e88 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: refactoring so that words that doesn't modify  
							
							 
							
							... 
							
							
							
							the live-set doesnt return it
e.g it's clearer when the effect is ( live-set insn -- ) than ( live-set insn -- live-set ) that the live-set is modified in place 
							
						 
						
							2015-04-29 09:31:57 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								c876d79b9d 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: lots of more tests and some docs  
							
							 
							
							
							
						 
						
							2015-04-29 09:31:57 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							 
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								e5866dfa80 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- )  
							
							 
							
							
							
						 
						
							2014-12-11 14:30:47 +01:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								0d9316f4f9 
								
							
								 
							
						 
						
							
							
								
								Docs: more various compiler doc improvements  
							
							 
							
							
							
						 
						
							2014-11-16 06:25:55 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								63e55ac813 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: Break the infinite loop--add the base-pointer as f to start with, and replace it with the real one if there's not a circular chain.  Fixes   #22  again.  
							
							 
							
							
							
						 
						
							2013-01-01 14:47:54 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								125e4befd3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: Add parallel-copy method for lookup-base-pointer*. Adjust lookup-base-pointer* stack effect to take two parameters. Still retain stack overflows, but more correct now...  
							
							 
							
							
							
						 
						
							2013-01-01 14:16:51 -08:00  
						
					 
				
					
						
							
							
								 
								Alex Vondrak
							
						 
						
							 
							
							
							
								
							
								e90ce0865c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.ssa.destruction.leaders: break off leader-map to resolve circular dependencies (oops)  
							
							 
							
							
							
						 
						
							2012-12-31 11:20:57 -08:00  
						
					 
				
					
						
							
							
								 
								Alex Vondrak
							
						 
						
							 
							
							
							
								
							
								dcb27c51e4 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: still kill defs by leaders, but keep original  
							
							 
							
							... 
							
							
							
							vregs in the live-sets so accurate info (e.g., representations) can
still be looked up (issue #22 ) 
							
						 
						
							2012-12-31 11:05:05 -08:00  
						
					 
				
					
						
							
							
								 
								Alex Vondrak
							
						 
						
							 
							
							
							
								
							
								86a15ad47b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: look up leaders (if possible) so liveness analysis doesn't break after leaving SSA (issue  #22 )  
							
							 
							
							
							
						 
						
							2012-12-31 11:04:52 -08:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								013160df9a 
								
							
								 
							
						 
						
							
							
								
								change some "2drop 2drop" to "4drop".  
							
							 
							
							
							
						 
						
							2012-10-23 12:21:30 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								378786599d 
								
							
								 
							
						 
						
							
							
								
								Cleanup lint warnings.  
							
							 
							
							
							
						 
						
							2011-10-14 11:47:24 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6b5fffc026 
								
							
								 
							
						 
						
							
							
								
								compiler: preliminary implementation of tracking derived pointers in GC maps  
							
							 
							
							
							
						 
						
							2010-09-27 20:12:44 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ec2f42fd40 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: merge in compiler.cfg.liveness.ssa and simplify the code, since we don't compute live sets before SSA construction anymore  
							
							 
							
							
							
						 
						
							2010-09-25 14:36:58 -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
							
						 
						
							 
							
							
							
								
							
								a55c8ee671 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 6: deconcatenatize  
							
							 
							
							
							
						 
						
							2010-07-02 15:44:12 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e86f434f26 
								
							
								 
							
						 
						
							
							
								
								Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction  
							
							 
							
							
							
						 
						
							2010-06-14 19:39:46 -04:00  
						
					 
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 
						
							 
							
							
							
								
							
								d35e1eb76c 
								
							
								 
							
						 
						
							
							
								
								Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis  
							
							 
							
							
							
						 
						
							2009-08-12 23:52:29 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d913d7331f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations  
							
							 
							
							
							
						 
						
							2009-07-28 12:29:07 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1878b0dc32 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: fix liveness computation in case where instruction uses a register it defines  
							
							 
							
							
							
						 
						
							2009-07-28 06:45:02 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a32cbdd231 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.coalescing: more work done  
							
							 
							
							
							
						 
						
							2009-07-27 00:31:21 -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
							
						 
						
							 
							
							
							
								
							
								fd9a353fd6 
								
							
								 
							
						 
						
							
							
								
								Move conjoin-at from compiler.cfg.liveness to sets  
							
							 
							
							
							
						 
						
							2009-07-21 03:02:06 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6d46bf623c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: update for new ##phi node representation  
							
							 
							
							
							
						 
						
							2009-07-02 17:28:02 -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
							
						 
						
							 
							
							
							
								
							
								dbf18927b9 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.liveness: correct handling of phi nodes  
							
							 
							
							
							
						 
						
							2009-05-28 17:54:27 -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