
#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 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): Replying to [comment:13 simonpj]: Expanding the `DEFAULT` case before recombining the alts is an interesting idea. I'm wondering though if we'd recreate alts that may have been excluded (by the programmer or optimization steps) based on information that isn't available in `CSE`. At worst we'd still just recreate the same `DEFAULT` alt, so I believe no pessimisation is possible. The design I currently have in mind involves largely imitating `SimplUtils.prepareAlts` to 1. detect which constructors are impossible and should not be considered when expanding the `DEFAULT`. 2. use a variant of `refineDefaultAlt` to expand the `DEFAULT` alt into alts using the remaining possible constructors. Does this sound right? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14684#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler