c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
				
					
						
							
							
								 
						
							
							
								c3a4bdcf68 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: use if-empty.  
							
							
							
						 
						
							2014-12-11 14:00:50 -08:00  
				
					
						
							
							
								 
						
							
							
								e5866dfa80 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- )  
							
							
							
						 
						
							2014-12-11 14:30:47 +01:00  
				
					
						
							
							
								 
						
							
							
								5fe9ce4235 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- )  
							
							
							
						 
						
							2014-12-11 14:30:46 +01:00  
				
					
						
							
							
								 
						
							
							
								a0dd953e33 
								
							
								 
							
						 
						
							
							
								
								starting point - Fix bootstrap; I broke it in merging. Disable environment variables because the compiler isn't loaded yet and can't call C ffi functions, and tools.test loads this vocab.  
							
							... 
							
							
							
							Disable intrinsics in cpu.x86.64 for now, since they invoke the compiler
Fix ##branch renaming to ##branch,
To work on this branch:
./factor -include=math -i=boot.image
./factor -run=listener
USE: compiler USE: tools.test save
enable-optimizer
Error message is now:
T{ vregs-shouldn't-interfere f 409 424 } 
							
						 
						
							2012-12-31 11:03:45 -08:00  
				
					
						
							
							
								 
						
							
							
								07227f22f9 
								
							
								 
							
						 
						
							
							
								
								WIP  
							
							
							
						 
						
							2012-12-31 11:03:33 -08:00  
				
					
						
							
							
								 
						
							
							
								4e72d80256 
								
							
								 
							
						 
						
							
							
								
								Using "same?" in more places.  
							
							
							
						 
						
							2012-07-21 10:22:44 -07:00  
				
					
						
							
							
								 
						
							
							
								6cca0ea468 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Rename <##foo> to ##foo, in the low-level IR  
							
							
							
						 
						
							2011-11-11 19:48:38 -08:00  
				
					
						
							
							
								 
						
							
							
								eb2a0c611b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: Change low-level IR constructors from ##foo to <##foo>  
							
							
							
						 
						
							2011-11-06 23:02:46 -08:00  
				
					
						
							
							
								 
						
							
							
								355d89e8e8 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: now that kill-blocks cannot contain instructions that define vregs we can skip them all  
							
							
							
						 
						
							2010-07-27 12:40:31 -04:00  
				
					
						
							
							
								 
						
							
							
								ffd1844d52 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: clean up spill slot assignment  
							
							
							
						 
						
							2010-05-03 17:34:24 -04:00  
				
					
						
							
							
								 
						
							
							
								43f269e4eb 
								
							
								 
							
						 
						
							
							
								
								Register allocation now uses SSA properties to coalesce values with different representations  
							
							
							
						 
						
							2010-05-03 17:34:20 -04:00  
				
					
						
							
							
								 
						
							
							
								43fc230c69 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: cleanups  
							
							
							
						 
						
							2010-05-03 17:34:18 -04:00  
				
					
						
							
							
								 
						
							
							
								95ff5ffe51 
								
							
								 
							
						 
						
							
							
								
								New GC checks work in progress  
							
							
							
						 
						
							2010-05-03 17:34:16 -04:00  
				
					
						
							
							
								 
						
							
							
								db7403d697 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: fix incorrect behavior when one physical register is used with several representations in the same register class  
							
							
							
						 
						
							2010-05-03 17:34:14 -04:00  
				
					
						
							
							
								 
						
							
							
								705b4ab5c3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code  
							
							
							
						 
						
							2009-09-27 19:28:20 -05:00  
				
					
						
							
							
								 
						
							
							
								3cec74867d 
								
							
								 
							
						 
						
							
							
								
								Improving write barrier elimination; change to compiler.cfg.utilities to support this  
							
							
							
						 
						
							2009-08-14 19:41:41 -05:00  
				
					
						
							
							
								 
						
							
							
								687454878a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linearization: change order to fit older unit tests  
							
							
							
						 
						
							2009-08-08 23:06:57 -05:00  
				
					
						
							
							
								 
						
							
							
								d0c393aa60 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.  
							
							
							
						 
						
							2009-08-08 20:02:56 -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  
				
					
						
							
							
								 
						
							
							
								c1c8424605 
								
							
								 
							
						 
						
							
							
								
								Compiler speedups  
							
							
							
						 
						
							2009-08-02 09:16:21 -05:00  
				
					
						
							
							
								 
						
							
							
								e6f5eab598 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: fix resolve pass  
							
							
							
						 
						
							2009-07-28 08:47:35 -05:00  
				
					
						
							
							
								 
						
							
							
								857ef94acc 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass  
							
							
							
						 
						
							2009-07-28 07:39:46 -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  
				
					
						
							
							
								 
						
							
							
								8ff473e42c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges  
							
							
							
						 
						
							2009-07-12 23:00:33 -05:00  
				
					
						
							
							
								 
						
							
							
								c20e6c290f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies  
							
							
							
						 
						
							2009-07-08 23:07:06 -05:00  
				
					
						
							
							
								 
						
							
							
								a452f32e3a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Get cycle breaking in resolve pass to work by allocating a spare spill slot for this purpose  
							
							
							
						 
						
							2009-07-05 21:32:23 -05:00  
				
					
						
							
							
								 
						
							
							
								da13681bc8 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: redo resolve pass to fix a correctness issue  
							
							
							
						 
						
							2009-07-03 23:38:52 -05:00  
				
					
						
							
							
								 
						
							
							
								a19f22ec82 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: debugging spilling and resolve pass  
							
							
							
						 
						
							2009-07-01 17:41:07 -05:00  
				
					
						
							
							
								 
						
							
							
								d1f6871081 
								
							
								 
							
						 
						
							
							
								
								fix bug where traversal order was lost  
							
							
							
						 
						
							2009-06-30 16:44:14 -05:00  
				
					
						
							
							
								 
						
							
							
								f41f84436c 
								
							
								 
							
						 
						
							
							
								
								spill to spill-temp, not to virtual spill addresses  
							
							
							
						 
						
							2009-06-30 15:40:13 -05:00  
				
					
						
							
							
								 
						
							
							
								82bfaca188 
								
							
								 
							
						 
						
							
							
								
								Fix conflict  
							
							
							
						 
						
							2009-06-29 01:59:53 -05:00  
				
					
						
							
							
								 
						
							
							
								0f68ee3e9a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: remove redundant vocabs from using list  
							
							
							
						 
						
							2009-06-28 22:58:35 -05:00  
				
					
						
							
							
								 
						
							
							
								90017eb248 
								
							
								 
							
						 
						
							
							
								
								add spill-temp to compiler.cfg.instructions, implement parallel register assignment in linear-scan.resolve  
							
							
							
						 
						
							2009-06-26 21:48:21 -05:00  
				
					
						
							
							
								 
						
							
							
								387f6df9e5 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Debugging resolve pass  
							
							
							
						 
						
							2009-06-22 00:24:51 -05:00  
				
					
						
							
							
								 
						
							
							
								5a78956956 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: Working on resolve pass  
							
							
							
						 
						
							2009-06-21 00:20:01 -05:00  
				
					
						
							
							
								 
						
							
							
								6fb7dca404 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.resolve: fix compile error  
							
							
							
						 
						
							2009-06-14 17:00:52 -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