
#14619: Output value of program changes upon compiling with -O optimizations -------------------------------------+------------------------------------- Reporter: sheaf | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.4.1 Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Windows | Architecture: x86_64 Type of failure: Incorrect result | (amd64) at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by Phyx-): * cc: Phyx- (added) Comment: I've attached two cmm files one that work and one that doesn't. My initial thought is register pressure, but the working version seems to have higher pressure. Looking at the working one, I see only two differences, 1) it uses 8 bytes more of stack space for each function call 2) it does a lot of redundant moves. {{{ movq 24(%rbx),%rbx movq %rbx,%rcx movq %rcx,-24(%rbp) }}} instead of simply {{{ movq 24(%rbx),%rax movq %rax,-24(%rbp) }}} but aside from these two I can't seem to find any real differences. There's also slightly different scheduling. Can scheduling be turned off in GHC? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14619#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler