
#13208: Do two-phase inlining in simpleOptPgm -------------------------------------+------------------------------------- Reporter: lukemaurer | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.1 Resolution: | Keywords: JoinPoints Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bjmprice): What's the status of this ticket? I ask because in `Note [The simple optimiser]`, it is claimed that "It thereby guarantees to leave no un- reduced beta-redexes.", but in 8.6.3 the Haskell `beta = let f = \x -> x in f True` gives rise to the Core `beta = (\ (x_aVG :: Bool) -> x_aVG) GHC.Types.True`, which seems to contradict that claim. (This core is with `-ddump-ds`, which I think runs the simple optimiser. With `-ddump-ds-preopt` it is a let-binding, not a beta-redex.) I guess that the Note could mean that "all beta-redexes in the input are reduced", rather than "there are no beta-redexes in the output", but this isn't how I understood the text. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13208#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler