[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