1. 28 Aug, 2014 2 commits
    • Simon Peyton Jones's avatar
      Refactor unfoldings · 6e0f6ede
      Simon Peyton Jones authored
      There are two main refactorings here
      
      1.  Move the uf_arity field
             out of CoreUnfolding
             into UnfWhen
          It's a lot tidier there.  If I've got this right, no behaviour
          should change.
      
      2.  Define specUnfolding and use it in DsBinds and Specialise
           a) commons-up some shared code
           b) makes sure that Specialise correctly specialises DFun
              unfoldings (which it didn't before)
      
      The two got put together because both ended up interacting in the
      specialiser.
      
      They cause zero difference to nofib.
      6e0f6ede
    • Simon Peyton Jones's avatar
      e9cd1d5e
  2. 27 Aug, 2014 2 commits
  3. 26 Aug, 2014 1 commit
    • Sergei Trofimovich's avatar
      UNREG: fix emission of large Integer literals in C codegen · 43f1b2ec
      Sergei Trofimovich authored
      
      
      Summary:
      On amd64/UNREG build there is many failing tests trying
      to deal with 'Integer' types.
      
      Looking at 'integerConversions' test I've observed
      invalid C code generated by GHC.
      
      Cmm code
          CInt a = -1; (a == -1)
      yields 'False' with optimisations enabled via the following C code:
          StgWord64 a = (StgWord32)0xFFFFffffFFFFffffu; (a == 0xFFFFffffFFFFffffu)
      
      The patch fixes it by shrinking emitted literals to required sizes:
          StgWord64 a = (StgWord32)0xFFFFffffu; (a == 0xFFFFffffu)
      
      Thanks to Reid Barton for tracking down and fixing the issue.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      
      Test Plan: validate on UNREG build (amd64, x86)
      
      Reviewers: simonmar, rwbarton, austin
      
      Subscribers: hvr, simonmar, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D173
      43f1b2ec
  4. 25 Aug, 2014 10 commits
  5. 24 Aug, 2014 1 commit
  6. 23 Aug, 2014 5 commits
  7. 22 Aug, 2014 8 commits
  8. 21 Aug, 2014 1 commit
  9. 20 Aug, 2014 10 commits