2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								USING:  tools.test  random  sorting  sequences  sets  hashtables  assocs 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								kernel fry arrays splitting namespaces math accessors vectors locals
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 18:44:50 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								math.order grouping strings strings.private classes layouts
							 
						 
					
						
							
								
									
										
										
										
											2008-10-09 00:42:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								cpu.architecture
							 
						 
					
						
							
								
									
										
										
										
											2009-05-29 14:11:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.optimizer
							 
						 
					
						
							
								
									
										
										
										
											2008-10-09 00:42:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.instructions
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.registers
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.predecessors
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.rpo
							 
						 
					
						
							
								
									
										
										
										
											2009-06-21 01:20:01 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.debugger
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.def-use
							 
						 
					
						
							
								
									
										
										
										
											2009-07-14 13:06:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.comparisons
							 
						 
					
						
							
								
									
										
										
										
											2010-07-16 19:57:45 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.ssa.destruction
							 
						 
					
						
							
								
									
										
										
										
											2008-09-17 01:46:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 14:01:27 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.numbering
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.live-intervals
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.allocation
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.allocation.state
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.allocation.splitting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.allocation.spilling
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								compiler.cfg.linear-scan.debugger ;
 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-26 17:17:40 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FROM:  namespaces  => set  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								IN:  compiler.cfg.linear-scan.tests 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check-allocation? on
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 14:01:27 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								check-numbering? on
 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-07-16 19:57:45 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! Live interval calculation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! A value is defined and never used; make sure it has the right 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! live range 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								V{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ ##load-integer f  1  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ ##replace-imm f  D 0  "hi"  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ ##branch }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 0  test-bb
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  test-live-intervals  (  --  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    cfg new  0  get  >>entry
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    [ cfg set  ] [ number-instructions ] [ compute-live-intervals ] tri
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    2drop  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { 1  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } representations set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { 1  1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } leader-map set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    test-live-intervals
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 0  0  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1  live-intervals get  at  [ start>> ] [ end>> ] bi
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Live range and interval splitting 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  10  } T{ live-range f  15  15  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  16  20  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  1  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  15  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 15  split-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  10  } T{ live-range f  15  16  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  17  20  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  1  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  15  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 16  split-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  10  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  15  20  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  1  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  15  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 12  split-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  10  } T{ live-range f  15  17  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  18  20  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  1  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  15  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 17  split-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  10  } } 0  split-ranges
							 
						 
					
						
							
								
									
										
										
										
											2009-06-13 18:35:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] must-fail
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  0  0  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  1  5  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { T{ live-range f  0  5  } } 0  split-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-22 01:25:10 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								cfg new  0  >>spill-area-size 4  >>spill-area-align cfg set
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{ } spill-slots set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{
							 
						 
					
						
							
								
									
										
										
										
											2009-09-03 21:58:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { 1  float-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 2  float-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 3  float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} representations set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  clean-up-split  (  a  b  --  a  b  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    [ dup  [ [ >vector  ] change-uses [ >vector  ] change-ranges ] when  ] bi@  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-10 04:58:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { end 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  1  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-10 04:58:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  2  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-09-27 20:28:20 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-to T{ spill-slot f  0  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-rep float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  5  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  5  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  5  5  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-09-27 20:28:20 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-from T{ spill-slot f  0  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-rep float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  1  f  float-rep } T{ vreg-use f  5  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  5  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 2  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    f
 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  1  f  float-rep } T{ vreg-use f  5  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  1  5  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-09-27 20:28:20 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-from T{ spill-slot f  4  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-rep float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  1  f  float-rep } T{ vreg-use f  5  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  5  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 0  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 3  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { end 2  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  1  f  float-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  2  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { spill-to T{ spill-slot f  8  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { spill-rep float-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { vreg 3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 5  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  1  f  float-rep } T{ vreg-use f  5  f  float-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  5  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 5  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { vreg 4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-10 04:58:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { end 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-10 04:58:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  1  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-to T{ spill-slot f  12  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-rep float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 4  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 30  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  20  f  float-rep } T{ vreg-use f  30  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  20  30  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-from T{ spill-slot f  12  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-rep float-rep }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 4  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 30  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  20  f  float-rep } T{ vreg-use f  30  f  float-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  8  } T{ live-range f  10  18  } T{ live-range f  20  30  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 10  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Don't insert reload if first usage is a def 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  1  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-to T{ spill-slot f  16  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-rep float-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  20  float-rep f  } T{ vreg-use f  30  f  float-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  20  30  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  20  float-rep f  } T{ vreg-use f  30  f  float-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  8  } T{ live-range f  10  18  } T{ live-range f  20  30  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } 10  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2009-07-05 22:32:23 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! Multiple representations 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 6  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 11  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  10  double-rep float-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  11  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-to T{ spill-slot f  24  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { spill-rep double-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 6  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  20  f  double-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  20  20  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-from T{ spill-slot f  24  } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reload-rep double-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-05-11 19:11:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { vreg 6  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class float-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { end 20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses V{ T{ vreg-use f  0  float-rep f  } T{ vreg-use f  10  double-rep float-rep } T{ vreg-use f  20  f  double-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  20  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 15  split-for-spill
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 17:55:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { vreg 7  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { start  8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  8  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  8  int-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { vreg 7  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { start  4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  4  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  8  int-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 4  split-for-spill
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! trim-before-ranges, trim-after-ranges 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { vreg 8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  0  3  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  0  f  int-rep } T{ vreg-use f  2  f  int-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { spill-to T{ spill-slot f  32  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { spill-rep int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { vreg 8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { start  14  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 16  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  14  16  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  14  f  int-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reload-from T{ spill-slot f  32  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reload-rep int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { vreg 8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 16  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  0  4  } T{ live-range f  6  10  } T{ live-range f  12  16  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  0  f  int-rep } T{ vreg-use f  2  f  int-rep } T{ vreg-use f  14  f  int-rep } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 8  split-for-spill
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    clean-up-split
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 1  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 2  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 3  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} representations set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        3
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        10
 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { int-regs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          V{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg 1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { start  1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 15  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { uses V{ T{ vreg-use f  1  int-rep f  } T{ vreg-use f  3  f  int-rep } T{ vreg-use f  7  f  int-rep } T{ vreg-use f  10  f  int-rep } T{ vreg-use f  15  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg 2  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { start  3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { uses V{ T{ vreg-use f  3  int-rep f  } T{ vreg-use f  4  f  int-rep } T{ vreg-use f  8  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 3  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg 3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { start  3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 10  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { uses V{ T{ vreg-use f  3  int-rep f  } T{ vreg-use f  10  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } active-intervals set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{ } inactive-intervals set
 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { start  5  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  5  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    spill-status
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        1
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        1/0.
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { int-regs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          V{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg 1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { start  1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 15  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { uses V{ T{ vreg-use f  1  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg 2  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { start  3  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { uses V{ T{ vreg-use f  3  int-rep f  } T{ vreg-use f  8  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } active-intervals set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{ } inactive-intervals set
 
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { vreg 3  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { start  5  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  5  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    spill-status
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{ { 1  int-rep } { 2  int-rep } } representations set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 100  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  100  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  100  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 10  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  10  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  10  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  11  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 20  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  11  int-rep f  } T{ vreg-use f  20  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  11  20  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 100  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  100  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  100  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 60  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  30  int-rep f  } T{ vreg-use f  60  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  30  60  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 100  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  100  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  100  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 200  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  30  int-rep f  } T{ vreg-use f  200  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  30  200  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 100  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  100  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  100  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 100  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  30  int-rep f  } T{ vreg-use f  100  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-04 19:53:02 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  30  100  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2008-10-19 02:10:21 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 02:54:48 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! Problem with spilling intervals with no more usages after the spill location 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 1  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 2  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 3  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 4  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 5  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} representations set
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 20  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  10  f  int-rep } T{ vreg-use f  20  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  2  } T{ live-range f  10  20  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 20  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  10  f  int-rep } T{ vreg-use f  20  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  2  } T{ live-range f  10  20  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 3  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  6  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  4  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 4  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  8  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  4  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ! This guy will invoke the 'spill partially available' code path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  8  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  4  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  "B"  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Test spill-new code path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 10  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  0  int-rep f  } T{ vreg-use f  6  f  int-rep } T{ vreg-use f  10  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  0  10  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        ! This guy will invoke the 'spill new' code path 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { vreg 5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { start  2  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								           { end 8  }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { uses V{ T{ vreg-use f  8  int-rep f  } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-30 03:13:30 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								           { ranges V{ T{ live-range f  2  8  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{ { int-regs { "A"  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    check-linear-scan
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-06 02:04:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ f  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  20  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-range
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 10  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  10  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-range
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  5  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-range
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  5  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-range
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  5  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-range f  0  15  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-range
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 50  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  20  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  40  50  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  11  15  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  31  35  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  50  55  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-07 04:28:55 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ f  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  0  10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  20  30  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  40  50  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  11  15  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  31  36  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        T{ live-range f  51  55  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    intersect-live-ranges
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-06 02:04:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 5  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  0  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-06 02:04:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { end 10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses { 0  10  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  0  10  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { start  5  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-06 02:04:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       { end 10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { uses { 5  10  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       { ranges V{ T{ live-range f  5  10  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-24 14:54:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    relevant-ranges intersect-live-ranges
							 
						 
					
						
							
								
									
										
										
										
											2009-06-11 18:55:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! register-status had problems because it used map>assoc where the sequence 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								! had multiple keys 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 1  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 2  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 3  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 4  int-rep }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} representations set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ { 0  10  } ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{ { int-regs { 0  1  } } } registers set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { int-regs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 1  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 20  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { reg 0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { ranges V{ T{ live-range f  0  2  } T{ live-range f  10  20  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { uses V{ 0  2  10  20  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 2  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { start  4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 40  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { reg 0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { ranges V{ T{ live-range f  4  6  } T{ live-range f  30  40  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { uses V{ 4  6  30  40  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } inactive-intervals set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    H{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { int-regs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2009-08-08 05:02:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { vreg 3  }
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                 { start  0  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { end 40  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { reg 1  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { ranges V{ T{ live-range f  0  40  } } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 { uses V{ 0  40  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } active-intervals set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    T{ live-interval
							 
						 
					
						
							
								
									
										
										
										
											2010-04-28 03:35:46 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { vreg 4  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { reg-class int-regs }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { start  8  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { end 10  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { ranges V{ T{ live-range f  8  10  } } }
							 
						 
					
						
							
								
									
										
										
										
											2010-05-07 18:22:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { uses V{ T{ vreg-use f  8  int-rep f  } T{ vreg-use f  10  f  int-rep } } }
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2009-07-01 18:41:07 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    register-status
							 
						 
					
						
							
								
									
										
										
										
											2009-06-30 17:07:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test