1. 20 Feb, 2011 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      Added a VECTORISE pragma · f2aaae97
      chak@cse.unsw.edu.au. authored
      - Added a pragma {-# VECTORISE var = exp #-} that prevents
        the vectoriser from vectorising the definition of 'var'.
        Instead it uses the binding '$v_var = exp' to vectorise
        'var'.  The vectoriser checks that the Core type of 'exp'
        matches the vectorised Core type of 'var'.  (It would be
        quite complicated to perform that check in the type checker
        as the vectorisation of a type needs the state of the VM
        monad.)
      - Added parts of a related VECTORISE SCALAR pragma
      - Documented -ddump-vect
      - Added -ddump-vt-trace
      - Some clean up
      f2aaae97
  2. 19 Feb, 2011 2 commits
  3. 14 Feb, 2011 1 commit
    • gwright@antiope.com's avatar
      Fix #4867 (updated; corrects address calculation) · 796a3b36
      gwright@antiope.com authored
      This is a corrected fix for ticket #4867, "ghci displays negative floats
      incorrectly".  The previous patch sometimes gave incorrect offset to values
      in the __const section of the __TEXT segment.  The new patch arranges a zero
      fixup for non-external, not-global offset table signed relocations.  This
      is apparently what is required, though documentation on this point is scarce.
      
      With this change Doubles are negated properly, because the sign bit mask
      is loaded from the correct offset.  This was tested both on HEAD and the 7.0
      branch.
      796a3b36
  4. 16 Feb, 2011 1 commit
  5. 17 Feb, 2011 4 commits
    • simonpj@microsoft.com's avatar
      78b556a7
    • simonpj@microsoft.com's avatar
      Comments only · 6c4c33fc
      simonpj@microsoft.com authored
      6c4c33fc
    • simonpj@microsoft.com's avatar
      Fix Trac #4966 · a6c8ac78
      simonpj@microsoft.com authored
      This is just a program that exploits overlapping
      instances in a delicate way. The fix makes GHC
      a bit more friendly towards such programs. 
      
      See Note [Overlap and deriving] in TcSimplify
      a6c8ac78
    • simonpj@microsoft.com's avatar
      Use "on the spot" solving for fundeps · 50d02935
      simonpj@microsoft.com authored
      When we spot an equality arising from a functional dependency,
      we now use that equality (a "wanted") to rewrite the work-item
      constraint right away.  This avoids two dangers
      
       Danger 1: If we send the original constraint on down the pipeline
                 it may react with an instance declaration, and in delicate
      	   situations (when a Given overlaps with an instance) that
      	   may produce new insoluble goals: see Trac #4952
      
       Danger 2: If we don't rewrite the constraint, it may re-react
                 with the same thing later, and produce the same equality
                 again --> termination worries.
      
      To achieve this required some refactoring of FunDeps.lhs (nicer
      now!).  
      
      This patch also contains a couple of unrelated improvements
      
      * A bad bug in TcSMonad.nestImplicTcS whereby the Tcs tyvars
        of an outer implication were not untouchable inside
      
      * Improved logging machinery for the type constraint solver;
        use -ddump-cs-trace (probably with a wider default line width
        -dppr-cols=200 or something)
      50d02935
  6. 15 Feb, 2011 3 commits
  7. 14 Feb, 2011 2 commits
    • simonpj@microsoft.com's avatar
      Fix exprIsDupable · 34456244
      simonpj@microsoft.com authored
      It turns out that exprIsDupable would return True for an expression of
      *arbitrary* size, provide it was a nested bunch of applications in
      which no function had more than three arguments.  That was never the
      intention, and could give rise to massive code duplication.  
      
      This patch makes it much less aggressive.
      34456244
    • simonpj@microsoft.com's avatar
      Better case-of-case transformation · 7a50e6d8
      simonpj@microsoft.com authored
      The ThunkSplitting idea in WorkWrap wasn't working at all,
      leading to Trac #4957.  The culprit is really the simplifier
      which was combining the wrong case continuations. See
      Note [Fusing case continuations] in Simplify.
      7a50e6d8
  8. 15 Feb, 2011 1 commit
  9. 14 Feb, 2011 2 commits
  10. 09 Feb, 2011 1 commit
  11. 02 Feb, 2011 2 commits
  12. 01 Feb, 2011 1 commit
  13. 14 Feb, 2011 3 commits
  14. 13 Feb, 2011 1 commit
    • dterei's avatar
      LLVM: Huge improvement to mangler speed. · 6c8893bf
      dterei authored
      The old llvm mangler was horrible! Very slow
      due to bad design and code. New version is
      linear complexity as it should be and far
      lower coefficients. This fixes trac 4838.
      6c8893bf
  15. 11 Feb, 2011 5 commits
  16. 10 Feb, 2011 2 commits
  17. 12 Jan, 2011 1 commit
  18. 09 Feb, 2011 1 commit
    • gwright@antiope.com's avatar
      Fix #4867, ghci displays negative floats incorrectly · a914a224
      gwright@antiope.com authored
      This patch fixes the erroneous relocations that caused
      the bug in ticket #4867.  External addresses and global
      offset table entries were relocated correctly, but all other
      relocations were incorrectly calculated.  This caused, for
      example, bad references to constants stored in the __const
      section of the __TEXT segment.
      
      This bug only affected OS X on 64-bit platforms.
      a914a224
  19. 01 Feb, 2011 1 commit
  20. 26 Jan, 2011 1 commit
  21. 10 Feb, 2011 2 commits
  22. 08 Feb, 2011 1 commit
  23. 10 Feb, 2011 1 commit