79dcce8f39 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: also print the instruction number  
							
							... 
							
							
							
							it's useful to see when debugging some compiler passes 
							
						 
						
							2016-11-23 18:56:03 +01:00  
				
					
						
							
							
								 
						
							
							
								af7e4903a2 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: print -> write to not add stray newlines  
							
							
							
						 
						
							2016-09-01 09:59:15 +02:00  
				
					
						
							
							
								 
						
							
							
								c26379ea7e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: better code for outputting using the formatting vocab  
							
							
							
						 
						
							2016-08-30 04:04:21 +02:00  
				
					
						
							
							
								 
						
							
							
								f0834e7b36 
								
							
								 
							
						 
						
							
							
								
								compiler.prettyprint: new vocab for prettyprinting compiler types  
							
							... 
							
							
							
							The require-when ensures that the prettyprint methods are loaded when
both the compiler and prettyprint is loaded. 
							
						 
						
							2016-08-15 15:16:41 +02:00  
				
					
						
							
							
								 
						
							
							
								a36c0cb5ac 
								
							
								 
							
						 
						
							
							
								
								compiler.*: moving all words only relevant for testing to compiler.test  
							
							
							
						 
						
							2016-08-12 15:13:51 +02:00  
				
					
						
							
							
								 
						
							
							
								05de15bdc1 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.utilities: rewrite apply-passes as a macro  
							
							... 
							
							
							
							It makes for more detailed callstacks when profiling. 
							
						 
						
							2016-05-18 23:49:03 +02:00  
				
					
						
							
							
								 
						
							
							
								720edcbd3b 
								
							
								 
							
						 
						
							
							
								
								style fixes - indenting slots and word bodies  
							
							
							
						 
						
							2016-04-22 13:06:41 +02:00  
				
					
						
							
							
								 
						
							
							
								d0aae5cc20 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linearization: number-blocks can set the number>> accessor  
							
							... 
							
							
							
							instead of using the numbers dynamic variable 
							
						 
						
							2015-09-22 08:51:03 +02:00  
				
					
						
							
							
								 
						
							
							
								ce046b77c8 
								
							
								 
							
						 
						
							
							
								
								compiler: rename D to D: because it wants a token. Same for R -> R:  
							
							
							
						 
						
							2015-08-13 15:23:10 -07:00  
				
					
						
							
							
								 
						
							
							
								09e4606791 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: alien-invoke insn nodes were printing double quotes in the dot file output. If you would pprint a string, instead print that string so the double quotes are not present in the output.  
							
							
							
						 
						
							2015-06-24 18:46:39 -07:00  
				
					
						
							
							
								 
						
							
							
								050e15ce83 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: new words build-optimized-tree and run-passes to  
							
							... 
							
							
							
							remove some duplicated code 
							
						 
						
							2015-04-29 09:31:59 -07:00  
				
					
						
							
							
								 
						
							
							
								4390561a6e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: new word reset-vreg-counter, useful for making test writing more convenient  
							
							
							
						 
						
							2015-04-29 09:31:55 -07:00  
				
					
						
							
							
								 
						
							
							
								ded3760d46 
								
							
								 
							
						 
						
							
							
								
								compiler.*: merge of ##inc-r and ##inc-d into one instruction ##inc with a loc slot  
							
							... 
							
							
							
							this is nice because it leads to simpler code and matches how ##peek and ##replace instructions work 
							
						 
						
							2015-04-29 09:31:53 -07:00  
				
					
						
							
							
								 
						
							
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
				
					
						
							
							
								 
						
							
							
								068ddd6c7b 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup cfg passes to have stack effect ( cfg -- )  
							
							
							
						 
						
							2014-12-11 12:48:43 -08:00  
				
					
						
							
							
								 
						
							
							
								4c07d04417 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: getting an instruction sequence from a cfg is used in a few tests so let's make a word for it  
							
							
							
						 
						
							2014-11-24 06:25:34 +01:00  
				
					
						
							
							
								 
						
							
							
								96396cb3ad 
								
							
								 
							
						 
						
							
							
								
								compiler.*: use block>cfg and insns>block in many tests instead of wordier code  
							
							
							
						 
						
							2014-11-22 17:31:38 -08:00  
				
					
						
							
							
								 
						
							
							
								f4a6e10818 
								
							
								 
							
						 
						
							
							
								
								More cleanup of unused stuff.  
							
							
							
						 
						
							2011-10-19 11:01:16 -07:00  
				
					
						
							
							
								 
						
							
							
								34f71ea042 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: add random-scheduling word.  
							
							... 
							
							
							
							Run 'random-scheduling "compiler" test' to find bugs in compiler.cfg.dependencies. 
							
						 
						
							2011-08-28 21:25:37 -07:00  
				
					
						
							
							
								 
						
							
							
								42b858b3f0 
								
							
								 
							
						 
						
							
							
								
								math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies  
							
							
							
						 
						
							2010-08-12 21:41:57 -07: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  
				
					
						
							
							
								 
						
							
							
								f5c5d8b44c 
								
							
								 
							
						 
						
							
							
								
								compiler: remove flat machine representation and generate code directly from the CFG  
							
							
							
						 
						
							2010-05-03 17:34:32 -04:00  
				
					
						
							
							
								 
						
							
							
								5236f327ba 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: add ssa. word to print IR before representation selection runs  
							
							
							
						 
						
							2010-05-03 17:34:31 -04:00  
				
					
						
							
							
								 
						
							
							
								33eb15bf44 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: clean up and make it more flexible  
							
							
							
						 
						
							2010-05-03 17:34:22 -04:00  
				
					
						
							
							
								 
						
							
							
								9b34a4a054 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation  
							
							
							
						 
						
							2010-05-03 17:34:18 -04:00  
				
					
						
							
							
								 
						
							
							
								cb646db54a 
								
							
								 
							
						 
						
							
							
								
								add a "test-mr." word to compiler.cfg.debugger equivalent to "test-mr mr."  
							
							
							
						 
						
							2009-09-30 11:34:19 -05:00  
				
					
						
							
							
								 
						
							
							
								66071f45a3 
								
							
								 
							
						 
						
							
							
								
								Add a couple more def-is-use instructions  
							
							
							
						 
						
							2009-09-27 20:34:20 -05:00  
				
					
						
							
							
								 
						
							
							
								8d55616d34 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: fix fake-representations so that low-level-ir tests can pass on x86  
							
							
							
						 
						
							2009-08-25 23:44:01 -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  
				
					
						
							
							
								 
						
							
							
								7ec288b013 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: fix load error  
							
							
							
						 
						
							2009-08-02 08:11:04 -05:00  
				
					
						
							
							
								 
						
							
							
								01f51a96cd 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block  
							
							
							
						 
						
							2009-08-02 06:16:58 -05:00  
				
					
						
							
							
								 
						
							
							
								e1c7f7394a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg: clean up unit tests using some new utilities  
							
							
							
						 
						
							2009-08-02 03:49:25 -05:00  
				
					
						
							
							
								 
						
							
							
								423d2996fa 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.debugger: reset vreg counters  
							
							
							
						 
						
							2009-07-27 22:28:13 -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  
				
					
						
							
							
								 
						
							
							
								11347e784c 
								
							
								 
							
						 
						
							
							
								
								insn. doesn't print numbers  
							
							
							
						 
						
							2009-07-10 03:05:45 -05:00  
				
					
						
							
							
								 
						
							
							
								96baede36a 
								
							
								 
							
						 
						
							
							
								
								Redesign compiler.cfg.stack-analysis to make compiler.cfg.height redundant, and to fix some problems  
							
							
							
						 
						
							2009-06-26 17:29:55 -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  
				
					
						
							
							
								 
						
							
							
								057f75e9a1 
								
							
								 
							
						 
						
							
							
								
								Refactor compiler.tree.builder to fix various regressions  
							
							
							
						 
						
							2009-04-21 23:02:00 -05:00  
				
					
						
							
							
								 
						
							
							
								65a53e1fa5 
								
							
								 
							
						 
						
							
							
								
								Don't keep compiled-effect around anymore  
							
							
							
						 
						
							2009-02-23 23:55:16 -06:00  
				
					
						
							
							
								 
						
							
							
								6b25e99470 
								
							
								 
							
						 
						
							
							
								
								Add summary for heaps more vocabs  
							
							
							
						 
						
							2009-02-16 21:05:13 -06:00  
				
					
						
							
							
								 
						
							
							
								4f0a9f311e 
								
							
								 
							
						 
						
							
							
								
								Untangling some dependencies  
							
							
							
						 
						
							2008-12-08 14:58:00 -06:00  
				
					
						
							
							
								 
						
							
							
								8df1aba71d 
								
							
								 
							
						 
						
							
							
								
								Coalescing  
							
							
							
						 
						
							2008-11-02 01:49:57 -06:00  
				
					
						
							
							
								 
						
							
							
								1f693b50b3 
								
							
								 
							
						 
						
							
							
								
								Massive focused action  
							
							
							
						 
						
							2008-10-22 18:39:41 -05:00  
				
					
						
							
							
								 
						
							
							
								f092622fac 
								
							
								 
							
						 
						
							
							
								
								CFG IR is now pure SSA  
							
							
							
						 
						
							2008-10-20 01:56:28 -05:00  
				
					
						
							
							
								 
						
							
							
								14d8696f40 
								
							
								 
							
						 
						
							
							
								
								Oops, don't mix register classes in active set  
							
							
							
						 
						
							2008-10-19 03:34:42 -05:00  
				
					
						
							
							
								 
						
							
							
								c0d89b061e 
								
							
								 
							
						 
						
							
							
								
								Fixing register allocator prspilling  
							
							
							
						 
						
							2008-10-19 01:10:21 -05:00  
				
					
						
							
							
								 
						
							
							
								7b6d9c4c4f 
								
							
								 
							
						 
						
							
							
								
								Debugging new codegen  
							
							
							
						 
						
							2008-10-07 20:00:38 -05:00