[GHC] #9159: cmm case, binary search instead of jump table
GHC
ghc-devs at haskell.org
Mon Jun 2 12:06:52 UTC 2014
#9159: cmm case, binary search instead of jump table
------------------------------+--------------------------------------------
Reporter: wojteknar | Owner:
Type: bug | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 7.8.2
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Runtime performance bug
Unknown/Multiple | Test Case:
Difficulty: Unknown | Blocking:
Blocked By: |
Related Tickets: |
------------------------------+--------------------------------------------
I'm not sure if this is qualifies as a bug or feature request.
For case expressions where the scrutinee is Int#,or Int, or probably
anything else numerical, GHC generates binary search, where a jump table
could easily be used instead. The functions toChunk1# and toChunk2# yield
suboptimal code. I found a satisfactory workaround, toChunk3# uses Enum
and it is fine.
For the attached code it probably does not matter much, but I have 65
cases in my real code, trying to implement a variant of ByteString, which
will have the lowest possible storage overhead (just the info table
pointer == one word) for lengths up to 64 bytes.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9159>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list