
#12622: Unboxed static pointers lead to missing SPT entries -------------------------------------+------------------------------------- Reporter: mboes | Owner: | facundo.dominguez Type: bug | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D2709 Wiki Page: | Phab:D2720 -------------------------------------+------------------------------------- Comment (by simonpj): Yes, I think that a special-purpose float pass would also be OK, and I do agree that it'd be nicer to localise the magic. I bet that almost always the ordinary float-out stuff would move `(makeStatic e)` to top level anyway (if not, it would be good to explain why not) but not having that as a guaranteed invariant would be nicer. But before going there, let's just check that what we have is not almost OK anyway: * You say that `FloatOut` would have go treat `makeStatic` specially, when not currently treat `StaticPtr` specially. Why? * I'm betting that if we had a top-level binding `x = makeStatic e` then it would never get inlined anyway. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12622#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler