7b18618b3e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: fixes the the 64-bit-o-centric testcases  
							
							
							
						 
						
							2015-11-04 13:54:14 +01:00  
				
					
						
							
							
								 
						
							
							
								bb6fa7267c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: help-lint fixes  
							
							
							
						 
						
							2015-11-04 13:38:59 +01:00  
				
					
						
							
							
								 
						
							
							
								f692200547 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: refactoring which removes spill-area-size and  
							
							... 
							
							
							
							spill-area-align from cfg
This makes the code for building the stack frame simpler. 
							
						 
						
							2015-11-04 07:53:19 +01:00  
				
					
						
							
							
								 
						
							
							
								cfe4fec574 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: make it so cfg is given as an argument to next-spill-slot  
							
							
							
						 
						
							2015-11-04 07:53:19 +01:00  
				
					
						
							
							
								 
						
							
							
								89e261f673 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.ranges: remove the live-range definition and  
							
							... 
							
							
							
							use integer pairs instead
so instead of ranges being a sequence of live-ranges it is now a
sequence of integer pairs instead. That makes the
compiler.cfg.linear-scan.ranges simpler and easier to generalize 
							
						 
						
							2015-09-22 08:51:04 +02:00  
				
					
						
							
							
								 
						
							
							
								fb45bc278f 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.live-intervals: the reg-class slot can be  
							
							... 
							
							
							
							removed
it's always the same as vreg>> rep-of reg-class-of so no need to store
that data twice 
							
						 
						
							2015-09-22 08:51:04 +02:00  
				
					
						
							
							
								 
						
							
							
								ceb75057da 
								
							
								 
							
						 
						
							
							
								
								change ERROR: words from throw-foo back to foo.  
							
							
							
						 
						
							2015-08-13 16:13:05 -07:00  
				
					
						
							
							
								 
						
							
							
								b6be8685c3 
								
							
								 
							
						 
						
							
							
								
								basis: ERROR: changes.  
							
							
							
						 
						
							2015-08-13 03:20:39 -07:00  
				
					
						
							
							
								 
						
							
							
								330c7ba156 
								
							
								 
							
						 
						
							
							
								
								factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.  
							
							... 
							
							
							
							Redo many FROM: and QUALIFIED: and using lists. 
							
						 
						
							2015-08-12 08:49:02 -05:00  
				
					
						
							
							
								 
						
							
							
								22b871d82e 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.utilities: make it so block>cfg initializes spill-area-align  
							
							
							
						 
						
							2015-07-29 13:01:24 +02:00  
				
					
						
							
							
								 
						
							
							
								b544c1b352 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: some extra unit tests for the compiler  
							
							
							
						 
						
							2015-07-28 17:58:29 -07:00  
				
					
						
							
							
								 
						
							
							
								40892c0302 
								
							
								 
							
						 
						
							
							
								
								tests: prefer ${ } instead of 1array  
							
							
							
						 
						
							2015-07-02 14:56:14 -07:00  
				
					
						
							
							
								 
						
							
							
								59f3b1ea57 
								
							
								 
							
						 
						
							
							
								
								Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"  
							
							... 
							
							
							
							Needs a bit more work.
This reverts commit 7e54cc2824 
							
						 
						
							2015-07-02 13:47:06 -07:00  
				
					
						
							
							
								 
						
							
							
								7e54cc2824 
								
							
								 
							
						 
						
							
							
								
								factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!  
							
							
							
						 
						
							2015-07-02 11:36:08 -07:00  
				
					
						
							
							
								 
						
							
							
								8c8605d11a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: more tests and docs for allocation and state  
							
							
							
						 
						
							2015-06-16 18:28:32 -07:00  
				
					
						
							
							
								 
						
							
							
								78fe8bf1dc 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: dont use a hashtable here, it fixes register  
							
							... 
							
							
							
							allocation so it's always in the same order as machine-registers 
							
						 
						
							2015-06-16 18:28:32 -07:00  
				
					
						
							
							
								 
						
							
							
								c0645ecafe 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: fix help-lint errors  
							
							
							
						 
						
							2015-06-14 16:44:37 +02:00  
				
					
						
							
							
								 
						
							
							
								418438ab13 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: change compute-live-intervals so that it  
							
							... 
							
							
							
							returns only one sequence, it makes some words a little simpler 
							
						 
						
							2015-06-14 16:44:37 +02:00  
				
					
						
							
							
								 
						
							
							
								91118ae5df 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state:  fix   #1345  by adding vreg to  
							
							... 
							
							
							
							the heap key
By having { start end vreg } as the key in the min-heap ordering is
guaranteed even if two intervals share the same start and end. 
							
						 
						
							2015-06-14 16:44:37 +02:00  
				
					
						
							
							
								 
						
							
							
								2c3492a916 
								
							
								 
							
						 
						
							
							
								
								minor cleanup to some docs.  
							
							
							
						 
						
							2015-05-13 16:09:14 -07:00  
				
					
						
							
							
								 
						
							
							
								6097e80178 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: fixing tests so they work on 32bit archs too  
							
							
							
						 
						
							2015-04-30 04:49:48 +02:00  
				
					
						
							
							
								 
						
							
							
								997f95196c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: lots of new unit tests  
							
							
							
						 
						
							2015-04-29 09:31:58 -07:00  
				
					
						
							
							
								 
						
							
							
								167d1598b3 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.*: lots more docs and some word simplifications  
							
							
							
						 
						
							2015-04-29 09:31:58 -07:00  
				
					
						
							
							
								 
						
							
							
								5cd44dc07c 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: set spill-area-size/align when the cfg tuple is created  
							
							
							
						 
						
							2015-04-29 09:31:57 -07:00  
				
					
						
							
							
								 
						
							
							
								4cda101717 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: more docs and tests for vocab  
							
							
							
						 
						
							2015-04-29 09:31:57 -07:00  
				
					
						
							
							
								 
						
							
							
								2a893a110a 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: don't use slot.syntax.  
							
							
							
						 
						
							2014-12-15 13:10:59 -08:00  
				
					
						
							
							
								 
						
							
							
								84f8f26ce8 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: doc fixing  
							
							
							
						 
						
							2014-12-15 20:44:53 +01:00  
				
					
						
							
							
								 
						
							
							
								35d00da765 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.*: maybe a fix for  #1227  
							
							... 
							
							
							
							The register allocator pops from the unhandled-intervals and
unhandled-sync-points heaps. If two live intervals share the same
start slot, then they can be popped in either order leading to
differently generated code. So instead use one
heap (unhandled-min-heap) and both the start and end slot as the heap
key to resolve tie-breakers 
							
						 
						
							2014-12-15 20:44:53 +01:00  
				
					
						
							
							
								 
						
							
							
								8a011c8366 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.*: more docs  
							
							
							
						 
						
							2014-12-15 20:44:07 +01:00  
				
					
						
							
							
								 
						
							
							
								c810677b47 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: refactoring to simplify init-allocator and get rid of init-unhandled  
							
							
							
						 
						
							2014-12-15 20:44:06 +01:00  
				
					
						
							
							
								 
						
							
							
								c65877104e 
								
							
								 
							
						 
						
							
							
								
								compiler: cleanup usings.  
							
							
							
						 
						
							2014-12-13 16:10:21 -08:00  
				
					
						
							
							
								 
						
							
							
								ad9d44aa2b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: simplify init-unhandled.  
							
							
							
						 
						
							2014-12-01 22:18:15 -08:00  
				
					
						
							
							
								 
						
							
							
								d3c91bea72 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.*: stub docs and tests  
							
							
							
						 
						
							2014-11-16 06:25:54 -08:00  
				
					
						
							
							
								 
						
							
							
								1eac4afc8b 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan.allocation.state: sub docs and tests  
							
							
							
						 
						
							2014-11-16 06:25:53 -08:00  
				
					
						
							
							
								 
						
							
							
								07227f22f9 
								
							
								 
							
						 
						
							
							
								
								WIP  
							
							
							
						 
						
							2012-12-31 11:03:33 -08:00  
				
					
						
							
							
								 
						
							
							
								2bd6de9a02 
								
							
								 
							
						 
						
							
							
								
								slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global  
							
							
							
						 
						
							2011-09-19 10:03:43 -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  
				
					
						
							
							
								 
						
							
							
								ba7cb61133 
								
							
								 
							
						 
						
							
							
								
								Stack allocation improvements  
							
							... 
							
							
							
							- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas 
							
						 
						
							2010-05-22 02:37:00 -04:00  
				
					
						
							
							
								 
						
							
							
								f5c5d8b44c 
								
							
								 
							
						 
						
							
							
								
								compiler: remove flat machine representation and generate code directly from the CFG  
							
							
							
						 
						
							2010-05-03 17:34:32 -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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								43fc230c69 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: cleanups  
							
							
							
						 
						
							2010-05-03 17:34:18 -04:00  
				
					
						
							
							
								 
						
							
							
								299b5b0f6c 
								
							
								 
							
						 
						
							
							
								
								filter-here -> filter!  
							
							
							
						 
						
							2009-10-28 00:44:05 -05:00  
				
					
						
							
							
								 
						
							
							
								50f5c3d116 
								
							
								 
							
						 
						
							
							
								
								remq -> remove-eq, delq -> remove-eq!  
							
							
							
						 
						
							2009-10-28 00:23:08 -05:00  
				
					
						
							
							
								 
						
							
							
								1d872db58d 
								
							
								 
							
						 
						
							
							
								
								compiler.cfg.linear-scan: tweak it so that register allocation does not depend on hashing order  
							
							
							
						 
						
							2009-09-27 23:29:48 -05: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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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