Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e4f8448eb1 
								
							
								 
							
						 
						
							
							
								
								Fix some problems with arithmetic type inference, exposed by recent changes to log2 word  
							
							 
							
							... 
							
							
							
							- declared input type for bignum-shift was stricter than the runtime behavior, leading to bad propagation of type info if shift count was a bignum
- types inferred for type functions which used number-valued/integer-valued/real-valued were not always precise, eg bignum bignum bitxor => integer
- add interval-log2, type function for (log2)
- remove math-class-min, it was useless 
							
						 
						
							2008-12-07 19:44:49 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								8a8f0c925c 
								
							
								 
							
						 
						
							
							
								
								Use BSR instruction to implement fixnum-log2 intrinsic  
							
							 
							
							
							
						 
						
							2008-12-06 15:31:17 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								145b635eb6 
								
							
								 
							
						 
						
							
							
								
								More optimization intended to reduce compile time. Another 10% speedup on compiling empty PEG parser  
							
							 
							
							... 
							
							
							
							- new map-flat combinator replaces usages of 'map flatten' in compiler
- compiler.tree.def-use.simplified uses an explicit accumulator instead of flatten
- compiler.tree.tuple-unboxing uses an explicit accumulator instead of flatten
- fix inlining regression from last time: custom inlining results would sometimes be discarded
- compiler.tree's 3each and 3map combinators rewritten to not use flip
- rewrite math.partial-dispatch without locals (purely stylistic, no performance increase)
- hand-optimize flip for common arrays-of-arrays case
- don't run escape analysis and tuple unboxing if there are no allocations in the IR 
							
						 
						
							2008-12-06 11:17:19 -06:00  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
								
							
								f48653c47a 
								
							
								 
							
						 
						
							
							
								
								Fix compile error  
							
							 
							
							
							
						 
						
							2008-12-05 23:51:34 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								aa838dbc2d 
								
							
								 
							
						 
						
							
							
								
								Fix compile errors  
							
							 
							
							
							
						 
						
							2008-12-05 09:04:16 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e256846acd 
								
							
								 
							
						 
						
							
							
								
								Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement  
							
							 
							
							
							
						 
						
							2008-12-05 06:38:51 -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
							
						 
						
							 
							
							
							
								
							
								f51708386d 
								
							
								 
							
						 
						
							
							
								
								Fix conflicts  
							
							 
							
							
							
						 
						
							2008-12-01 20:39:43 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6dce834d91 
								
							
								 
							
						 
						
							
							
								
								Get rid of some more >r/r> usages  
							
							 
							
							
							
						 
						
							2008-11-30 18:28:15 -06:00  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								6400085bea 
								
							
								 
							
						 
						
							
							
								
								Fix bootstrap, add a unit test  
							
							 
							
							
							
						 
						
							2008-11-30 07:36:29 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e7f4563374 
								
							
								 
							
						 
						
							
							
								
								fixnum* intrinsic for x86  
							
							 
							
							
							
						 
						
							2008-11-30 07:26:49 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e8a69a3aea 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-11-29 05:14:49 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								52f1ff3a95 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-11-29 04:23:23 -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
							
						 
						
							 
							
							
							
								
							
								1c0789e616 
								
							
								 
							
						 
						
							
							
								
								Didn't generate ##branch after ##alien-invoke and ##alien-indirect  
							
							 
							
							
							
						 
						
							2008-11-29 03:46:57 -06:00  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								26c002d23f 
								
							
								 
							
						 
						
							
							
								
								Fix fixnum* problem; result was shifted to the right by 3 bits if both input registers were equal  
							
							 
							
							
							
						 
						
							2008-11-29 00:44:46 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								265e57e21a 
								
							
								 
							
						 
						
							
							
								
								Fix optimized. to literalize words when printing #push nodes  
							
							 
							
							
							
						 
						
							2008-11-29 00:37:26 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c1d249afb2 
								
							
								 
							
						 
						
							
							
								
								Add unit test  
							
							 
							
							
							
						 
						
							2008-11-29 00:37:07 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								67471dedac 
								
							
								 
							
						 
						
							
							
								
								Forgot to emit a ##branch after ##fixnum-{add,sub,mul} ops; tools.annotations test faild  
							
							 
							
							
							
						 
						
							2008-11-29 00:36:43 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								68dd6cc35a 
								
							
								 
							
						 
						
							
							
								
								Working on PowerPC overflow checks  
							
							 
							
							
							
						 
						
							2008-11-28 20:02:50 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eb8c621b6f 
								
							
								 
							
						 
						
							
							
								
								Faster generic arithmetic on fiixnums: both-fixnums? sub-primitive performs a check if the top two stack items are both fixnums with a single conditional branch  
							
							 
							
							
							
						 
						
							2008-11-28 08:35:02 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f44506089d 
								
							
								 
							
						 
						
							
							
								
								More work on overflow instructions: don't need temp register anymore, add -tail variants which don't need stack frame  
							
							 
							
							
							
						 
						
							2008-11-28 06:36:30 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5634becda1 
								
							
								 
							
						 
						
							
							
								
								##fixnum-add, ##fixnum-sub instructions open-code overflow check  
							
							 
							
							
							
						 
						
							2008-11-28 05:33:58 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f2040c0529 
								
							
								 
							
						 
						
							
							
								
								Add some more tests  
							
							 
							
							
							
						 
						
							2008-11-24 11:12:36 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ab689c098b 
								
							
								 
							
						 
						
							
							
								
								Clean up direct literal code and make a first attempt at PowerPC support  
							
							 
							
							
							
						 
						
							2008-11-24 08:16:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2aaf860f47 
								
							
								 
							
						 
						
							
							
								
								Experimental optimizations  
							
							 
							
							
							
						 
						
							2008-11-24 06:40:51 -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
							
						 
						
							 
							
							
							
								
							
								eeb2133ba2 
								
							
								 
							
						 
						
							
							
								
								Fix compiler test  
							
							 
							
							
							
						 
						
							2008-11-23 21:40:10 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7788b3e0db 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into microseconds  
							
							 
							
							
							
						 
						
							2008-11-23 03:06:32 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3a2e15327f 
								
							
								 
							
						 
						
							
							
								
								Disable these for now  
							
							 
							
							
							
						 
						
							2008-11-22 22:47:40 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f0716b3a0d 
								
							
								 
							
						 
						
							
							
								
								1% image size reduction by not storing empty compiled-generic-uses and compiled-uses props  
							
							 
							
							
							
						 
						
							2008-11-22 22:46:57 -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
							
						 
						
							 
							
							
							
								
							
								8819f23312 
								
							
								 
							
						 
						
							
							
								
								Replace millis primitive with micros primitive  
							
							 
							
							... 
							
							
							
							Add millis as a library word
sleep now takes either a duration or a microsecond count; code using durations doens't need to be updated, code using millisecond counts updated to use durations for the most part 
							
						 
						
							2008-11-19 01:50:05 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								281657dd82 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-11-18 22:18:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ff7358beb3 
								
							
								 
							
						 
						
							
							
								
								Fix typo  
							
							 
							
							
							
						 
						
							2008-11-17 17:48:06 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								20f5541d35 
								
							
								 
							
						 
						
							
							
								
								Refactoring FFI for Win64  
							
							 
							
							
							
						 
						
							2008-11-17 13:34:37 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								14246fde37 
								
							
								 
							
						 
						
							
							
								
								Better FFI unit tests expose a new problem  
							
							 
							
							
							
						 
						
							2008-11-17 12:23:44 -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
							
						 
						
							 
							
							
							
								
							
								5b4e8e9d09 
								
							
								 
							
						 
						
							
							
								
								Rename tests/templates.factor to tests/codegen.factor since that's really what its testing  
							
							 
							
							
							
						 
						
							2008-11-13 04:16:58 -06:00