Doug Coleman
							
						 
						
							 
							
							
							
								
							
								6e60c811ac 
								
							
								 
							
						 
						
							
							
								
								core: Rename create to create-word, create-in to create-word-in.  
							
							 
							
							
							
						 
						
							2015-06-08 12:47:35 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								b366a06c41 
								
							
								 
							
						 
						
							
							
								
								use reject instead of [ ... not ] filter.  
							
							 
							
							
							
						 
						
							2015-05-12 18:50:34 -07:00  
						
					 
				
					
						
							
							
								 
								John Benediktsson
							
						 
						
							 
							
							
							
								
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							 
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								eb2a0c611b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Change low-level IR constructors from ##foo to <##foo>  
							
							 
							
							
							
						 
						
							2011-11-06 23:02:46 -08:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e27adb2830 
								
							
								 
							
						 
						
							
							
								
								compiler: re-architect low-level optimizer to allow more than one output value per instruction  
							
							 
							
							
							
						 
						
							2010-07-13 07:40:14 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								82fb1879af 
								
							
								 
							
						 
						
							
							
								
								Debugging untagged fixnums  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								5d3a7a7362 
								
							
								 
							
						 
						
							
							
								
								Untagged fixnums work in progress  
							
							 
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2aaf24412a 
								
							
								 
							
						 
						
							
							
								
								compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search  
							
							 
							
							
							
						 
						
							2010-04-18 21:42:45 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e4ad642134 
								
							
								 
							
						 
						
							
							
								
								vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)  
							
							 
							
							
							
						 
						
							2009-11-02 04:25:54 -06:00  
						
					 
				
					
						
							
							
								 
								Doug Coleman
							
						 
						
							 
							
							
							
								
							
								bd13e018dd 
								
							
								 
							
						 
						
							
							
								
								memq? -> member-eq?, sorted-memq? -> sorted-member-eq?  
							
							 
							
							
							
						 
						
							2009-10-28 15:02:00 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								b9577e2b0e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.instructions: remove ##box-float, ##unbox-float, ##box-vector, ##unbox-vector since they can be expressed in terms of ##alien-double, ##set-alien-double, ##alien-vector, ##set-alien-vector, and ##allot  
							
							 
							
							
							
						 
						
							2009-10-01 18:07:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1da18d06b1 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: add some more rewrite rules, neg/neg, not/not, and a few for SIMD  
							
							 
							
							
							
						 
						
							2009-09-30 02:18:29 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								a8ea929ad9 
								
							
								 
							
						 
						
							
							
								
								Work in progress  
							
							 
							
							
							
						 
						
							2009-09-28 17:31:34 -05:00  
						
					 
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 
						
							 
							
							
							
								
							
								51f2bbd74b 
								
							
								 
							
						 
						
							
							
								
								Completing slot and set-slot changes on x86  
							
							 
							
							
							
						 
						
							2009-09-26 01:39:48 -05:00  
						
					 
				
					
						
							
							
								 
								Daniel Ehrenberg
							
						 
						
							 
							
							
							
								
							
								7bd330cfd5 
								
							
								 
							
						 
						
							
							
								
								Making ##slot and ##set-slot not have a temporary parameter  
							
							 
							
							
							
						 
						
							2009-09-26 00:28:14 -05:00  
						
					 
				
					
						
							
							
								 
								Phil Dawes
							
						 
						
							 
							
							
							
								
							
								ff8f2b10ec 
								
							
								 
							
						 
						
							
							
								
								fixed up getenv compiler intrinsic to use vm struct userenv  
							
							 
							
							
							
						 
						
							2009-09-16 08:16:32 +01:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								85a2bfab6c 
								
							
								 
							
						 
						
							
							
								
								compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax  
							
							 
							
							
							
						 
						
							2009-09-02 06:22:37 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								9595be4bf9 
								
							
								 
							
						 
						
							
							
								
								%box-displaced-alien: fix clobberage found by Doug  
							
							 
							
							
							
						 
						
							2009-08-30 05:11:08 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0db01f6d5f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan now supports partial sync-points where all registers are spilled; taking advantage of this, there are new trigonometric intrinsics which yield a 2x performance boost on benchmark.struct-arrays and a 25% boost on benchmark.partial-sums  
							
							 
							
							
							
						 
						
							2009-08-30 04:52:01 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								2bb6293217 
								
							
								 
							
						 
						
							
							
								
								compiler: add fixnum-min/max intrinsics; ~10% speedup on benchmark.yuv-to-rgb  
							
							 
							
							
							
						 
						
							2009-08-28 19:02:59 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								d957ae4e44 
								
							
								 
							
						 
						
							
							
								
								Performance improvements to make struct-arrays benchmark faster  
							
							 
							
							... 
							
							
							
							- improved optimization of ##unbox-any-c-ptr on ##box-displaced-alien; convert it to ##unbox-c-ptr where possible using class info stored in the ##bda instruction
- make fcos, fsin, etc inline again; everything in math.libm inline again, except for fsqrt which is an intrinsic
- convert min and max on floats to float-min and float-max
- make min and max not inline, so that the above can work
- struct-arrays: rice a bit so that more fixnums come up 
							
						 
						
							2009-08-28 05:21:16 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								f662e6403a 
								
							
								 
							
						 
						
							
							
								
								compiler: new inline intrinsic for <displaced-alien> where the inputs have known types; value numbering now eliminates unnecessary allocation of displaced aliens if the result is immediately unboxed again  
							
							 
							
							
							
						 
						
							2009-08-27 00:06:19 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								0df8aadce2 
								
							
								 
							
						 
						
							
							
								
								cpu.x86: use SQRTSD instruction for math.libm:fsqrt word  
							
							 
							
							
							
						 
						
							2009-08-25 23:22:15 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								4b7ba38aab 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case  
							
							 
							
							
							
						 
						
							2009-08-08 04:02:18 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e21ca289c3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.representations: new pass to make global unboxing decisions, relies on new compiler.cfg.loop-detection pass for loop nesting information  
							
							 
							
							
							
						 
						
							2009-08-08 00:24:46 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								725280d424 
								
							
								 
							
						 
						
							
							
								
								Split off the notion of a register representation from a register class  
							
							 
							
							
							
						 
						
							2009-08-07 17:44:50 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								7590ad3574 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: introduce less temporaries when building CFG  
							
							 
							
							
							
						 
						
							2009-07-24 03:37:18 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								3fb4fc1bde 
								
							
								 
							
						 
						
							
							
								
								Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases  
							
							 
							
							
							
						 
						
							2009-07-16 23:50:48 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								e76dce8aff 
								
							
								 
							
						 
						
							
							
								
								Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint  
							
							 
							
							
							
						 
						
							2009-07-16 18:29:40 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								6af61656f3 
								
							
								 
							
						 
						
							
							
								
								CFG optimizer work in progress - adding phi nodes  
							
							 
							
							
							
						 
						
							2009-05-21 16:49:28 -05: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
							
						 
						
							 
							
							
							
								
							
								8a8f0c925c 
								
							
								 
							
						 
						
							
							
								
								Use BSR instruction to implement fixnum-log2 intrinsic  
							
							 
							
							
							
						 
						
							2008-12-06 15:31:17 -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
							
						 
						
							 
							
							
							
								
							
								ab689c098b 
								
							
								 
							
						 
						
							
							
								
								Clean up direct literal code and make a first attempt at PowerPC support  
							
							 
							
							
							
						 
						
							2008-11-24 08:16:14 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								53cd75b06c 
								
							
								 
							
						 
						
							
							
								
								Add string-nth intrinsic  
							
							 
							
							
							
						 
						
							2008-11-06 01:11:28 -06:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								1b06ab1b39 
								
							
								 
							
						 
						
							
							
								
								Fixing various bugs  
							
							 
							
							
							
						 
						
							2008-10-21 23:17:32 -05:00  
						
					 
				
					
						
							
							
								 
								Slava Pestov
							
						 
						
							 
							
							
							
								
							
								94a2bfa2ea 
								
							
								 
							
						 
						
							
							
								
								Working on comparison operations, clearing out remaining dead wood  
							
							 
							
							
							
						 
						
							2008-10-21 03:20:48 -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