Slava Pestov
							
						 
						
							 
							
							
							
								
							
								fb6df472a2 
								
							
								 
							
						 
						
							
							
								
								Cleaning up USING: lists for new strict semantics  
							
							 
							
							
							
						 
						
							2009-05-14 16:54:16 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								fc4894fbdf 
								
							
								 
							
						 
						
							
							
								
								Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags  
							
							 
							
							
							
						 
						
							2009-04-30 00:27:35 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7f766ab355 
								
							
								 
							
						 
						
							
							
								
								Update compiler tests for tag number changes  
							
							 
							
							
							
						 
						
							2009-04-28 21:43:30 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								057f75e9a1 
								
							
								 
							
						 
						
							
							
								
								Refactor compiler.tree.builder to fix various regressions  
							
							 
							
							
							
						 
						
							2009-04-21 23:02:00 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								05f3f9dcb9 
								
							
								 
							
						 
						
							
							
								
								Fixing unit tests for stack effect inference changes  
							
							 
							
							
							
						 
						
							2009-04-20 21:15:19 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								37e278ed02 
								
							
								 
							
						 
						
							
							
								
								Use [ ] [ ] map-reduce instead of unclip [ ] reduce  
							
							 
							
							
							
						 
						
							2009-04-06 17:50:54 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ea60f8ae93 
								
							
								 
							
						 
						
							
							
								
								Changing : foo ; parsing to SYNTAX: foo ;  
							
							 
							
							
							
						 
						
							2009-03-21 01:27:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ca7a155b72 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into new_ui  
							
							 
							
							
							
						 
						
							2009-03-01 20:13:05 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								03cb32ad9c 
								
							
								 
							
						 
						
							
							
								
								Make execute( faster, add execute-unsafe( and make effect tuple slots read only  
							
							 
							
							
							
						 
						
							2009-03-01 20:12:35 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ce1bc1d6ed 
								
							
								 
							
						 
						
							
							
								
								Fixing conflicts from stack checker changes  
							
							 
							
							
							
						 
						
							2009-02-24 01:21:10 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								421ee726b8 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into new_ui  
							
							 
							
							
							
						 
						
							2009-02-16 21:22:12 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6b25e99470 
								
							
								 
							
						 
						
							
							
								
								Add summary for heaps more vocabs  
							
							 
							
							
							
						 
						
							2009-02-16 21:05:13 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								634435d816 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into new_ui  
							
							 
							
							
							
						 
						
							2009-02-15 04:07:51 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								cddb1f6133 
								
							
								 
							
						 
						
							
							
								
								Fix spelling  
							
							 
							
							
							
						 
						
							2009-02-15 04:07:05 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								669548e62e 
								
							
								 
							
						 
						
							
							
								
								Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary  
							
							 
							
							
							
						 
						
							2009-02-02 13:43:54 -06:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								3c408342ef 
								
							
								 
							
						 
						
							
							
								
								renaming: contain? -> any?, deep-contains? -> deep-any?, pad-left -> pad-head, pad-right -> pad-tail, trim-left -> trim-head, trim-right -> trim-tail  
							
							 
							
							
							
						 
						
							2009-01-29 22:19:07 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								44bfff7c7b 
								
							
								 
							
						 
						
							
							
								
								Rename ##load-indirect to ##load-reference since this is more descriptive; value numbering doesn't assign expressions to ##load-reference nodes since this would end up folding literals which were eq? but not =  
							
							 
							
							
							
						 
						
							2009-01-29 01:44:58 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								65a53e1fa5 
								
							
								 
							
						 
						
							
							
								
								Don't keep compiled-effect around anymore  
							
							 
							
							
							
						 
						
							2009-02-23 23:55:16 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								ca2f01e0d0 
								
							
								 
							
						 
						
							
							
								
								Updating non-core libraries for monotonic? change  
							
							 
							
							
							
						 
						
							2009-01-16 17:02:54 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								34792a9f23 
								
							
								 
							
						 
						
							
							
								
								Remove >r/r>  
							
							 
							
							
							
						 
						
							2008-12-17 19:17:37 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								c5160d76e9 
								
							
								 
							
						 
						
							
							
								
								Merge qualified, alias, symbols, constants into core  
							
							 
							
							
							
						 
						
							2008-12-17 18:10:01 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0021cde743 
								
							
								 
							
						 
						
							
							
								
								Fix more compile errors  
							
							 
							
							
							
						 
						
							2008-12-15 22:21:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								daf2857d7b 
								
							
								 
							
						 
						
							
							
								
								define-inline now takes an effect parameter  
							
							 
							
							... 
							
							
							
							C: now sets the stack effect of the new word to slot names
add new basis/constants vocab; CONSTANT: foo bar is equivalent to : foo bar ; inline
(going to fold CONSTANT:, ALIAS: and qualified into core soon perhaps)
tighten the screws: inline words now need a stack declaration too
update some usages of inline words 
							
						 
						
							2008-12-15 19:44:56 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								eb79c6ab71 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							 
							
							
							
						 
						
							2008-12-09 17:52:45 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4f0a9f311e 
								
							
								 
							
						 
						
							
							
								
								Untangling some dependencies  
							
							 
							
							
							
						 
						
							2008-12-08 14:58:00 -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
							
						 
						
							 
							
							
							
								
							
								908644ee7a 
								
							
								 
							
						 
						
							
							
								
								O(1) <sbuf> and new-sequence on byte-arrays (work in progress)  
							
							 
							
							
							
						 
						
							2008-12-05 07:28:52 -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
							
						 
						
							 
							
							
							
								
							
								e7f4563374 
								
							
								 
							
						 
						
							
							
								
								fixnum* intrinsic for x86  
							
							 
							
							
							
						 
						
							2008-11-30 07:26:49 -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
							
						 
						
							 
							
							
							
								
							
								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
							
						 
						
							 
							
							
							
								
							
								ab689c098b 
								
							
								 
							
						 
						
							
							
								
								Clean up direct literal code and make a first attempt at PowerPC support  
							
							 
							
							
							
						 
						
							2008-11-24 08:16:14 -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
							
						 
						
							 
							
							
							
								
							
								b1aa3697cb 
								
							
								 
							
						 
						
							
							
								
								Emit branches in the same order they're written in code  
							
							 
							
							
							
						 
						
							2008-11-13 03:52:01 -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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
								
							
								c8521ad826 
								
							
								 
							
						 
						
							
							
								
								Add tool to dump live intervals  
							
							 
							
							
							
						 
						
							2008-11-04 17:23:20 -06:00