cc5476c823 
								
							
								 
							
						 
						
							
							
								
								_gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length  
							
							
							
						 
						
							2009-08-09 03:08:13 -05:00  
				
					
						
							
							
								 
						
							
							
								725280d424 
								
							
								 
							
						 
						
							
							
								
								Split off the notion of a register representation from a register class  
							
							
							
						 
						
							2009-08-07 17:44:50 -05:00  
				
					
						
							
							
								 
						
							
							
								45770c6250 
								
							
								 
							
						 
						
							
							
								
								Move a bunch of GC check generation logic to platform-independent side  
							
							
							
						 
						
							2009-07-30 21:28:27 -05:00  
				
					
						
							
							
								 
						
							
							
								be363d1a5b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation  
							
							
							
						 
						
							2009-07-30 09:19:44 -05:00  
				
					
						
							
							
								 
						
							
							
								74766d1ccd 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement  
							
							
							
						 
						
							2009-07-29 06:36:14 -05:00  
				
					
						
							
							
								 
						
							
							
								31555b05cf 
								
							
								 
							
						 
						
							
							
								
								compiler.codegen: collect instruction statistics  
							
							
							
						 
						
							2009-07-27 03:58:15 -05:00  
				
					
						
							
							
								 
						
							
							
								44bcd258f6 
								
							
								 
							
						 
						
							
							
								
								Insert _loop-entry in linearization pass instead of in CFG builder, so that optimizations don't have to worry about it  
							
							
							
						 
						
							2009-07-22 06:05:17 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								0402790001 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg Remove height tracking for ##call instructions, wire in ##no-tco instruction  
							
							
							
						 
						
							2009-06-30 21:21:46 -05:00  
				
					
						
							
							
								 
						
							
							
								d0f6a7d048 
								
							
								 
							
						 
						
							
							
								
								Split up compiler.cfg.linear-scan.allocation into a number of sub-vocabularies; start work on compiler.cfg.linear-scan.resolve; start work on inactive interval splitting  
							
							
							
						 
						
							2009-06-11 17:55:14 -05:00  
				
					
						
							
							
								 
						
							
							
								9ad9600764 
								
							
								 
							
						 
						
							
							
								
								Remove %dispatch-label since its tehe same on all platforms; fix %gc on PowerPC  
							
							
							
						 
						
							2009-06-07 21:46:28 -05:00  
				
					
						
							
							
								 
						
							
							
								2d231f066a 
								
							
								 
							
						 
						
							
							
								
								GC checks now save and restore registers  
							
							
							
						 
						
							2009-06-02 18:23:47 -05:00  
				
					
						
							
							
								 
						
							
							
								3a9922d161 
								
							
								 
							
						 
						
							
							
								
								Fix compiler errors  
							
							
							
						 
						
							2009-06-01 03:00:10 -05:00  
				
					
						
							
							
								 
						
							
							
								b389dcf441 
								
							
								 
							
						 
						
							
							
								
								Redo compiler.codegen.fixup and get %dispatch to work  
							
							
							
						 
						
							2009-06-01 02:32:36 -05:00  
				
					
						
							
							
								 
						
							
							
								fc152ef210 
								
							
								 
							
						 
						
							
							
								
								Various improvements aimed at getting local optimization regressions fixed:  
							
							... 
							
							
							
							- Rename _gc to ##gc
- Absolute labels are now supported
- Generate _dispatch-label 
							
						 
						
							2009-05-31 23:28:08 -05:00  
				
					
						
							
							
								 
						
							
							
								76d74c16af 
								
							
								 
							
						 
						
							
							
								
								Fixing various bugs; alias analysis wasn't handling ##phi nodes, stack analysis incorrectly handled height-changing back edges and ##fixnum-*, clean up ##dispatch generation  
							
							
							
						 
						
							2009-05-29 01:39:14 -05:00  
				
					
						
							
							
								 
						
							
							
								a366909c25 
								
							
								 
							
						 
						
							
							
								
								Removing slip usage from basis  
							
							
							
						 
						
							2009-05-10 15:28:22 -05:00  
				
					
						
							
							
								 
						
							
							
								581d017b46 
								
							
								 
							
						 
						
							
							
								
								Working on inline caching for tail call sites  
							
							
							
						 
						
							2009-05-06 19:22:22 -05:00  
				
					
						
							
							
								 
						
							
							
								c93d876075 
								
							
								 
							
						 
						
							
							
								
								Better separation of concerns: cpu.{x86,ppc}.assembler no longer depends on compiler.codegen.fixup and cpu.architecture. Rename rt-xt-direct to rt-xt-pic to better explain its purpose  
							
							
							
						 
						
							2009-05-06 16:14:53 -05:00  
				
					
						
							
							
								 
						
							
							
								fb5b48c71a 
								
							
								 
							
						 
						
							
							
								
								Fix some test failures  
							
							
							
						 
						
							2009-05-04 09:44:26 -05:00  
				
					
						
							
							
								 
						
							
							
								5fb5c19d61 
								
							
								 
							
						 
						
							
							
								
								Machine code is now stored in a byte array instead of an array for add_code_block()  
							
							
							
						 
						
							2009-04-30 04:34:35 -05:00  
				
					
						
							
							
								 
						
							
							
								515c619202 
								
							
								 
							
						 
						
							
							
								
								Non-optimizing compiler now open-codes megamorphic dispatch fast path  
							
							
							
						 
						
							2009-04-30 03:37:07 -05:00  
				
					
						
							
							
								 
						
							
							
								c15a4c1c5a 
								
							
								 
							
						 
						
							
							
								
								Add new relocation type for call sites which may be replaced by ICs  
							
							
							
						 
						
							2009-04-28 17:53:14 -05:00  
				
					
						
							
							
								 
						
							
							
								7e84daf0f1 
								
							
								 
							
						 
						
							
							
								
								Move (execute) to kernel.private  
							
							
							
						 
						
							2009-04-26 02:42:37 -05:00  
				
					
						
							
							
								 
						
							
							
								8ea3db9eef 
								
							
								 
							
						 
						
							
							
								
								Get rid of a 'rot'  
							
							
							
						 
						
							2009-04-25 22:35:30 -05:00  
				
					
						
							
							
								 
						
							
							
								5649cc7a0a 
								
							
								 
							
						 
						
							
							
								
								Compiler warnings are no more  
							
							
							
						 
						
							2009-04-23 22:17:25 -05:00  
				
					
						
							
							
								 
						
							
							
								c4be8bd65a 
								
							
								 
							
						 
						
							
							
								
								Refactor error code so that error types are registered; listener prints a summary of errors  
							
							
							
						 
						
							2009-04-12 16:08:46 -05:00  
				
					
						
							
							
								 
						
							
							
								0a7485190b 
								
							
								 
							
						 
						
							
							
								
								compile-error-type => source-error-type; make test failures global  
							
							
							
						 
						
							2009-04-10 03:52:12 -05:00  
				
					
						
							
							
								 
						
							
							
								39b53817b9 
								
							
								 
							
						 
						
							
							
								
								Small size reduction for deployed images  
							
							
							
						 
						
							2009-03-31 08:15:27 -05:00  
				
					
						
							
							
								 
						
							
							
								8b7fcce399 
								
							
								 
							
						 
						
							
							
								
								update code for usages of add-library  
							
							
							
						 
						
							2009-03-25 23:00:19 -05:00  
				
					
						
							
							
								 
						
							
							
								7f4c967ace 
								
							
								 
							
						 
						
							
							
								
								More compact relocation layout  
							
							
							
						 
						
							2009-03-19 20:02:43 -05:00  
				
					
						
							
							
								 
						
							
							
								be4fb1e7d9 
								
							
								 
							
						 
						
							
							
								
								Move call( and execute( to core  
							
							
							
						 
						
							2009-03-16 20:11:36 -05:00  
				
					
						
							
							
								 
						
							
							
								38c6be94d4 
								
							
								 
							
						 
						
							
							
								
								Fixing some stack comments  
							
							
							
						 
						
							2009-03-16 06:17:18 -05:00  
				
					
						
							
							
								 
						
							
							
								6b25e99470 
								
							
								 
							
						 
						
							
							
								
								Add summary for heaps more vocabs  
							
							
							
						 
						
							2009-02-16 21:05:13 -06:00  
				
					
						
							
							
								 
						
							
							
								7bb0e78314 
								
							
								 
							
						 
						
							
							
								
								Add support for C99 complex float and complex double types to FFI  
							
							... 
							
							
							
							They are named complex-float and complex-double in the Factor world 
							
						 
						
							2009-02-06 04:02:00 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								4204fd495f 
								
							
								 
							
						 
						
							
							
								
								Move formatted stream output words to io.styles; they didn't belong in core, and this reduces deployed image size  
							
							
							
						 
						
							2009-01-13 17:12:43 -06:00  
				
					
						
							
							
								 
						
							
							
								0021cde743 
								
							
								 
							
						 
						
							
							
								
								Fix more compile errors  
							
							
							
						 
						
							2008-12-15 22:21:56 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								4f0a9f311e 
								
							
								 
							
						 
						
							
							
								
								Untangling some dependencies  
							
							
							
						 
						
							2008-12-08 14:58:00 -06:00  
				
					
						
							
							
								 
						
							
							
								8a8f0c925c 
								
							
								 
							
						 
						
							
							
								
								Use BSR instruction to implement fixnum-log2 intrinsic  
							
							
							
						 
						
							2008-12-06 15:31:17 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								f48653c47a 
								
							
								 
							
						 
						
							
							
								
								Fix compile error  
							
							
							
						 
						
							2008-12-05 23:51:34 -06:00  
				
					
						
							
							
								 
						
							
							
								aa838dbc2d 
								
							
								 
							
						 
						
							
							
								
								Fix compile errors  
							
							
							
						 
						
							2008-12-05 09:04:16 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								6dce834d91 
								
							
								 
							
						 
						
							
							
								
								Get rid of some more >r/r> usages  
							
							
							
						 
						
							2008-11-30 18:28:15 -06:00  
				
					
						
							
							
								 
						
							
							
								e7f4563374 
								
							
								 
							
						 
						
							
							
								
								fixnum* intrinsic for x86  
							
							
							
						 
						
							2008-11-30 07:26:49 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								5634becda1 
								
							
								 
							
						 
						
							
							
								
								##fixnum-add, ##fixnum-sub instructions open-code overflow check  
							
							
							
						 
						
							2008-11-28 05:33:58 -06:00  
				
					
						
							
							
								 
						
							
							
								ab689c098b 
								
							
								 
							
						 
						
							
							
								
								Clean up direct literal code and make a first attempt at PowerPC support  
							
							
							
						 
						
							2008-11-24 08:16:14 -06:00  
				
					
						
							
							
								 
						
							
							
								2aaf860f47 
								
							
								 
							
						 
						
							
							
								
								Experimental optimizations  
							
							
							
						 
						
							2008-11-24 06:40:51 -06:00  
				
					
						
							
							
								 
						
							
							
								20f5541d35 
								
							
								 
							
						 
						
							
							
								
								Refactoring FFI for Win64  
							
							
							
						 
						
							2008-11-17 13:34:37 -06:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								f7fe84e563 
								
							
								 
							
						 
						
							
							
								
								Working on Win64 FFI  
							
							
							
						 
						
							2008-11-08 21:40:47 -06:00  
				
					
						
							
							
								 
						
							
							
								53cd75b06c 
								
							
								 
							
						 
						
							
							
								
								Add string-nth intrinsic  
							
							
							
						 
						
							2008-11-06 01:11:28 -06:00  
				
					
						
							
							
								 
						
							
							
								dae41147fe 
								
							
								 
							
						 
						
							
							
								
								%bignum>integer now takes a temporary register since this is useful on both x86 and ppc  
							
							
							
						 
						
							2008-11-05 04:16:08 -06:00  
				
					
						
							
							
								 
						
							
							
								59f4f25b91 
								
							
								 
							
						 
						
							
							
								
								Loop alignment: appears to be a small win for reverse-complement  
							
							
							
						 
						
							2008-11-03 06:20:51 -06:00  
				
					
						
							
							
								 
						
							
							
								f253e74942 
								
							
								 
							
						 
						
							
							
								
								Inline subprimitives in optimizing compiler  
							
							
							
						 
						
							2008-11-03 01:18:54 -06:00  
				
					
						
							
							
								 
						
							
							
								73d01452cb 
								
							
								 
							
						 
						
							
							
								
								Replace ##gc with a gc flag in the basic block  
							
							
							
						 
						
							2008-10-22 18:38:30 -05:00  
				
					
						
							
							
								 
						
							
							
								87e9fbb34c 
								
							
								 
							
						 
						
							
							
								
								Comparison operations  
							
							
							
						 
						
							2008-10-21 03:21:29 -05:00  
				
					
						
							
							
								 
						
							
							
								4d75baf268 
								
							
								 
							
						 
						
							
							
								
								Update for ##allot change  
							
							
							
						 
						
							2008-10-20 20:40:28 -05:00  
				
					
						
							
							
								 
						
							
							
								37cf7d9a9c 
								
							
								 
							
						 
						
							
							
								
								Add SSA comparison instructions, fix various problems  
							
							
							
						 
						
							2008-10-20 05:55:20 -05:00  
				
					
						
							
							
								 
						
							
							
								f092622fac 
								
							
								 
							
						 
						
							
							
								
								CFG IR is now pure SSA  
							
							
							
						 
						
							2008-10-20 01:56:28 -05:00  
				
					
						
							
							
								 
						
							
							
								c0d89b061e 
								
							
								 
							
						 
						
							
							
								
								Fixing register allocator prspilling  
							
							
							
						 
						
							2008-10-19 01:10:21 -05:00  
				
					
						
							
							
								 
						
							
							
								239578353f 
								
							
								 
							
						 
						
							
							
								
								Simplifying vregs work in progress  
							
							
							
						 
						
							2008-10-17 15:35:04 -05:00  
				
					
						
							
							
								 
						
							
							
								ae3c4ae1b6 
								
							
								 
							
						 
						
							
							
								
								Fix some problems with callbacks  
							
							
							
						 
						
							2008-10-12 23:32:14 -05:00  
				
					
						
							
							
								 
						
							
							
								ed27d83921 
								
							
								 
							
						 
						
							
							
								
								Add missing method  
							
							
							
						 
						
							2008-10-12 18:40:43 -05:00  
				
					
						
							
							
								 
						
							
							
								3844cb62d8 
								
							
								 
							
						 
						
							
							
								
								Fix %write-barrier  
							
							
							
						 
						
							2008-10-10 03:16:26 -05:00  
				
					
						
							
							
								 
						
							
							
								70c6c64766 
								
							
								 
							
						 
						
							
							
								
								Debugging register allocator and inline allocation  
							
							
							
						 
						
							2008-10-08 23:43:07 -05:00  
				
					
						
							
							
								 
						
							
							
								0e4e05d5cd 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							
							
						 
						
							2008-10-08 03:51:44 -05:00  
				
					
						
							
							
								 
						
							
							
								7b6d9c4c4f 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							
							
						 
						
							2008-10-07 20:00:38 -05:00  
				
					
						
							
							
								 
						
							
							
								f436fd0c0f 
								
							
								 
							
						 
						
							
							
								
								Merging in new codegen  
							
							
							
						 
						
							2008-10-07 16:16:50 -05:00