
On Thursday 21 April 2011 13:08:22, Simon Marlow wrote:
On 20/04/2011 18:28, Ian Lynagh wrote:
On Wed, Apr 20, 2011 at 05:02:50PM +0200, Daniel Fischer wrote:
So, is it possible that some change in ghc-7.0.3 vs. the previous versions
Very little changed between 7.0.2 and 7.0.3. The only thing that jumps out to me as possibly being relevant is:
diff -ur 7.0.2/ghc-7.0.2/compiler/nativeGen/X86/Instr.hs 7.0.3/ghc-7.0.3/compiler/nativeGen/X86/Instr.hs --- 7.0.2/ghc-7.0.2/compiler/nativeGen/X86/Instr.hs 2011-02-28 18:10:06.000000000 +0000 +++ 7.0.3/ghc-7.0.3/compiler/nativeGen/X86/Instr.hs 2011-03-26 18:10:04.000000000 +0000 @@ -734,6 +734,7 @@
where p insn r = case insn of
CALL _ _ -> GFREE : insn : r JMP _ -> GFREE : insn : r
+ JXX_GBL _ _ -> GFREE : insn : r
_ -> insn : r
Right, it could be related to this.
I'm afraid it is. Comparing the dumped asm, after renaming identifiers, the only difference between the assembly produced by 7.0.2 and 7.0.3 is the appearance of 59 ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3) ffree %st(4) ;ffree %st(5) in 7.0.3's code which aren't in 7.0.2's.
However this change was made to eliminate some causes of NaNs, see:
http://hackage.haskell.org/trac/ghc/ticket/4914
So I'm very depressed if it managed to introduce NaNs somehow.
Could someone make a ticket for this, with the smallest test case found so far please?
http://hackage.haskell.org/trac/ghc/ticket/5149
Cheers, Simon