53aed0805a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: fix bug in lazy alias class instantiation  
							
							
							
						 
						
							2010-09-27 20:12:43 -07:00  
				
					
						
							
							
								 
						
							
							
								80d7aab40b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: don't need to do a local live-in calculation anymore  
							
							
							
						 
						
							2010-09-25 16:13:17 -07:00  
				
					
						
							
							
								 
						
							
							
								a605d5c9c9 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: dead store elimination was too aggressive, can't eliminate dead stores across a GC call even for fresh allocations because GC will see uninitialized data  
							
							
							
						 
						
							2010-09-06 16:57:56 -07:00  
				
					
						
							
							
								 
						
							
							
								b6fe62299e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: factor-call-insns which defined values were not handled properly  
							
							
							
						 
						
							2010-07-19 19:56:00 -04:00  
				
					
						
							
							
								 
						
							
							
								e27adb2830 
								
							
								 
							
						 
						
							
							
								
								compiler: re-architect low-level optimizer to allow more than one output value per instruction  
							
							
							
						 
						
							2010-07-13 07:40:14 -04:00  
				
					
						
							
							
								 
						
							
							
								a55c8ee671 
								
							
								 
							
						 
						
							
							
								
								FFI rewrite part 6: deconcatenatize  
							
							
							
						 
						
							2010-07-02 15:44:12 -04:00  
				
					
						
							
							
								 
						
							
							
								d1e422c981 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: simplify and speed up  
							
							
							
						 
						
							2010-05-14 18:37:07 -04:00  
				
					
						
							
							
								 
						
							
							
								bb87d124c1 
								
							
								 
							
						 
						
							
							
								
								compiler: small fixes and cleanups  
							
							
							
						 
						
							2010-05-13 02:48:20 -04:00  
				
					
						
							
							
								 
						
							
							
								ca4f442eaa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: storing a reference into an object now merges the reference's alias class with the heap alias class  
							
							
							
						 
						
							2010-05-03 18:20:28 -04:00  
				
					
						
							
							
								 
						
							
							
								e90712b1ed 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: cleanup  
							
							
							
						 
						
							2010-05-03 17:34:26 -04:00  
				
					
						
							
							
								 
						
							
							
								ce73031ec3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: write unit tests and fix redundant store elimination  
							
							
							
						 
						
							2010-05-03 17:34:22 -04:00  
				
					
						
							
							
								 
						
							
							
								f14f2cbdab 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.value-numbering: merge 'simplify' pass into 'rewrite'  
							
							
							
						 
						
							2010-05-03 17:34:08 -04:00  
				
					
						
							
							
								 
						
							
							
								5d3a7a7362 
								
							
								 
							
						 
						
							
							
								
								Untagged fixnums work in progress  
							
							
							
						 
						
							2010-05-03 17:34:02 -04:00  
				
					
						
							
							
								 
						
							
							
								503c0fcfde 
								
							
								 
							
						 
						
							
							
								
								compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies  
							
							
							
						 
						
							2010-05-03 17:34:01 -04:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								eceabbc57e 
								
							
								 
							
						 
						
							
							
								
								compiler: new set-special-object intrinsic; more efficient special-object intrinsic  
							
							
							
						 
						
							2010-04-01 20:09:14 -04:00  
				
					
						
							
							
								 
						
							
							
								1e5f202998 
								
							
								 
							
						 
						
							
							
								
								Maing vocabs.hierarchy use sets; modifying alias analysis's use of sets  
							
							
							
						 
						
							2010-02-28 22:55:22 -05:00  
				
					
						
							
							
								 
						
							
							
								1217dc9c6e 
								
							
								 
							
						 
						
							
							
								
								Making alias analysis use sets  
							
							
							
						 
						
							2010-02-28 22:42:10 -05:00  
				
					
						
							
							
								 
						
							
							
								7074979745 
								
							
								 
							
						 
						
							
							
								
								Moving new-sets to sets  
							
							
							
						 
						
							2010-02-26 16:01:01 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								fb09d67936 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: fix ##compare where operands are copies  
							
							
							
						 
						
							2009-10-01 23:54:19 -05:00  
				
					
						
							
							
								 
						
							
							
								2a4475f85e 
								
							
								 
							
						 
						
							
							
								
								Fix alias analysis of a ##compare whose input is another ##compare  
							
							
							
						 
						
							2009-10-01 23:20:05 -05:00  
				
					
						
							
							
								 
						
							
							
								31f39ce32f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: optimize ##vm-field-ptr and ##alien-global instructions, and optimize out ##compare between values of different alias classes; this optimizes '[ [ >float ] bi@ [ + ] [ - ] 2bi eq? ]' down to an o-op and removes boxing from '[ [ >float ] bi@ [ + ] [ - ] 2bi = ]'  
							
							
							
						 
						
							2009-10-01 23:03:17 -05:00  
				
					
						
							
							
								 
						
							
							
								84faf2431f 
								
							
								 
							
						 
						
							
							
								
								cleaned up vm-field-ptr compiler code  
							
							
							
						 
						
							2009-09-24 08:16:57 +01:00  
				
					
						
							
							
								 
						
							
							
								ff8f2b10ec 
								
							
								 
							
						 
						
							
							
								
								fixed up getenv compiler intrinsic to use vm struct userenv  
							
							
							
						 
						
							2009-09-16 08:16:32 +01:00  
				
					
						
							
							
								 
						
							
							
								85a2bfab6c 
								
							
								 
							
						 
						
							
							
								
								compiler: eliminate boilerplate by centralizing info in declarative INSN: syntax  
							
							
							
						 
						
							2009-09-02 06:22:37 -05:00  
				
					
						
							
							
								 
						
							
							
								3f3d57032b 
								
							
								 
							
						 
						
							
							
								
								Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring  
							
							
							
						 
						
							2009-08-13 19:21:44 -05:00  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								725280d424 
								
							
								 
							
						 
						
							
							
								
								Split off the notion of a register representation from a register class  
							
							
							
						 
						
							2009-08-07 17:44:50 -05:00  
				
					
						
							
							
								 
						
							
							
								89db2e745d 
								
							
								 
							
						 
						
							
							
								
								Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code  
							
							
							
						 
						
							2009-07-22 06:07:28 -05:00  
				
					
						
							
							
								 
						
							
							
								21a012e3d7 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework  
							
							
							
						 
						
							2009-07-22 03:08:28 -05:00  
				
					
						
							
							
								 
						
							
							
								9e987e8642 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' into global_optimization  
							
							
							
						 
						
							2009-06-01 03:12:32 -05:00  
				
					
						
							
							
								 
						
							
							
								692b479302 
								
							
								 
							
						 
						
							
							
								
								Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass  
							
							
							
						 
						
							2009-05-31 12:20:46 -05:00  
				
					
						
							
							
								 
						
							
							
								e04df76f60 
								
							
								 
							
						 
						
							
							
								
								Various codegen improvements:  
							
							... 
							
							
							
							- new-insn word to construct instructions
- cache RPO in the CFG
- re-organize low-level optimizer so that MR is built after register allocation
- register allocation now stores instruction numbers in the instructions themselves
- split defs-vregs into defs-vregs and temp-vregs 
							
						 
						
							2009-05-29 13:11:34 -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  
				
					
						
							
							
								 
						
							
							
								ceb332f596 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.alias-analysis: ##peek needs to set alias class of output value  
							
							
							
						 
						
							2009-05-28 18:19:01 -05:00  
				
					
						
							
							
								 
						
							
							
								1fa465d77f 
								
							
								 
							
						 
						
							
							
								
								Fix alias analysis  
							
							
							
						 
						
							2009-05-28 02:48:58 -05:00  
				
					
						
							
							
								 
						
							
							
								3b79d61496 
								
							
								 
							
						 
						
							
							
								
								Add a new ##allocation union to remove some code duplication  
							
							
							
						 
						
							2009-05-27 18:55:49 -05:00  
				
					
						
							
							
								 
						
							
							
								ce25e0ad8d 
								
							
								 
							
						 
						
							
							
								
								New local-optimization combinator removes some boilerplate  
							
							
							
						 
						
							2009-05-26 19:56:56 -05:00  
				
					
						
							
							
								 
						
							
							
								1db81da264 
								
							
								 
							
						 
						
							
							
								
								Refactoring low-level optimizer to support stack analysis pass  
							
							
							
						 
						
							2009-05-26 19:31:19 -05:00  
				
					
						
							
							
								 
						
							
							
								407377fc98 
								
							
								 
							
						 
						
							
							
								
								rename peek -> last and update all usages  
							
							
							
						 
						
							2009-05-25 16:38:33 -05: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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								08b277e892 
								
							
								 
							
						 
						
							
							
								
								Fix alias anlaysis bug: result of ##box-alien and ##box-float did not get an AC, so calling hi-tag would not compile  
							
							
							
						 
						
							2008-11-03 01:52:55 -06:00  
				
					
						
							
							
								 
						
							
							
								492a15e345 
								
							
								 
							
						 
						
							
							
								
								Move insn class to compiler.cfg.instructions  
							
							
							
						 
						
							2008-10-24 09:17:06 -05:00  
				
					
						
							
							
								 
						
							
							
								885adc8dc9 
								
							
								 
							
						 
						
							
							
								
								Various improvements  
							
							
							
						 
						
							2008-10-23 05:27:54 -05:00  
				
					
						
							
							
								 
						
							
							
								f09813f6fd 
								
							
								 
							
						 
						
							
							
								
								Alias analysis  
							
							
							
						 
						
							2008-10-22 18:37:47 -05:00