
#13016: SPECIALIZE INLINE doesn't necessarily inline specializations of a recursive function -------------------------------------+------------------------------------- Reporter: nfrisby | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Inlining Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: #13014, #10346 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by mpickering): * related: #13014 => #13014, #10346 Comment: And of course, the reason that it doesn't work across modules is that `SpecConstr` doesn't work across modules (see #10346). After this analysis, I understand operationally how the program is optimised but I don't understand how the pragma is meant to achieve the unrolling if it relies on `SpecConstr` to inline a loop breaker using a RULE. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13016#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler