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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								5b4e8e9d09 
								
							
								 
							
						 
						
							
							
								
								Rename tests/templates.factor to tests/codegen.factor since that's really what its testing  
							
							 
							
							
							
						 
						
							2008-11-13 04:16:58 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eb05dd3a12 
								
							
								 
							
						 
						
							
							
								
								Optimize a ##dispatch that is applied to the result of a ##sub-imm or ##add-imm; this eliminates an instruction from the common 1 fixnum-fast { ... } dispatch and 8 fixnum-fast { ... } dispatch code sequences appearing in generic word expansions  
							
							 
							
							
							
						 
						
							2008-11-13 04:16:08 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6590c894bc 
								
							
								 
							
						 
						
							
							
								
								Forgot a constant  
							
							 
							
							
							
						 
						
							2008-11-13 04:10:21 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b1aa3697cb 
								
							
								 
							
						 
						
							
							
								
								Emit branches in the same order they're written in code  
							
							 
							
							
							
						 
						
							2008-11-13 03:52:01 -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
							
						 
						
							 
							
							
							
								
							
								9f52ee50b0 
								
							
								 
							
						 
						
							
							
								
								Another speedup to >alist: create vector with right size up-front. 10 second bootstrap time reduction  
							
							 
							
							
							
						 
						
							2008-11-12 00:10:50 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ed3a81a503 
								
							
								 
							
						 
						
							
							
								
								Faster M: hashtable >alist performs less dispatch and allocates less junk  
							
							 
							
							
							
						 
						
							2008-11-11 23:03:50 -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  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								067e9934e1 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' of git://factorcode.org/git/factor  
							
							 
							
							
							
						 
						
							2008-11-10 03:02:17 -06:00  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								5b7d40d9b4 
								
							
								 
							
						 
						
							
							
								
								We need to end the basic block after the ##prologue in the dispatch branch so that the GC check can go after the prologue  
							
							 
							
							
							
						 
						
							2008-11-10 02:58:05 -06:00  
						
					 
				
					
						
							
							
								 
								unknown
							
						 
						
							 
							
							
							
								
							
								f7fe84e563 
								
							
								 
							
						 
						
							
							
								
								Working on Win64 FFI  
							
							 
							
							
							
						 
						
							2008-11-08 21:40:47 -06:00  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								d1f248dac6 
								
							
								 
							
						 
						
							
							
								
								Fixing PowerPC backend: prolog register clobberage, spilling, and general stack frame usage. Add some lame tests for spilling  
							
							 
							
							
							
						 
						
							2008-11-06 19:00:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4e55cd973b 
								
							
								 
							
						 
						
							
							
								
								If a #dispatch branch is a call to another word which is not an intrinsic, we avoid generating the dispatch branch and just jump to the word directly  
							
							 
							
							
							
						 
						
							2008-11-06 11:48:55 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								64cbf619a9 
								
							
								 
							
						 
						
							
							
								
								Add more algebraic simplifications: comparison of a comparison, comparison where first is immediate  
							
							 
							
							
							
						 
						
							2008-11-06 09:27:52 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1c1333fbe9 
								
							
								 
							
						 
						
							
							
								
								Compile not and >boolean as branchless intrinsics by having the CFG builder detect certain code patterns  
							
							 
							
							
							
						 
						
							2008-11-06 09:09:21 -06:00  
						
					 
				
					
						
							
							
								 
								sheeple
							
						 
						
							 
							
							
							
								
							
								d2ec46e38f 
								
							
								 
							
						 
						
							
							
								
								PowerPC backend almost functional; some new compiler unit tests added,  
							
							 
							
							... 
							
							
							
							better compilation of 'f eq?'; f becomes an immediate operand
move aux-offset to compiler.constants 
							
						 
						
							2008-11-06 06:27:27 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								53cd75b06c 
								
							
								 
							
						 
						
							
							
								
								Add string-nth intrinsic  
							
							 
							
							
							
						 
						
							2008-11-06 01:11:28 -06:00