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
							
						 | 
						
							
							
							
							
								
							
								11dc0a23a8
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.liveness: fix tests
							
							
							
							
							
						 | 
						
							2009-08-08 16:15:45 -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
							
						 | 
						
							
							
							
							
								
							
								e21ca289c3
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.representations: new pass to make global unboxing decisions, relies on new compiler.cfg.loop-detection pass for loop nesting information
							
							
							
							
							
						 | 
						
							2009-08-08 00:24:46 -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
							
						 | 
						
							
							
							
							
								
							
								370f4c081d
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg: convert code into two-operand form before SSA destruction; SSA destruction now operates on a relaxed SSA form where multiple defs of the same vreg are allowed, but only within a single basic block. This makes linear scan's coalescing redundant, allowing it to be removed completely
							
							
							
							
							
						 | 
						
							2009-08-05 18:57:46 -05:00 | 
						
					
				
					
						
							
							
								 
								Joe Groff
							
						 | 
						
							
							
							
							
								
							
								63e5b0d6d8
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
						 | 
						
							2009-08-02 23:16:52 -05:00 | 
						
					
				
					
						
							
							
								 
								Joe Groff
							
						 | 
						
							
							
							
							
								
							
								7c5ef08aab
								
							
								
							
						 | 
						
							
							
								
								[ [ ... ] compare ] sort => [ ... ] sort-with
							
							
							
							
							
						 | 
						
							2009-08-02 20:09:23 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								dac7edd2ab
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.def-use: remove compute-def-use word, passes have to call compute-defs or compute-uses now; compiler.cfg.ssa.liveness: don't compute dominance and def-use first since destruction does already
							
							
							
							
							
						 | 
						
							2009-08-02 19:12:32 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								df6c87d350
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
						 | 
						
							2009-08-02 18:46:27 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								32d9102feb
								
							
								
							
						 | 
						
							
							
								
								Revert "SSA destruction uses new SSA liveness checking"
							
							
							
							
							
							
							
							This reverts commit 98c7de8410. 
							
						 | 
						
							2009-08-02 18:41:31 -05:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								f7a53811c1
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
							
							
							Conflicts:
	basis/compiler/cfg/ssa/liveness/liveness-tests.factor 
							
						 | 
						
							2009-08-02 18:23:49 -04:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								765efc1a66
								
							
								
							
						 | 
						
							
							
								
								Removing phi-outs set in SSA liveness checking
							
							
							
							
							
						 | 
						
							2009-08-02 18:15:18 -04:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								777bda70dc
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
						 | 
						
							2009-08-02 17:07:06 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								8a8ebcb908
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.liveness: fix unit tests
							
							
							
							
							
						 | 
						
							2009-08-02 17:06:35 -05:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								3b78d03e2a
								
							
								
							
						 | 
						
							
							
								
								minor SSA liveness code reorganization
							
							
							
							
							
						 | 
						
							2009-08-02 18:05:51 -04:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								cf7ab59fb7
								
							
								
							
						 | 
						
							
							
								
								SSA destruction uses new SSA liveness checking
							
							
							
							
							
						 | 
						
							2009-08-02 18:04:45 -04:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								73e7ead209
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: add optimization from old destruction pass: don't run on CFGs that have no phi instructions
							
							
							
							
							
						 | 
						
							2009-08-02 10:57:27 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								ba55633b19
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.interference: cleanup
							
							
							
							
							
						 | 
						
							2009-08-02 10:35:02 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								82c1106945
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: new implementation: simpler and more correct
							
							
							
							
							
						 | 
						
							2009-08-02 10:26:52 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								8aa41672ca
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities
							
							
							
							
							
						 | 
						
							2009-08-02 08:20:50 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								cff5976a0d
								
							
								
							
						 | 
						
							
							
								
								Move compiler.cfg.ssa.destruction.interference to compiler.cfg.ssa.interference
							
							
							
							
							
						 | 
						
							2009-08-02 08:15:36 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								87e13db946
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction.interference: fix a bug and add unit tests
							
							
							
							
							
						 | 
						
							2009-08-02 08:11:30 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								b5a978d4e5
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: add some unit tests
							
							
							
							
							
						 | 
						
							2009-08-02 06:17:44 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								01f51a96cd
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block
							
							
							
							
							
						 | 
						
							2009-08-02 06:16:58 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								e1c7f7394a
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg: clean up unit tests using some new utilities
							
							
							
							
							
						 | 
						
							2009-08-02 03:49:25 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								05b7bb0079
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
						 | 
						
							2009-08-01 20:22:51 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								20ec574965
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: fix bug in trivial-interference heuristic, and type error in code path that didn't run before
							
							
							
							
							
						 | 
						
							2009-08-01 20:22:31 -05:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								0838beed1e
								
							
								
							
						 | 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor
							
							
							
							
							
						 | 
						
							2009-08-01 20:33:41 -04:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								d515715b0c
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence
							
							
							
							
							
						 | 
						
							2009-07-31 18:34:15 -05:00 | 
						
					
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 | 
						
							
							
							
							
								
							
								8134d775a8
								
							
								
							
						 | 
						
							
							
								
								Faster SSA liveness testing
							
							
							
							
							
						 | 
						
							2009-07-30 15:23:47 -04:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								6274c0337a
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: fix
							
							
							
							
							
						 | 
						
							2009-07-29 23:43:00 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								b133649edd
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: tweak in preparation for landing Dan's new SSA liveness analysis
							
							
							
							
							
						 | 
						
							2009-07-29 23:35:51 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								74766d1ccd
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement
							
							
							
							
							
						 | 
						
							2009-07-29 06:36:14 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								9afa39aa3a
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa
							
							
							
							
							
						 | 
						
							2009-07-28 12:56:33 -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
							
						 | 
						
							
							
							
							
								
							
								7d3b6892d5
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.construction: use the optimization from the pruned-SSA paper to minimize stack pushing and popping
							
							
							
							
							
						 | 
						
							2009-07-28 11:52:42 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								62fe308776
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa.construction: Use TDMSC algorithm to compute Phi placement
							
							
							
							
							
						 | 
						
							2009-07-28 11:16:10 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								d10993b837
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction
							
							
							
							
							
						 | 
						
							2009-07-28 09:34:08 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								ba696b68b8
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.coalescing: more or less complete, now needs debugging
							
							
							
							
							
						 | 
						
							2009-07-27 02:20:45 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								1319d8e549
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.def-use: build def-use chains
							
							
							
							
							
						 | 
						
							2009-07-26 21:10:14 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								26a5d51d93
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa: now builds pruned SSA form
							
							
							
							
							
						 | 
						
							2009-07-22 06:08:04 -05:00 | 
						
					
				
					
						
							
							
								 
								Slava Pestov
							
						 | 
						
							
							
							
							
								
							
								e7e5bee9a2
								
							
								
							
						 | 
						
							
							
								
								compiler.cfg.ssa: Cytron's SSA construction algorithm
							
							
							
							
							
						 | 
						
							2009-07-21 17:49:30 -05:00 |