
#7367: Optimiser / Linker Problem on amd64 --------------------------------------------+------------------------------ Reporter: wurmli | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Build System | Version: 7.6.1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 Type of failure: Runtime performance bug | (amd64) Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by simonpj): wurmli, no I don't think it's reasonable. (Unless I'm missing something.) I have not looked very carefully, but I think this program does a lot of read/write of an imperatively-mutable `(STRef (Int,Int))`. If we could eliminate those read/write pairs altogether, that would indeed be a good thing, but that is pretty hard to do, because in principle any computation of type `(ST s a)` might mutate that reference. GHC simply doesn't have any serious optimisations for imperative code; it focuses on optimising functional code. To put it another way, what program would you expect GHC to transform your code into? Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7367#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler