[GHC] #13596: Try disabling inlining of DynFlags combinators

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- `DynFlags` requires a surprisingly amount of effort to compile. One thing I've been meaning to try is disabling inlining of `make_ord_flag` and such to characterize how much of an impact these inlinings have on simplification effort. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: normal | Milestone: 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: | -------------------------------------+------------------------------------- Changes (by bgamari): * owner: (none) => bgamari -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: normal | Milestone: 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 tdammers): I tried a plain old stage2 build, comparing GHC HEAD against a version with added `NOINLINE` on `make_ord_flag` and `make_dep_flag`, which seems to reduce compile times only marginally, and overall memory use from 72M to 70M. Anything else that you think might benefit from `NOINLINE`? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: normal | Milestone: 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 bgamari): Hmm, fair enough. I would look at the Core and `-ddump-inlinings` output to see whether there are any inlinings which may cause unnecessary code size growth. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: normal | Milestone: 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 tdammers): Only other candidate I could come up with is `alterSettings`; other than that, everything seems to be record accessors. `NOINLINE`ing `alterSettings` however increases compile times, so that is clearly not something we would want. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#13596: Try disabling inlining of DynFlags combinators -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: task | Status: new Priority: normal | Milestone: 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 bgamari): Alright, it sounds like we should probably just put this aside in that case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13596#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC