
#14152: Float exit paths out of recursive functions -------------------------------------+------------------------------------- Reporter: nomeata | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #14137 #10918 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): Some of these measurements seem to be unreliably, in particular `time/VS`. Right now the whole branch, including inlining them back in the end, yields this: {{{ Nofib allocations Benchmark name previous change now nofib/allocs/fannkuch-redux 870976696 - 99.99% 64700 bytes nofib/allocs/k-nucleotide 1089567552 - 91.78% 89603872 bytes Nofib runtimes Benchmark name previous change now nofib/time/CSD 0.536 - 8.02% 0.493 seconds nofib/time/cryptarithm1 0.529 - 4.73% 0.504 seconds nofib/time/digits-of-e1 0.704 - 3.27% 0.681 seconds nofib/time/fannkuch-redux 4.401 + 3.84% 4.57 seconds nofib/time/integer 1.562 + 3.59% 1.618 seconds nofib/time/k-nucleotide 5.426 - 6.28% 5.085 seconds }}} The effect of just the inlining patch is {{{ Nofib runtimes Benchmark name previous change now nofib/time/VS 0.442 - 17.19% 0.366 seconds nofib/time/digits-of-e1 0.704 - 3.27% 0.681 seconds nofib/time/k-nucleotide 5.585 - 8.95% 5.085 seconds }}} That the inlining patch has not changed over the version in comment:18, it was just rebased onto a slightly improved exitification patch, yet the runtime of `VS` now ''improves'' by 17% rather than regress by 16%. I draw this conclusion: There is some sensitivity to layout in `SD` that seems to be tickled by my changes in a non-systematic way. I might have a closer look at the regressions (and gains), but not sure if ICFP is the right time to do that. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14152#comment:21 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler