[GHC] #15155: How untagged pointers sneak into banged fields

GHC ghc-devs at haskell.org
Thu May 31 11:33:16 UTC 2018


#15155: How untagged pointers sneak into banged fields
-------------------------------------+-------------------------------------
        Reporter:  heisenbug         |                Owner:  heisenbug
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  8.4.2
      Resolution:                    |             Keywords:  CodeGen
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:  14677
 Related Tickets:  #13027 #7308      |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by heisenbug):

 While building ghc stage2 I've seen well over a thousand of these
 indirections being generated. I am working on a scheme which would allow
 putting all representationally equivalent (e.g. those wrapped by `cast`)
 bindings into an equivalence class and refer to the whole thing (by the
 non-casted representant) from the untyped stages (i.e. STG) on. With
 looming code-reuse techniques like ''GND'' (and I am looking at you
 `DerivingVia`) there will be much more coercing and casting going on, so I
 think this will become even more urgent in the future. Besides it would
 eliminate name table entries from `.so` files etc., speeding up (dynamic)
 linking a bit and saving even more space. Optionally the name
 canonicalisation could happen at the point where the assembly file is
 emitted.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15155#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list