Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a56d480aa6 
								
							
								 
							
						 
						
							
							
								
								Various optimizations leading to a 10% speedup on compiling empty EBNF parser:  
							
							 
							
							... 
							
							
							
							- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables 
							
						 
						
							2008-12-06 09:16:29 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								044e2867d5 
								
							
								 
							
						 
						
							
							
								
								Teach compiler about string-nth range  
							
							 
							
							
							
						 
						
							2008-12-05 23:51:58 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								aa838dbc2d 
								
							
								 
							
						 
						
							
							
								
								Fix compile errors  
							
							 
							
							
							
						 
						
							2008-12-05 09:04:16 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6c7005d588 
								
							
								 
							
						 
						
							
							
								
								Tweak inlining heuristic  
							
							 
							
							
							
						 
						
							2008-12-05 01:50:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								fa6a2047f0 
								
							
								 
							
						 
						
							
							
								
								New inlining heuristic: number of usages within this word. Speeds up bootstrap by 10%  
							
							 
							
							
							
						 
						
							2008-12-04 07:05:59 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e304d3c9f8 
								
							
								 
							
						 
						
							
							
								
								Local DCE  
							
							 
							
							
							
						 
						
							2008-12-04 06:02:49 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e6cb449b19 
								
							
								 
							
						 
						
							
							
								
								optimized. now accepts method-specs  
							
							 
							
							
							
						 
						
							2008-12-03 10:44:21 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e5ed7447ed 
								
							
								 
							
						 
						
							
							
								
								Removing more >r/r> usages  
							
							 
							
							
							
						 
						
							2008-12-03 08:46:16 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d60c79c9bf 
								
							
								 
							
						 
						
							
							
								
								Expand instance? with literal class  
							
							 
							
							
							
						 
						
							2008-12-03 08:11:51 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								402da00390 
								
							
								 
							
						 
						
							
							
								
								Fixing bootstrap with specialized arrays  
							
							 
							
							
							
						 
						
							2008-12-02 02:44:19 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e8a69a3aea 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-11-29 05:14:49 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								86d45262dc 
								
							
								 
							
						 
						
							
							
								
								Add toutput ype propagation for #alien-invoke and #alien-indirect nodes  
							
							 
							
							
							
						 
						
							2008-11-29 03:47:38 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								265e57e21a 
								
							
								 
							
						 
						
							
							
								
								Fix optimized. to literalize words when printing #push nodes  
							
							 
							
							
							
						 
						
							2008-11-29 00:37:26 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1fa819191d 
								
							
								 
							
						 
						
							
							
								
								Change inlining heuristic so that it behaves the same with dip and >r/r>  
							
							 
							
							
							
						 
						
							2008-11-24 05:46:26 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c678e6e362 
								
							
								 
							
						 
						
							
							
								
								Don't use combinators.short-circuit in compiler  
							
							 
							
							
							
						 
						
							2008-11-21 04:00:37 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								79bffecc2e 
								
							
								 
							
						 
						
							
							
								
								Add type function for /mod  
							
							 
							
							
							
						 
						
							2008-11-21 01:54:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								281657dd82 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-11-18 22:18:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9e82f1f8dd 
								
							
								 
							
						 
						
							
							
								
								Better inference error messages  
							
							 
							
							
							
						 
						
							2008-11-16 19:42:53 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7fc13ef03c 
								
							
								 
							
						 
						
							
							
								
								dlists no longer have a length slot; tweak dlist code so that types infer better  
							
							 
							
							
							
						 
						
							2008-11-16 05:53:25 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2fe364a7bb 
								
							
								 
							
						 
						
							
							
								
								Specialized arrays work in progress  
							
							 
							
							
							
						 
						
							2008-11-14 20:18:16 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5bae69426d 
								
							
								 
							
						 
						
							
							
								
								Stack checker cleanup and optimization  
							
							 
							
							... 
							
							
							
							- stack-checker.state vocabulary split up into stack-checker.{state,values,recursive-state}
- code that modifies and searches recursive state factored out into stack-checker.recursive-state
- recursive state is now a set of three binary hash trees instead of an alist, and no longer contains unnecessary data
- binary hash trees are in stack-checker.recursive-state.tree: unbalanced, persistent
- ~8 second speedup on bootstrap, ~20 second speedup in "peg.javascript" require 
							
						 
						
							2008-11-13 00:07:45 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4a1bcacfd4 
								
							
								 
							
						 
						
							
							
								
								Refactoring recursive-state alist; now its a mapping from words to local state triples, reduces searching by a bit  
							
							 
							
							
							
						 
						
							2008-11-12 19:08:40 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d970a632bb 
								
							
								 
							
						 
						
							
							
								
								Fix nodes>quot  
							
							 
							
							
							
						 
						
							2008-11-11 19:51:12 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								26f309d2ae 
								
							
								 
							
						 
						
							
							
								
								Trying to make PEGs compile faster by reducing the number of low level IR nodes: merge functionality of #>r and #r> into #shuffle, and generate 1 node instead of 3 for calls to get-local  
							
							 
							
							
							
						 
						
							2008-11-11 18:46:31 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a32acdcff0 
								
							
								 
							
						 
						
							
							
								
								Tweak grouping code for better method inlining  
							
							 
							
							
							
						 
						
							2008-11-11 12:11:13 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f04b32ea02 
								
							
								 
							
						 
						
							
							
								
								Remove duplicated logic  
							
							 
							
							
							
						 
						
							2008-11-11 09:10:33 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								792df37431 
								
							
								 
							
						 
						
							
							
								
								Update unit test  
							
							 
							
							
							
						 
						
							2008-11-11 08:50:30 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5f4b247072 
								
							
								 
							
						 
						
							
							
								
								Propagation pass now uses a stack of hashtables for predicated constraints instead of cloning a hashtable. New strategy for recursive propagation; now converges with fewer iterations. ~15 sec bootstrap time improvement  
							
							 
							
							
							
						 
						
							2008-11-11 08:49:00 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7f9fbdaa4e 
								
							
								 
							
						 
						
							
							
								
								cleanup pass didn't properly handle conditionals where both branches were dead  
							
							 
							
							
							
						 
						
							2008-11-11 08:38:03 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								43335d9c36 
								
							
								 
							
						 
						
							
							
								
								Intervals now use a special singleton for the full interval to eliminate FP math in the common case; fix a bug in value-info<=  
							
							 
							
							
							
						 
						
							2008-11-11 08:30:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								bfd119e3b5 
								
							
								 
							
						 
						
							
							
								
								I/O ricing: various hints added so that UTF8 and ASCII fastpaths compile with less dispatch. 25% improvement on reverse-complement  
							
							 
							
							
							
						 
						
							2008-11-06 00:02:44 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cc879fa9b7 
								
							
								 
							
						 
						
							
							
								
								Tuple layouts are now arrays, instead of built-in types. The superclass  
							
							 
							
							... 
							
							
							
							array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode. 
							
						 
						
							2008-11-05 22:20:29 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								06b99c31ee 
								
							
								 
							
						 
						
							
							
								
								Fix regression. If a parsing word called the compiler, it might compile a caller of a generic before the generic gets built, which would throw an error since the inferred effect of the generic might have less inputs than the combination's dispatch#  
							
							 
							
							
							
						 
						
							2008-11-03 20:59:48 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1aefde994f 
								
							
								 
							
						 
						
							
							
								
								Cleanup  
							
							 
							
							
							
						 
						
							2008-11-03 00:03:22 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0d83873174 
								
							
								 
							
						 
						
							
							
								
								Fix regression  
							
							 
							
							
							
						 
						
							2008-11-03 00:03:15 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1912c57bb5 
								
							
								 
							
						 
						
							
							
								
								Fix comment  
							
							 
							
							
							
						 
						
							2008-10-23 05:55:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0cc0a41e57 
								
							
								 
							
						 
						
							
							
								
								Update for compiler.intrinsics removal  
							
							 
							
							
							
						 
						
							2008-10-20 20:40:36 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e92f795a76 
								
							
								 
							
						 
						
							
							
								
								More work on intrinsics; memory allocation and slot access now expands correctly  
							
							 
							
							
							
						 
						
							2008-10-20 20:40:15 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f092622fac 
								
							
								 
							
						 
						
							
							
								
								CFG IR is now pure SSA  
							
							 
							
							
							
						 
						
							2008-10-20 01:56:28 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d8d3645d72 
								
							
								 
							
						 
						
							
							
								
								Fixing more codegen bugs  
							
							 
							
							
							
						 
						
							2008-10-13 12:49:20 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f979ae5b82 
								
							
								 
							
						 
						
							
							
								
								Expand slot accessors further to avoid having to use complex template decision  
							
							 
							
							
							
						 
						
							2008-10-11 14:05:15 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0e4e05d5cd 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							 
							
							
							
						 
						
							2008-10-08 03:51:44 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c19f2257f4 
								
							
								 
							
						 
						
							
							
								
								Fix permission bits  
							
							 
							
							
							
						 
						
							2008-10-02 08:34:49 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f539406ee1 
								
							
								 
							
						 
						
							
							
								
								Fold class predicates applied to literals  
							
							 
							
							
							
						 
						
							2008-10-02 05:12:38 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d4134a2ca1 
								
							
								 
							
						 
						
							
							
								
								Fix loop detection bug  
							
							 
							
							
							
						 
						
							2008-10-02 01:17:45 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1a865f89ac 
								
							
								 
							
						 
						
							
							
								
								Some optimizer change sfores for new codegen  
							
							 
							
							
							
						 
						
							2008-09-17 22:18:08 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a211e44bb9 
								
							
								 
							
						 
						
							
							
								
								Found a place to use the locals in literals feature  
							
							 
							
							
							
						 
						
							2008-09-13 04:43:29 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								01129fb9bd 
								
							
								 
							
						 
						
							
							
								
								Add unit test for locals performance regresion  
							
							 
							
							
							
						 
						
							2008-09-13 03:09:16 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								10c68ebb21 
								
							
								 
							
						 
						
							
							
								
								New modular arithmetic optimization pass  
							
							 
							
							
							
						 
						
							2008-09-12 18:08:38 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8d7ebc5106 
								
							
								 
							
						 
						
							
							
								
								Change stack effect of nths to match nth, rice bounds-check?  
							
							 
							
							
							
						 
						
							2008-09-12 18:08:19 -05:00