Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								d0aae5cc20 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linearization: number-blocks can set the number>> accessor  
							
							 
							
							... 
							
							
							
							instead of using the numbers dynamic variable 
							
						 
						
							2015-09-22 08:51:03 +02:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								e0d1b14e5c 
								
							
								 
							
						 
						
							
							
								
								factor: don't need FROM: namespaces => set or namespaces:set anymore  
							
							 
							
							
							
						 
						
							2015-08-12 11:25:57 -05:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								aeaed40d9c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.ssa.destruction.coalescing: new vocab to refactor and  
							
							 
							
							... 
							
							
							
							simplify the prepare-insn code in compiler.cfg.ssa.destruction 
							
						 
						
							2015-06-15 12:28:31 +02:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								b366a06c41 
								
							
								 
							
						 
						
							
							
								
								use reject instead of [ ... not ] filter.  
							
							 
							
							
							
						 
						
							2015-05-12 18:50:34 -07:00  
						
					 
				
					
						
							
							
								 
								Björn Lindqvist
							
						 
						
							 
							
							
							
								
							
								d0c1493f36 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linearization: can't use slurp/replenish-queue here because  
							
							 
							
							... 
							
							
							
							the successors need to be pushed to the back of the deque 
							
						 
						
							2015-04-29 09:32:00 -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
							
						 
						
							 
							
							
							
								
							
								74ea76a3c9 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: unlikely? slot unused, lets get rid of it  
							
							 
							
							
							
						 
						
							2015-04-29 09:31:53 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							 
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								068ddd6c7b 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup cfg passes to have stack effect ( cfg -- )  
							
							 
							
							
							
						 
						
							2014-12-11 12:48:43 -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  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								20add9544a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: cfg>insns has to go in linearization because of bootstrap circularity. Fix usings.  
							
							 
							
							
							
						 
						
							2014-11-23 22:53:27 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								7cfa9d9518 
								
							
								 
							
						 
						
							
							
								
								assocs: Make map-index-as support seq or assoc exemplars and move map-index, map-index-as to assocs because they need to use new-assoc. Make zip-index-as support assoc exemplars. Fix up docs and tests.  
							
							 
							
							... 
							
							
							
							assocs.extras: Remove zip-as and move tests to assocs. 
							
						 
						
							2014-11-08 18:18:00 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								56f1b87a6f 
								
							
								 
							
						 
						
							
							
								
								basis, extra: Use zip-index.  
							
							 
							
							
							
						 
						
							2014-11-08 00:46:30 -08:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								b8097f9221 
								
							
								 
							
						 
						
							
							
								
								compiler: cleaner use of sets.  
							
							 
							
							
							
						 
						
							2013-03-10 17:21:27 -07:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5fc9aa05b0 
								
							
								 
							
						 
						
							
							
								
								Revert "compiler.cfg: change linear ordering to place GC call blocks at the end"  
							
							 
							
							... 
							
							
							
							This reverts commit 544a288192 . 
							
						 
						
							2010-07-27 23:58:41 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8adde5360a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: change linear ordering to place GC call blocks at the end  
							
							 
							
							
							
						 
						
							2010-07-27 13:00:28 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f5c5d8b44c 
								
							
								 
							
						 
						
							
							
								
								compiler: remove flat machine representation and generate code directly from the CFG  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:32 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								82fb1879af 
								
							
								 
							
						 
						
							
							
								
								Debugging untagged fixnums  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								af57d4dfa9 
								
							
								 
							
						 
						
							
							
								
								fix ... in compiler.cfg.linearization  
							
							 
							
							
							
						 
						
							2010-03-05 14:27:58 -08:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0612bc6177 
								
							
								 
							
						 
						
							
							
								
								Factor source files should not be executable  
							
							 
							
							
							
						 
						
							2009-11-21 17:50:43 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b4e36608da 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: remove _gc instruction, it doesn't need to exist, and change GC checks to ensure that the right amount of space is available instead of blindly checking for 1Kb  
							
							 
							
							
							
						 
						
							2009-10-05 05:27:49 -05:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								f9695951a0 
								
							
								 
							
						 
						
							
							
								
								fold test-vector/branch sequences into a test-vector-branch instruction  
							
							 
							
							
							
						 
						
							2009-10-01 19:53:30 -05:00  
						
					 
				
					
						
							
							
								 
								Joe Groff
							
						 
						
							 
							
							
							
								
							
								0ea9949e51 
								
							
								 
							
						 
						
							
							
								
								split unordered and ordered float comparison intrinsics in compiler; generate only unordered comparisons for now  
							
							 
							
							
							
						 
						
							2009-09-08 17:04:26 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cc5476c823 
								
							
								 
							
						 
						
							
							
								
								_gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length  
							
							 
							
							
							
						 
						
							2009-08-09 03:08:13 -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
							
						 
						
							 
							
							
							
								
							
								725280d424 
								
							
								 
							
						 
						
							
							
								
								Split off the notion of a register representation from a register class  
							
							 
							
							
							
						 
						
							2009-08-07 17:44:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								be363d1a5b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation  
							
							 
							
							
							
						 
						
							2009-07-30 09:19:44 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cb7735ddf4 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: remove 'regs' slot from instruction tuples now that register allocation doesn't use it anymore  
							
							 
							
							
							
						 
						
							2009-07-29 06:50:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8c6b38533c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linearization: rotate loops. 2x speedup with empty times loop, 1.5x speedup on benchmark.dawes  
							
							 
							
							
							
						 
						
							2009-07-28 21:31:08 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ff81b055a5 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.utilities: add loop-entry? word  
							
							 
							
							
							
						 
						
							2009-07-28 08:47:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d947c61bd7 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.stacks: now performs online local DCN  
							
							 
							
							
							
						 
						
							2009-07-23 20:54:38 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								44bcd258f6 
								
							
								 
							
						 
						
							
							
								
								Insert _loop-entry in linearization pass instead of in CFG builder, so that optimizations don't have to worry about it  
							
							 
							
							
							
						 
						
							2009-07-22 06:05:17 -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
							
						 
						
							 
							
							
							
								
							
								e76dce8aff 
								
							
								 
							
						 
						
							
							
								
								Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint  
							
							 
							
							
							
						 
						
							2009-07-16 18:29:40 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								768e2a5148 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: split off condition codes into a comparisons sub-vocabulary  
							
							 
							
							
							
						 
						
							2009-07-13 14:42:52 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8d3a45dee2 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: clean up GC check generation to use spill-slot data type  
							
							 
							
							
							
						 
						
							2009-07-03 23:11:23 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5c6c3ecd85 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.tco: Tail call optimization moved out of compiler.cfg.builder into its own pass  
							
							 
							
							
							
						 
						
							2009-06-30 20:13:35 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2d231f066a 
								
							
								 
							
						 
						
							
							
								
								GC checks now save and restore registers  
							
							 
							
							
							
						 
						
							2009-06-02 18:23:47 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7dd08892b2 
								
							
								 
							
						 
						
							
							
								
								Fix for recent word renaming  
							
							 
							
							
							
						 
						
							2009-06-01 03:19:35 -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
							
						 
						
							 
							
							
							
								
							
								280736ab00 
								
							
								 
							
						 
						
							
							
								
								On second thought, linearization will be done after SSA destruction so live-in is accurate  
							
							 
							
							
							
						 
						
							2009-05-29 05:45:40 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								743550f19c 
								
							
								 
							
						 
						
							
							
								
								Put GC checks in the right place when linearizing, and generate _dispatch-labels  
							
							 
							
							
							
						 
						
							2009-05-29 05:36:04 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3b79d61496 
								
							
								 
							
						 
						
							
							
								
								Add a new ##allocation union to remove some code duplication  
							
							 
							
							
							
						 
						
							2009-05-27 18:55:49 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1db81da264 
								
							
								 
							
						 
						
							
							
								
								Refactoring low-level optimizer to support stack analysis pass  
							
							 
							
							
							
						 
						
							2009-05-26 19:31:19 -05:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								3c408342ef 
								
							
								 
							
						 
						
							
							
								
								renaming: contain? -> any?, deep-contains? -> deep-any?, pad-left -> pad-head, pad-right -> pad-tail, trim-left -> trim-head, trim-right -> trim-tail  
							
							 
							
							
							
						 
						
							2009-01-29 22:19:07 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0021cde743 
								
							
								 
							
						 
						
							
							
								
								Fix more compile errors  
							
							 
							
							
							
						 
						
							2008-12-15 22:21:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								daf2857d7b 
								
							
								 
							
						 
						
							
							
								
								define-inline now takes an effect parameter  
							
							 
							
							... 
							
							
							
							C: now sets the stack effect of the new word to slot names
add new basis/constants vocab; CONSTANT: foo bar is equivalent to : foo bar ; inline
(going to fold CONSTANT:, ALIAS: and qualified into core soon perhaps)
tighten the screws: inline words now need a stack declaration too
update some usages of inline words 
							
						 
						
							2008-12-15 19:44:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b1aa3697cb 
								
							
								 
							
						 
						
							
							
								
								Emit branches in the same order they're written in code  
							
							 
							
							
							
						 
						
							2008-11-13 03:52:01 -06:00