[GHC] #7114: Cannot recover (good) inlining behaviour from 7.0.2 in 7.4.1

GHC ghc-devs at haskell.org
Tue Nov 25 04:50:54 UTC 2014


#7114: Cannot recover (good) inlining behaviour from 7.0.2 in 7.4.1
-------------------------------------+-------------------------------------
              Reporter:  dreixel     |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:  7.10.1
             Component:  Compiler    |          Version:  7.4.1
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:              |       Blocked By:
  None/Unknown                       |  Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by thomie):

 This issue is not resolved yet. Relevant part of the output of
 `ghc-7.9.20141121 -fforce-recomp -ddump-simpl -O1 Code3.hs` still has the
 same structure (to reproduce, search for last `Rec` in the output):

 {{{#!hs
  lvl_r1aH :: [List]
  [GblId, Caf=NoCafRefs, Str=DmdType]
  lvl_r1aH = GHC.Types.: @ List Code2.Nil (GHC.Types.[] @ List)

  Rec {
  Code2.$senum'5 :: [K1 List]
  [GblId,
   Str=DmdType,
   Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
           WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 30 0}]
  Code2.$senum'5 =
    map @ List @ (K1 List) (Code2.K1 @ List) Code2.$fGEnumList_$cgenum

  lvl1_r1aI :: Int -> [List]
  [GblId, Arity=1, Str=DmdType]
  lvl1_r1aI =
    \ (x_XNx :: Int) ->
      map
        @ (K1 List)
        @ List
        (\ (x1_XOq :: K1 List) ->
           case x1_XOq of _ [Occ=Dead] { K1 b_axA -> Code2.Cons x_XNx b_axA
 })
        Code2.$senum'5

  lvl2_r1aJ :: [[List]]
  [GblId, Str=DmdType]
  lvl2_r1aJ = map @ Int @ [List] lvl1_r1aI Code2.$fGEnumInt_$cgenum

  lvl3_r1aK :: [List]
  [GblId, Str=DmdType]
  lvl3_r1aK = diag @ List lvl2_r1aJ

  Code2.$fGEnumList_$cgenum [Occ=LoopBreaker] :: [List]
  [GblId, Str=DmdType]
  Code2.$fGEnumList_$cgenum = ||| @ List lvl_r1aH lvl3_r1aK
  end Rec }

 }}}

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


More information about the ghc-tickets mailing list