[GHC] #10014: Data.Array.Base.elems needlessly calls bounds.
GHC
ghc-devs at haskell.org
Thu Jan 22 21:17:06 UTC 2015
#10014: Data.Array.Base.elems needlessly calls bounds.
-------------------------------------+-------------------------------------
Reporter: ekmett | Owner: ekmett
Type: feature | Status: new
request | Milestone:
Priority: normal | Version: 7.8.4
Component: Core | Operating System: Unknown/Multiple
Libraries | Type of failure: Runtime
Keywords: | performance bug
Architecture: | Blocked By:
Unknown/Multiple | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
{{{
elems arr = case bounds arr of
(_l, _u) -> [unsafeAt arr i | i <- [0 .. numElements arr - 1]]
}}}
It never uses the result.
I'd propose simplifying it to
{{{
elems arr = [unsafeAt arr i | i <- [0 .. numElements arr - 1]]
}}}
It appears at some point someone optimized it to use the `unsafeAt`, but
never removed the bounds check.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10014>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list