[GHC] #6156: Optimiser bug on linux-powerpc
GHC
cvs-ghc at haskell.org
Tue Aug 14 09:52:35 CEST 2012
#6156: Optimiser bug on linux-powerpc
------------------------------------------+---------------------------------
Reporter: erikd | Owner: igloo
Type: bug | Status: new
Priority: normal | Milestone: 7.6.1
Component: Compiler | Version: 7.4.1
Resolution: | Keywords:
Os: Linux | Architecture: powerpc
Failure: Incorrect result at runtime | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related:
------------------------------------------+---------------------------------
Comment(by erikd):
I'll continuue gathering more data. Latest point of interest is this code:
{{{
import GHC.Word
import Numeric
main :: IO ()
main = putStrLn (showHex (succ (0xa1a2a3a4ffffffff :: Word64)) "")
}}}
Compiled with `-O1 -fno-enable-rewrite-rules` this produces th correct
result of `a1a2a3a500000000`, but just a plain `-O1` this results in:
{{{
Enum.succ{Word64}: tried to take `succ' of maxBound
}}}
which is rather weird. Its complaining about the least significant Word32
of the Word64 being equal to maxBound (which I'm assuming is the 32 bit
maxBound). Something there seems very wrong.
I've been looking at a lot of the dump files as well. In the case of the
code above, I've been looking for invocations of `succ` and get for
instance this in `dump-prep`:
{{{
Main.main_w :: GHC.Word.Word64
[GblId, Caf=NoCafRefs, Unf=OtherCon []]
Main.main_w = GHC.Word.W64# (__word64 16)
Main.main3 :: GHC.Word.Word64
[GblId]
Main.main3 = GHC.Word.$w$csucc (__word64 11647051515398455295)
Main.main2 :: GHC.Base.String
[GblId]
Main.main2 =
Numeric.$wshowIntAtBase
@ GHC.Word.Word64
GHC.Word.$fRealWord64
GHC.Word.$fIntegralWord64_$cquotRem
GHC.Word.$fEnumWord64_$ctoInteger
GHC.Word.$fShowWord64
Main.main_w
GHC.Show.intToDigit
Main.main3
(GHC.Types.[] @ GHC.Types.Char)
}}}
Debugging continues.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6156#comment:31>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list