-O/-O2 causes program to run too slow

David Spies dnspies at gmail.com
Wed Dec 10 18:04:18 UTC 2014


Yes, it got faster when compiled with -fno-state-hack.  It also got faster
when I added a second (useless) reference to cf (changing the definition of
doProbs to cf `seq` replicateM_ m doProb)

Also, when profiling, the number of entries into findChain decreased
significantly after adding -fno-state-hack


On Wed, Dec 10, 2014 at 10:49 AM, Simon Peyton Jones <simonpj at microsoft.com>
wrote:

>  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?
>
>
>
> Simon
>
>
>
> *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> 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/ed682f90/attachment.html>


More information about the ghc-devs mailing list