
#14684: combineIdenticalAlts is only partially implemented -------------------------------------+------------------------------------- Reporter: mpickering | Owner: sjakobi Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.2.2 Resolution: | Keywords: newcomer, CSE Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4542 Wiki Page: | -------------------------------------+------------------------------------- Comment (by sjakobi): As I haven't made any progress with this in a while, and as I'm not sure I'll make any soon, I'm recording where I'm currently stuck: While `combineIdenticalAlts` uses {{{ cheapEqExpr' :: (Tickish Id -> Bool) -> Expr b -> Expr b -> Bool }}} `CSE.combineAlts` uses {{{ eqExpr :: InScopeSet -> CoreExpr -> CoreExpr -> Bool }}} What I haven't figured out, is how to translate the use of `eqExpr` into using a `CoreMap` where `CoreExpr`s end up as the same key if they are equal according to `eqExpr in_scope`. I wanted to look at how the rest of `CSE` uses `CoreMap`s, but I didn't get around to that yet. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14684#comment:17 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler