
#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): And, to add numbers to this: Running !SpecConstr on top-level non- recursive functions and running it twice (with simplification in between) improves `x2n1` allocations by 45%, compared to just loopification, and fixes some of the other regressions: https://perf.haskell.org/ghc/#compare/9245c4bbc2156b3b84f253c97cc2ee8bd8b7dd.... [https://perf.haskell.org/ghc/#compare/abaf43d9d88d6fdf7345b936a571d17cfe1fa1... Overall], the whole branch has a few promising improvements of ~7%, but also still some egregious regressions that need to be tracked down (`queens` +240%). And it is of course not immediately clear which of the improvements are due to loopification, and which are independent of loopification and due to the changes to !SpecConstr. But in any ways we need to conclude the !SpecConstr story first and see what, if anything at all, we want to change there. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14068#comment:46 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler