
#8793: Improve GHC.Event.IntTable performance -------------------------------------+------------------------------------- Reporter: cdk | Owner: Type: task | Status: patch Priority: normal | Milestone: 8.0.1 Component: Core Libraries | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * cc: jstolarek (added) Comment: OK I've had a look. * I have not looked at, or tried to reproduce, the benchmark. Probably we can just trust you. Let's just commit your improved code to the library. Ben? * That leaves the question of pure vs IO loop, which I think you are saying is the cause of the performance difference. Have you benchmarked that separately? (Your `IOLoop.hs` program, that is.) * It is indeed very odd that the "IO loop" does not generate as good code as the "pure loop". I believe that for the pure loop we are getting a C-- optimisation that turns a tail call into a jump to a label, so called "loopification". But this isn't happening for IO loop. I've collected info about loopification here: [wiki:Commentary/Compiler/Loopification]. I'm copying Jan Stolarek who was the last person to work on this. It'd be great to return to it. It'd be good to pull out this particular loopification issue into a new ticket, if you could. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8793#comment:17 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler