Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							c41a832f65 
							
						 
					 
					
						
						
							
							Move the default optimisation steps from OptimiserSuite to OptimiserSettings  
						
						 
						
						... 
						
						
						
						- Now it's a mandatory parameter in OptimiserSuite::run() 
						
					 
					
						2020-04-24 17:30:56 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							69b79f848b 
							
						 
					 
					
						
						
							
							OptimiserSuite: Allow validating the optimisation sequence without executing it  
						
						 
						
						... 
						
						
						
						- Create a separate validateSequence() that can be used independently.
- Tweak the exception messages a bit to be usable as command-line errors 
						
					 
					
						2020-04-24 17:30:56 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							e2c0e6331c 
							
						 
					 
					
						
						
							
							OptimiserSuite: Define NonStepAbbreviations and use it for extra sanity checks  
						
						 
						
						
						
					 
					
						2020-04-24 17:30:56 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							5a515240ac 
							
						 
					 
					
						
						
							
							OptimiserSuite: Use brackets instead of parentheses as syntax for repeating abbreviation sequences  
						
						 
						
						... 
						
						
						
						- We want to start accepting abbreviation sequences on the command line and parentheses would always have to be escaped in that context.
- There wasn't any important reason behind choosing () rather than [] or {} and it still isn't too late to switch. 
						
					 
					
						2020-04-24 17:30:56 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							9db7d2bde9 
							
						 
					 
					
						
						
							
							OptimiserSuite: Replace full step names in run() with abbreviations  
						
						 
						
						
						
					 
					
						2020-04-16 16:09:15 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							9d7df5db69 
							
						 
					 
					
						
						
							
							OptimiserSuite: Add a variant of runSequence() that works with a string of abbreviations  
						
						 
						
						
						
					 
					
						2020-04-16 16:09:15 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kamil Śliwak 
							
						 
					 
					
						
						
						
						
							
						
						
							1b4e06605d 
							
						 
					 
					
						
						
							
							OptimiserSuite: Extract the code for repeating a sequence into runSequenceUntilStable()  
						
						 
						
						... 
						
						
						
						- Define a constant for the maximum number of repeats of the optimisation string 
						
					 
					
						2020-04-16 15:23:38 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Gaith Hallak 
							
						 
					 
					
						
						
						
						
							
						
						
							24d6702986 
							
						 
					 
					
						
						
							
							[Yul] Prune functions that call each other but are otherwise unreferenced  
						
						 
						
						
						
					 
					
						2020-02-11 20:39:32 +03:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								cameel 
							
						 
					 
					
						
						
						
						
							
						
						
							4e7c1c7876 
							
						 
					 
					
						
						
							
							OptimiserSuite: Add two maps for converting between step names and abbreviations  
						
						 
						
						... 
						
						
						
						- Abbreviations match those used in yulopti.
- I considered using boost::bimap but I think it would be an overkill. Two simple maps are good enough in a situation where data is constant and there isn't much of it.
- I could also use InvertibleMap from libsolutil but I don't even need any of its methods since my map is a constant. I also don't need the inverted map to store sets because my values are unique.
- The reverseMap() is generic enough to be moved to some global file with utilities but I don't sure if it's going to actually be useful to others in practice. 
						
					 
					
						2020-02-03 12:22:47 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								cameel 
							
						 
					 
					
						
						
						
						
							
						
						
							2ee7e6042b 
							
						 
					 
					
						
						
							
							OptimiserSuite: Remove VarNameCleaner from the list of available steps  
						
						 
						
						
						
					 
					
						2020-01-30 17:35:27 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Christian Parpart 
							
						 
					 
					
						
						
						
						
							
						
						
							345f9928ab 
							
						 
					 
					
						
						
							
							Library libdevcore renamed to libsolutil.  
						
						 
						
						
						
					 
					
						2020-01-07 15:51:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Christian Parpart 
							
						 
					 
					
						
						
						
						
							
						
						
							6b23412fae 
							
						 
					 
					
						
						
							
							C++ namespace cleanup (except tests).  
						
						 
						
						
						
					 
					
						2020-01-07 15:51:50 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							301215f186 
							
						 
					 
					
						
						
							
							Merge pull request  #7461  from sifmelcara/licm  
						
						 
						
						... 
						
						
						
						[YulOpt] Implement loop-invariant code motion 
						
					 
					
						2019-11-28 12:00:19 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								mingchuan 
							
						 
					 
					
						
						
						
						
							
						
						
							db60d123d0 
							
						 
					 
					
						
						
							
							[YulOpt] Implement loop-invariant code motion  
						
						 
						
						
						
					 
					
						2019-11-28 11:59:29 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							9e9b643b93 
							
						 
					 
					
						
						
							
							Tune the suite.  
						
						 
						
						
						
					 
					
						2019-11-27 11:56:11 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Leonardo Alt 
							
						 
					 
					
						
						
						
						
							
						
						
							be849b3c47 
							
						 
					 
					
						
						
							
							Replace boost::variant by std::variant in libyul  
						
						 
						
						
						
					 
					
						2019-11-19 17:23:18 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							02d5b7c18a 
							
						 
					 
					
						
						
							
							Run literal rematerializer before for loop condition out of body.  
						
						 
						
						
						
					 
					
						2019-11-01 14:01:56 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							61a2d44f38 
							
						 
					 
					
						
						
							
							Conditional unsimplifier  
						
						 
						
						
						
					 
					
						2019-11-01 14:01:56 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							5d6e983be3 
							
						 
					 
					
						
						
							
							Conditional simplifier.  
						
						 
						
						
						
					 
					
						2019-11-01 14:01:56 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							45705b0e29 
							
						 
					 
					
						
						
							
							Debug optimizer steps.  
						
						 
						
						
						
					 
					
						2019-10-16 14:06:18 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							9ce1ca2340 
							
						 
					 
					
						
						
							
							Refactor Optimiser Steps Interface.  
						
						 
						
						
						
					 
					
						2019-09-24 14:52:01 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							7a79742f3d 
							
						 
					 
					
						
						
							
							Out of body again.  
						
						 
						
						
						
					 
					
						2019-09-17 12:30:15 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							4f80117eef 
							
						 
					 
					
						
						
							
							Use builtin iszero for for loop condition rewriting.  
						
						 
						
						
						
					 
					
						2019-09-12 10:26:16 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							fcfe829534 
							
						 
					 
					
						
						
							
							Introduce LiteralRematerializer and thus simplify StructuralSimplifier.  
						
						 
						
						
						
					 
					
						2019-09-11 19:50:24 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							edbec012ae 
							
						 
					 
					
						
						
							
							Activate load resolver.  
						
						 
						
						
						
					 
					
						2019-09-04 19:16:54 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							127bcfc69d 
							
						 
					 
					
						
						
							
							Take user function side-effects into account for unused pruner.  
						
						 
						
						
						
					 
					
						2019-09-02 17:41:51 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							1c5845e3f2 
							
						 
					 
					
						
						
							
							Side-effects of user-defined functions.  
						
						 
						
						
						
					 
					
						2019-09-02 17:41:51 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							869d69d293 
							
						 
					 
					
						
						
							
							Supply full object to stack compressor and Optimizer Suite.  
						
						 
						
						
						
					 
					
						2019-07-10 18:49:42 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							67f11104c1 
							
						 
					 
					
						
						
							
							EVM to eWasm translator.  
						
						 
						
						
						
					 
					
						2019-06-25 19:06:18 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d9d1c4a312 
							
						 
					 
					
						
						
							
							Merge pull request  #6967  from ethereum/nameDisplacer  
						
						 
						
						... 
						
						
						
						[Yul] Name displacer. 
						
					 
					
						2019-06-19 18:56:54 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							d7b366ff46 
							
						 
					 
					
						
						
							
							Name displacer.  
						
						 
						
						
						
					 
					
						2019-06-19 14:55:38 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							cc5045a56e 
							
						 
					 
					
						
						
							
							[Yul] Run optimizer on all dialects.  
						
						 
						
						
						
					 
					
						2019-06-19 10:01:16 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							6cb6fe35ef 
							
						 
					 
					
						
						
							
							Make Yul optimizer not fail for wasm.  
						
						 
						
						
						
					 
					
						2019-06-17 18:42:47 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							1c16124a09 
							
						 
					 
					
						
						
							
							Constant optimiser for Yul.  
						
						 
						
						
						
					 
					
						2019-05-28 11:35:07 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							1dc15d5864 
							
						 
					 
					
						
						
							
							Modify parser and optimizer.  
						
						 
						
						
						
					 
					
						2019-05-20 17:32:56 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							4bdb981224 
							
						 
					 
					
						
						
							
							Make dialect const& and allocate single instances statically.  
						
						 
						
						
						
					 
					
						2019-05-17 12:54:24 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							570db164c9 
							
						 
					 
					
						
						
							
							Make Dialect const.  
						
						 
						
						
						
					 
					
						2019-05-16 21:51:54 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							d9831c8b96 
							
						 
					 
					
						
						
							
							Split structural simplifier.  
						
						 
						
						
						
					 
					
						2019-05-13 10:26:57 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								mingchuan 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d49733dfc3 
							
						 
					 
					
						
						
							
							Fix variable decl scope issue in DeadCodeEliminator  
						
						 
						
						... 
						
						
						
						FoorLoopInitRewriter needs to be run before DeadCodeEliminator. 
						
					 
					
						2019-04-10 19:00:29 +08:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							d20b3c9f9f 
							
						 
					 
					
						
						
							
							Function grouper is a requirement for the VarNameCleaner.  
						
						 
						
						
						
					 
					
						2019-04-05 13:41:38 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Mathias Baumann 
							
						 
					 
					
						
						
						
						
							
						
						
							e20acf5d0a 
							
						 
					 
					
						
						
							
							Yul Optimizer: Remove dead code  
						
						 
						
						
						
					 
					
						2019-04-01 17:16:04 +02:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							8514c0bc60 
							
						 
					 
					
						
						
							
							Provide max iterations for stack compressor as parameter.  
						
						 
						
						
						
					 
					
						2019-03-20 15:07:05 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							38cbf8d230 
							
						 
					 
					
						
						
							
							Pass "optimize stack allocation" flag down to the stack compressor.  
						
						 
						
						
						
					 
					
						2019-03-20 15:03:27 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							f35694f655 
							
						 
					 
					
						
						
							
							Run yul optimizer until it has no effect anymore.  
						
						 
						
						
						
					 
					
						2019-03-05 20:30:13 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Christian Parpart 
							
						 
					 
					
						
						
						
						
							
						
						
							609855546e 
							
						 
					 
					
						
						
							
							Yul: Adds optimizer pass to make variable names suffix-canonical.  
						
						 
						
						
						
					 
					
						2019-03-04 17:26:56 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							83083d2208 
							
						 
					 
					
						
						
							
							Stack compressor.  
						
						 
						
						
						
					 
					
						2019-02-11 15:48:29 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							5a34743d88 
							
						 
					 
					
						
						
							
							Allow optimizer steps to run on FunctionDefinition and group suite.  
						
						 
						
						
						
					 
					
						2019-02-11 15:48:29 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							b34e104173 
							
						 
					 
					
						
						
							
							Make dialect a shared pointer.  
						
						 
						
						
						
					 
					
						2019-02-11 15:48:29 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Alex Beregszaszi 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2fc7928697 
							
						 
					 
					
						
						
							
							Merge pull request  #5864  from ethereum/tuneOptOrder  
						
						 
						
						... 
						
						
						
						Some optimizer tuning. 
						
					 
					
						2019-01-28 13:50:09 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chriseth 
							
						 
					 
					
						
						
						
						
							
						
						
							12e2187661 
							
						 
					 
					
						
						
							
							Some tuning.  
						
						 
						
						
						
					 
					
						2019-01-24 23:06:01 +01:00