
#14068: Loopification using join points -------------------------------------+------------------------------------- Reporter: nomeata | Owner: nomeata Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #13966 #14067 | Differential Rev(s): Phab:D3811 #14827 | Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): More data. #14951 fixes some regressions that loopification introduces: {{{ name previous change now nofib/allocs/last-piece 642047800 - 11.08% 570920968 bytes nofib/allocs/x2n1 697240 - 45.89% 377272 bytes }}} But it does not fix all the regressions that can be fixed by running !SpecConstr twice (with simplification in between): {{{ Benchmark previous change now nofib/allocs/constraints 20491632 - 3.63% 19747392 bytes nofib/allocs/event 129682800 + 8.44% 140626888 bytes nofib/allocs/fulsom 243329208 - 7.83% 224287496 bytes nofib/allocs/integer 40633632 - 3.06% 39389560 bytes nofib/allocs/last-piece 642047800 - 11.49% 568297080 bytes nofib/allocs/mandel2 1649568 - 26.78% 1207888 bytes nofib/allocs/minimax 5371584 - 8.73% 4902576 bytes nofib/allocs/parstof 3023208 - 3.7% 2911384 bytes nofib/allocs/x2n1 697240 - 45.89% 377272 bytes }}} Which raises the question: Should we just go the easy route and run !SpecConstr twice? (I am measuring the effect of that on master, independent of loopification, in branch `wip/T14951-blunt`.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14068#comment:47 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler