Sat Jul 14 01:32:41 PDT 2007  Clemens Fruhwirth <[EMAIL PROTECTED]>
  * joinToTargets to emit fixup code even when movement graph contains cycles
  
  First, cycles can only start of with registers and their destination
  must involve a register location. This is because memory locations are
  allocated exclusively for a virtual register and hence can never cause
  a conflict in the assignment, hence need no fixup code. Therefore, we
  only have to deal with InReg -> InReg, or InReg -> InReg/InMem
  movements.  
  
  The strategy is to take the first cycle element, which is guaranteed
  to start with a register, spill it to a fresh memory location, compute
  the fixup for the rest, and restore from the spill slot to its
  destinations. The "rest" will degenerate into an acyclic scc, so we do
  not need take care of the empty list case in CyclicScc. 
   ***END OF DESCRIPTION***
  
  Place the long patch description above the ***END OF DESCRIPTION*** marker.
  The first line of this file will be the patch name.
  
  
  This patch contains the following changes:
  
  M ./compiler/nativeGen/RegisterAlloc.hs -6 +27

    M ./compiler/nativeGen/RegisterAlloc.hs -6 +27

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to