
#8472: Primitive string literals prevent optimization -------------------------------------+------------------------------------- Reporter: akio | Owner: gridaphobe Type: bug | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: newcomer Operating System: Linux | Architecture: x86_64 Type of failure: Runtime | (amd64) performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D2554, Wiki Page: | Phab:D2605 -------------------------------------+------------------------------------- Comment (by akio): My patch (Phab:D2605) causes some compiler perf regressions. This happens because {{{ f x = ... "foo"# ... }}} now gets transformed into {{{ foo = "foo"# f x = ... foo ... }}} and this means a larger code size. For example, on `perf/compiler/T1969`, the `peak_megabytes_allocated` goes from 63 to 68 (a 8% increase), the code size (in terms of the `Term` component of `CoreStats`) goes from 12603 to 13271 (a 10% increase), and this is fully explained by the above effect, which increases the code size by 2 for each top-level string literal. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8472#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler