1. 28 Aug, 2014 27 commits
  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
      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
  4. 25 Aug, 2014 10 commits