
#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): Status update for those who understandably don’t want to read the whole thread: There is working code for loopification on `wip/T14068`. If one disables !SpecConstr and compares this branch to master, then there is only one allocation regression (in `queens`, not investigated). However, with !SpecConstr (i.e. the default), many nofib tests regress. I have paused working on loopification until we have improved SpecConstr to yield equivalently good results for the loopified code. Relevant tickets are #14844 (!SpecConstr should also apply to top-level non- recursive bindings) and #14951 (!SpecConstr is not idempotent; in other words: a stack of deeply nested functions do not get specialized in one go). If these were fixed we would get rid of some of the !SpecConstr related regressions introduced by loopification – but still not all of them, I fear, and there will be more to be tracked down. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14068#comment:55 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler