Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1e841e5086 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.ssa.destruction: more aggressive coalescing work in progress  
							
							 
							
							
							
						 
						
							2009-09-27 17:17:26 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								daff63071f 
								
							
								 
							
						 
						
							
							
								
								Fix the build  
							
							 
							
							
							
						 
						
							2009-09-09 13:44:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7e2f0e5dbf 
								
							
								 
							
						 
						
							
							
								
								compiler: separate ##save-context instruction from ##alien-invoke, generate a ##save-context for libm calls, and add a pass to combine multiple context saves within a basic block. Fixes crashes with FP traps thrown by libm functions on x86-32  
							
							 
							
							
							
						 
						
							2009-09-08 21:50:55 -05:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								3f3d57032b 
								
							
								 
							
						 
						
							
							
								
								Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring  
							
							 
							
							
							
						 
						
							2009-08-13 19:21:44 -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
							
						 
						
							 
							
							
							
								
							
								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  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9afa39aa3a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa  
							
							 
							
							
							
						 
						
							2009-07-28 12:56:33 -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
							
						 
						
							 
							
							
							
								
							
								d394dd3c36 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.branch-splitting: re-enable with a better heuristic  
							
							 
							
							
							
						 
						
							2009-07-28 08:48:05 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c5d7ed58a5 
								
							
								 
							
						 
						
							
							
								
								Debugging compiler.cfg.coalescing  
							
							 
							
							
							
						 
						
							2009-07-27 19:24:13 -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
							
						 
						
							 
							
							
							
								
							
								7068de6cd3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.copy-prop: Global copy propagation  
							
							 
							
							
							
						 
						
							2009-07-24 05:30:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d947c61bd7 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.stacks: now performs online local DCN  
							
							 
							
							
							
						 
						
							2009-07-23 20:54:38 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								747a2d72c8 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination  
							
							 
							
							
							
						 
						
							2009-07-23 18:02:46 -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
							
						 
						
							 
							
							
							
								
							
								25c42d04fd 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Fix conflicts after merging local optimization refactoring into DCN branch  
							
							 
							
							
							
						 
						
							2009-07-22 03:17:53 -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
							
						 
						
							 
							
							
							
								
							
								b869e1250c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.stack-analysis: Out with the old, in with the new  
							
							 
							
							
							
						 
						
							2009-07-22 00:52:25 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e49de006c4 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.dcn: Fixing various bugs, hook up with optimizer  
							
							 
							
							
							
						 
						
							2009-07-21 22:24:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								343151fd62 
								
							
								 
							
						 
						
							
							
								
								compiler.tree.finalization: undo a change that resulted in a compile time regression  
							
							 
							
							
							
						 
						
							2009-07-18 03:33:24 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5061db2a48 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Move tail call optimization to the end, compiler.tree: simplify finalization pass because of this  
							
							 
							
							
							
						 
						
							2009-07-17 22:57:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9f926ab88c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.block-joining: join basic blocks connected by a single edge to improve effectiveness of local optimizations  
							
							 
							
							
							
						 
						
							2009-07-16 02:17:58 -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
							
						 
						
							 
							
							
							
								
							
								d7aeae45be 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.branch-splitting: split blocks with successors  
							
							 
							
							
							
						 
						
							2009-07-13 10:44:08 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								608fb054f2 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Some code cleanups, update stack-analysis and phi-insertion to work on CFGs with critical edges  
							
							 
							
							
							
						 
						
							2009-07-12 22:22:46 -05:00  
						
					 
				
					
						
							
							
								 
								U-SLAVA-DFB8FF805\Slava
							
						 
						
							 
							
							
							
								
							
								508b7272b5 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.optimizer: fix irrelevant test  
							
							 
							
							
							
						 
						
							2009-07-09 06:17:10 -05:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								f11ba00667 
								
							
								 
							
						 
						
							
							
								
								Revert "fix a unit test so it's sure to overflow 64bit machines"  
							
							 
							
							... 
							
							
							
							This reverts commit 88a545a215 . 
							
						 
						
							2009-07-02 18:18:50 -05:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								559a77be43 
								
							
								 
							
						 
						
							
							
								
								fix a unit test so it's sure to overflow 64bit machines  
							
							 
							
							
							
						 
						
							2009-07-02 18:05:55 -05:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								e11e3cf6d2 
								
							
								 
							
						 
						
							
							
								
								unit test to make sure adds are not optimized incorrectly  
							
							 
							
							
							
						 
						
							2009-07-02 18:01:00 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2de41f01da 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.optimizer: enable branch folding  
							
							 
							
							
							
						 
						
							2009-07-02 01:05:59 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f894baf60e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.optimizer: disable branch folding for now  
							
							 
							
							
							
						 
						
							2009-06-30 23:07:27 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3385e50c43 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.branch-folding: fold away branches where both inputs are the same register. This results in 'push' being compiled slightly better  
							
							 
							
							
							
						 
						
							2009-06-30 22:43:32 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f412bbc6d6 
								
							
								 
							
						 
						
							
							
								
								Change branch splitting around a bit, rename useless-blocks to useless-conditionals and rewrite it  
							
							 
							
							
							
						 
						
							2009-06-30 22:11:15 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1acf243cce 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2009-06-30 20:16:09 -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
							
						 
						
							 
							
							
							
								
							
								ef32eb2e72 
								
							
								 
							
						 
						
							
							
								
								Fix bootstrap and unit test  
							
							 
							
							
							
						 
						
							2009-06-26 17:44:33 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								96baede36a 
								
							
								 
							
						 
						
							
							
								
								Redesign compiler.cfg.stack-analysis to make compiler.cfg.height redundant, and to fix some problems  
							
							 
							
							
							
						 
						
							2009-06-26 17:29:55 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7c207ffa12 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.optimizer: disable CFG checker by default  
							
							 
							
							
							
						 
						
							2009-06-05 18:07:22 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5bb235d38f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.checker: run if a variable is set  
							
							 
							
							
							
						 
						
							2009-06-05 17:32:12 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2c8223fdaf 
								
							
								 
							
						 
						
							
							
								
								Fix loop handling in stack-analysis  
							
							 
							
							
							
						 
						
							2009-05-31 19:04:26 -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
							
						 
						
							 
							
							
							
								
							
								76d74c16af 
								
							
								 
							
						 
						
							
							
								
								Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation  
							
							 
							
							
							
						 
						
							2009-05-29 01:39:14 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								fc5587bda3 
								
							
								 
							
						 
						
							
							
								
								Test updates  
							
							 
							
							
							
						 
						
							2009-05-28 02:50:07 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								dadb9a2c50 
								
							
								 
							
						 
						
							
							
								
								Add phi elimination pass  
							
							 
							
							
							
						 
						
							2009-05-27 18:58:01 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1db81da264 
								
							
								 
							
						 
						
							
							
								
								Refactoring low-level optimizer to support stack analysis pass  
							
							 
							
							
							
						 
						
							2009-05-26 19:31:19 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6b25e99470 
								
							
								 
							
						 
						
							
							
								
								Add summary for heaps more vocabs  
							
							 
							
							
							
						 
						
							2009-02-16 21:05:13 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								445e353337 
								
							
								 
							
						 
						
							
							
								
								Optimize away useless jumps  
							
							 
							
							
							
						 
						
							2008-11-02 23:09:31 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								885adc8dc9 
								
							
								 
							
						 
						
							
							
								
								Various improvements  
							
							 
							
							
							
						 
						
							2008-10-23 05:27:54 -05:00