[GHC] #14677: Code generator does not correctly tag a pointer

GHC ghc-devs at haskell.org
Fri Jan 26 09:46:42 UTC 2018


#14677: Code generator does not correctly tag a pointer
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.2.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:  14626
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by alexbiehl):

 I think a patch might be more involved: This is the core for `evtWrite`

 {{{
 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
 evtWrite1_r335 :: Int
 [GblId, Caf=NoCafRefs, Str=m]
 evtWrite1_r335 = GHC.Types.I# 2#

 -- RHS size: {terms: 1, types: 0, coercions: 2, joins: 0/0}
 evtWrite [InlPrag=INLINE (sat-args=0)] :: Event
 [GblId,
  Str=m,
  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=False)
          Tmpl= (GHC.Types.I# 2#)
                `cast` (Sym T14677_1.N:Event[0] :: (Int :: *) ~R# (Event ::
 *))}]
 evtWrite
   = evtWrite1_r335
     `cast` (Sym T14677_1.N:Event[0] :: (Int :: *) ~R# (Event :: *))
 }}}

 So it's already an indirection in Core! Maybe we shouldn't lift the
 integer out of `evtWrite` and make an expression of the form

 {{{
 e `cast` co
 }}}

 where `e` is a satured constructor application. CoreToStg could spot this
 case and make it a proper `StgConApp` which will then be codegened into a
 proper constant.

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


More information about the ghc-tickets mailing list