#8345: A more efficient atomicModifyIORef' -------------------------------------+------------------------------------- Reporter: parcs | Owner: Type: bug | Status: patch Priority: normal | Milestone: 7.10.1 Component: Core | Version: 7.6.3 Libraries | Keywords: IORef Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Moderate (less Unknown/Multiple | than a day) Type of failure: Runtime | Blocked By: performance bug | Related Tickets: #5926 Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by Herbert Valerio Riedel <hvr@…>): In [changeset:"9e2cb00e5af9d86546f82a74c3d0382e65704d56/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="9e2cb00e5af9d86546f82a74c3d0382e65704d56" Optimise atomicModifyIORef' implementation (#8345) This forces the new value before installing it in the IORef. This optimisation was originally suggested by Patrick Palka and "exhibits a speedup of 1.7x (vanilla RTS) / 1.4x (threaded RTS)" according to #8345 Reviewed By: austin, simonmar Differential Revision: https://phabricator.haskell.org/D315 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8345#comment:18> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler