[GHC] #13380: raiseIO# result looks wrong
GHC
ghc-devs at haskell.org
Mon Mar 27 22:03:43 UTC 2017
#13380: raiseIO# result looks wrong
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: dfeuer
Type: bug | Status: new
Priority: high | Milestone: 8.2.1
Component: Compiler | Version: 8.1
Resolution: | Keywords: Exceptions
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Other | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by dfeuer):
Oh, it seems I pasted the link above wrong. I meant to paste
[https://perf.haskell.org/ghc/#revision/7b087aeba45a7a70a5553ef4c116ee67660423e8
a link to the perf dashboard for that commit]. There were two significant
changes in nofib runtimes.
{{{
test old change new
nofib/time/k-nucleotide 5.338 + 4.95% 5.602 seconds
nofib/time/lambda 1.095 - 3.2% 1.06 seconds
}}}
There was also an unfortunate increase in nofib sizes that I didn't notice
before (gipeda did not flag it for some reason). The sizes went up by a
little over 1% across the board. Ouch. I'm guessing this is because we
lost the dead code elimination we previously had for
{{{#!hs
case raiseIO# e s of ...
}}}
Could we recover that by using some sort of special rule somewhere that
rewrites
{{{#!hs
case raiseIO# e s of
p -> ...
}}}
to `raiseIO# e s`? I could give it a shot if someone tells me where to put
it.
There were a few test suite allocation regressions, the largest of which
were
{{{
tests/alloc/T10547 33561264 + 1.36% 34019072 bytes
tests/alloc/T5837 51419384 + 1.27% 52074608 bytes
tests/alloc/T12425 134735944 + 0.52% 135441336 bytes
tests/alloc/T10858 267909584 + 0.49% 269215800 bytes
tests/alloc/T13035 93847840 + 0.44% 94264440 bytes
tests/alloc/T6048 109461504 + 0.38% 109873560 bytes
tests/alloc/T13056 420744984 + 0.37% 422320424 bytes
}}}
I believe the right way to fix these is to go through any code in `base`
that uses `throwIO` and make sure we manually force everything we want to.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13380#comment:13>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list