David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								bfa65168e2 
								
							 
						 
						
							
							
								
								Don't generate phis if unnecessary (because this breaks the  
							
							... 
							
							
							
							critical-edge-splitting guarantee and causes insertion of phi copies to fail). 
							
						 
						
							2016-10-29 10:55:48 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								abd0cedd61 
								
							 
						 
						
							
							
								
								Massive change to how IR types are handled; we use the type code for matching  
							
							... 
							
							
							
							rather than the size. Much cleaner and simpler. 
							
						 
						
							2016-10-23 21:54:14 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								2d52b1fdaa 
								
							 
						 
						
							
							
								
								Remove GETRET; values are now returned directly by CALL. Fix a bug in  
							
							... 
							
							
							
							convertstackops which was resulting in duplicate IR groups. 
							
						 
						
							2016-10-22 12:13:57 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								a8ee82d197 
								
							 
						 
						
							
							
								
								Stop passing proc around, and use a global instead --- much cleaner.  
							
							
							
						 
						
							2016-10-15 23:19:44 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								9db902314b 
								
							 
						 
						
							
							
								
								Fix bug where pushes were being placed in the wrong blocks.  
							
							
							
						 
						
							2016-10-08 10:21:24 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								4e49830e09 
								
							 
						 
						
							
							
								
								Overhaul of everything phi related; critical edge splitting now happens before  
							
							... 
							
							
							
							anything SSA happens; liveness calculations now look like they might be
working. 
							
						 
						
							2016-10-08 00:21:23 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								ee93389c5f 
								
							 
						 
						
							
							
								
								Refactor the cfg and dominance stuff to make it a lot nicer.  
							
							
							
						 
						
							2016-10-06 21:34:21 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								c079e97492 
								
							 
						 
						
							
							
								
								Perform SSA conversion of locals. Much, *much* better code now, at least  
							
							... 
							
							
							
							inasmuch as it looks better before register allocation. Basic blocks now know
their own successors and predecessors (after a certain point in the IR
processing). 
							
						 
						
							2016-10-02 17:50:34 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								65e75be42d 
								
							 
						 
						
							
							
								
								Fix edge case where leftover pushes would occasionally cause infinite loops in  
							
							... 
							
							
							
							the analysis. 
							
						 
						
							2016-10-01 23:41:35 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								a3cfe6047f 
								
							 
						 
						
							
							
								
								More rigorous dealing of IR groups; no need for is_generated and is_root any  
							
							... 
							
							
							
							more (but now passes are required to set IR roots properly when changing
instructions). 
							
						 
						
							2016-10-01 22:58:29 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								4a3a9a98dc 
								
							 
						 
						
							
							
								
								It doesn't really make a lot of sense to have BURG nonterminal names different  
							
							... 
							
							
							
							to register classes, so combine them. Refactor the map code. 
							
						 
						
							2016-10-01 12:17:14 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								0d246c0d73 
								
							 
						 
						
							
							
								
								Much better handling of fragments (no run-time code needed to distinguish them  
							
							... 
							
							
							
							from registers) and better handling of individual hops within a paragraph ---
no more ghastly hacks to try and distinguish the input from the output. 
							
						 
						
							2016-09-29 22:06:04 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								f552c9c7c6 
								
							 
						 
						
							
							
								
								Move map into the data module.  
							
							
							
						 
						
							2016-09-26 23:03:04 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								c4b8e00ae2 
								
							 
						 
						
							
							
								
								Revamp the array module not to use nasty macros any more. Slightly more verbose  
							
							... 
							
							
							
							to use, but definitely cleaner. 
							
						 
						
							2016-09-26 22:48:58 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								ed67d427c9 
								
							 
						 
						
							
							
								
								Replaced the block splicer with a trivial block eliminator (which rewrites  
							
							... 
							
							
							
							jumps to blocks which contain only a jump). Don't bother storing the bb graph
in the ir nodes; we can find it on demand by walking the tree instead ---
slower, but much easier to understand and more robust. Added a terrible map
library. 
							
						 
						
							2016-09-23 23:59:15 +02:00 
							
								 
							
						 
					 
				
					
						
							
								
								
									David Given 
								
							 
						 
						
							
							
							
							
								
							
							
								f8bbf9e87d 
								
							 
						 
						
							
							
								
								Each pass now lives in its own source file; much cleaner.  
							
							
							
						 
						
							2016-09-23 21:07:16 +02:00