1. 13 Jan, 2008 9 commits
  2. 12 Jan, 2008 1 commit
  3. 03 Jan, 2008 1 commit
  4. 20 Dec, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Implement generalised list comprehensions · 67cb4091
      simonpj@microsoft.com authored
        This patch implements generalised list comprehensions, as described in 
        the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell
        Workshop 2007).  If you don't use the new comprehensions, nothing
        should change.
        
        The syntax is not exactly as in the paper; see the user manual entry 
        for details.
        
        You need an accompanying patch to the base library for this stuff 
        to work.
        
        The patch is the work of Max Bolingbroke [batterseapower@hotmail.com], 
        with some advice from Simon PJ.
        
        The related GHC Wiki page is 
          http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions 
      67cb4091
  5. 30 Nov, 2007 1 commit
  6. 14 Nov, 2007 1 commit
  7. 07 Nov, 2007 1 commit
  8. 27 Oct, 2007 3 commits
  9. 10 Oct, 2007 1 commit
  10. 03 Oct, 2007 1 commit
  11. 21 Sep, 2007 2 commits
  12. 17 Sep, 2007 3 commits
    • Ben.Lippmeier@anu.edu.au's avatar
      Tune coalescing in non-iterative register allocator · fff4dee0
      Ben.Lippmeier@anu.edu.au authored
      If iterative coalescing isn't turned on, then do a single aggressive
      coalescing pass for the first build/color cycle and then back off to 
      conservative coalescing for subseqent passes.
      
      Aggressive coalescing is a cheap way to eliminate lots of the reg-reg
      moves, but it can make the graph less colorable - if we turn it on 
      for every pass then allocation for code with a large amount of register
      pressure (ie SHA1) doesn't converge in a sensible number of cycles.
      fff4dee0
    • Ben.Lippmeier@anu.edu.au's avatar
      Bugfix to iterative coalescer · 6a347ffc
      Ben.Lippmeier@anu.edu.au authored
      Coalescences must be applied to the unsimplified graph in the same order 
      they were found by the iterative coalescing algorithm - otherwise
      the vreg rewrite mapping will be wrong and badness will ensue.
      6a347ffc
    • Ben.Lippmeier@anu.edu.au's avatar
      Add -dasm-lint · 1116b874
      Ben.Lippmeier@anu.edu.au authored
      When -dasm-lint is turned on the register conflict graph is checked for 
      internal consistency after each build/color pass. Make sure that all 
      edges point to valid nodes, that nodes are colored differently to their
      neighbours, and if the graph is supposed to be colored, that all nodes
      actually have a color.
      1116b874
  13. 14 Sep, 2007 1 commit
    • Ben.Lippmeier@anu.edu.au's avatar
      Change spill cost function back to inverse length of live range. · 26248bad
      Ben.Lippmeier@anu.edu.au authored
      On further testing it turns out that using Chaitin's spill cost formula
      of counting the number of uses of a var and then dividing by the degree
      of the node isn't actually a win. Perhaps because this isn't counting 
      the number of actual spills inserted in the output code.
      
      This would be worth revisiting if other work manages to increase the 
      register pressure in the native code.
      26248bad
  14. 15 Sep, 2007 1 commit
  15. 13 Sep, 2007 1 commit
  16. 12 Sep, 2007 4 commits
  17. 06 Sep, 2007 1 commit
    • Simon Marlow's avatar
      FIX #1465, error messages could sometimes say things like "A.T doesn't match A.T" · 42181975
      Simon Marlow authored
      This turned out to be a black hole, however we believe we now have a
      plan that does the right thing and shouldn't need to change again.
      Error messages will only ever refer to a name in an unambiguous way,
      falling back to <package>:<module>.<name> if no unambiguous shorter
      variant can be found.  See HscTypes.mkPrintUnqualified for the
      details.
      
      Earlier hacks to work around this problem have been removed (TcSimplify).
      42181975
  18. 05 Sep, 2007 1 commit
  19. 04 Sep, 2007 1 commit
  20. 03 Sep, 2007 1 commit
  21. 01 Sep, 2007 1 commit
  22. 10 Aug, 2007 1 commit
  23. 21 Aug, 2007 1 commit
  24. 17 Aug, 2007 1 commit