1. 15 Sep, 2007 6 commits
  2. 16 Sep, 2007 2 commits
  3. 15 Sep, 2007 3 commits
  4. 14 Sep, 2007 5 commits
  5. 13 Sep, 2007 3 commits
  6. 15 Sep, 2007 1 commit
  7. 14 Sep, 2007 8 commits
  8. 13 Sep, 2007 3 commits
    • Ian Lynagh's avatar
      Give darcs-all a -s (silent) flag · a28ba79a
      Ian Lynagh authored
      a28ba79a
    • Ben.Lippmeier@anu.edu.au's avatar
      warning police · d5938fb2
      Ben.Lippmeier@anu.edu.au authored
      d5938fb2
    • Ben.Lippmeier@anu.edu.au's avatar
      Better calculation of spill costs / selection of spill candidates. · 220a12e9
      Ben.Lippmeier@anu.edu.au authored
      Use Chaitin's formula for calculation of spill costs.
        Cost to spill some vreg = (num writes + num reads) / degree of node
      
      With 2 extra provisos:
        1) Don't spill vregs that live for only 1 instruction.
        2) Always prefer to spill vregs that live for a number of instructions
             more than 10 times the number of vregs in that class.
      
      Proviso 2 is there to help deal with basic blocks containing very long
      live ranges - SHA1 has live ranges > 1700 instructions. We don't ever
      try to keep these long lived ranges in regs at the expense of others.
      
      Because stack slots are allocated from a global pool, and there is no
      slot coalescing yet, without this condition the allocation of SHA1 dosn't
      converge fast enough and eventually runs out of stack slots.
      
      Prior to this patch we were just choosing to spill the range with the
      longest lifetime, so we didn't bump into this particular problem.
      220a12e9
  9. 12 Sep, 2007 1 commit
  10. 13 Sep, 2007 6 commits
  11. 11 Sep, 2007 2 commits
    • simonpj@microsoft.com's avatar
      acdff50c
    • simonpj@microsoft.com's avatar
      Define and use PprTyThing.pprTypeForUser · 046feb1e
      simonpj@microsoft.com authored
      When printing types for the user, the interactive UI often wants to
      leave foralls implicit.  But then (as Claus points out) we need to be
      careful about name capture. For example with this source program
      
      	class C a b where
      	  op :: forall a. a -> b
      
      we were erroneously displaying the class in GHCi (with suppressed
      foralls) thus:
      
      	class C a b where
      	  op :: a -> b
      
      which is utterly wrong. 
      
      This patch fixes the problem, removes GHC.dropForAlls (which is dangerous),
      and instead supplies PprTyThing.pprTypeForUser, which does the right thing.
      
      046feb1e