-O/-O2 causes program to run too slow

Simon Peyton Jones simonpj at microsoft.com
Wed Dec 10 17:49:09 UTC 2014

Just to check, when you say that “I found it was an instance of…” do you mean “I compiled with –fno-state-hack as the only change, and it got faster again”?   Otherwise how would you know this was the cause?


From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of David Spies
Sent: 07 December 2014 19:44
To: ghc-devs at haskell.org
Subject: Re: -O/-O2 causes program to run too slow

Ok, so I found that it was an instance of this: https://ghc.haskell.org/trac/ghc/ticket/1168
and I read through this whole thread: https://www.haskell.org/pipermail/glasgow-haskell-users/2008-February/014259.html
I don't understand the state-hack optimization.  It's clearly not safe and I'm not convinced that it actually is an optimization.  In what circumstances does the state-hack identify a single-entry function that can't be identified as single-entry by some other (safe) method?

On Sun, Dec 7, 2014 at 10:52 AM, David Spies <dnspies at gmail.com<mailto:dnspies at gmail.com>> wrote:
I have a program I wrote to submit for the Car Game problem on Kattis: https://open.kattis.com/problems/cargame
but it runs over the 5-second time-limit

I downloaded the test data and found that on GHC 7.8.3, if I switch from -O2 to -O0, it runs three times faster (almost certainly fast enough for Kattis to accept).  Can someone tell me what's going on?  Is this a bug?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20141210/bbf36577/attachment.html>

More information about the ghc-devs mailing list