
#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/7b087aeba45a7a70a5553ef4c116ee6766042... 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