
#10137: Rewrite switch code generation -------------------------------------+------------------------------------- Reporter: nomeata | Owner: Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.9 (CodeGen) | Keywords: Resolution: | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by simonpj): Sounds good. I do think that some work can be done in Core. For example: {{{ case x of 1# -> e1 2# -> e2 7# -> e1 _ -> e2 }}} might turn into {{{ case (x ==# 1# `orI#` x ==# 7#) of 0# -> e2 -- False 1# -> e1 -- True }}} I would also '''dearly''' like to implement #8317 to get rid of all those stupid `tagToEnum#` calls that clutter up the code. We don't do this for a stupid reason: #8326. As part of your crusade, dealing with this would be fantastic. I'd be happy to advise/help. Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10137#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler