
#13390: Strict literal float-out during desugaring regresses T1969 at -O0 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.0.1 Resolution: | Keywords: 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 dfeuer): I finally built the patched version. As best I can tell, the story starts the same. That is, we get the same inlining of `$dme` and `$dmd`, and the same class op rules firing, but then `$cc_aT4` is getting inlined into `$ce_aTf` and `$cd_aT8` instead of allowing those functions to eta-reduce away. So I guess maybe we actually ''can'' make a useful change: perhaps we want to check for eta-reduction opportunities ''before'' considering inlining. There's not much point inlining a function application into the body of a lambda when we can instead eliminate the lambda (and the application) altogether. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13390#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler