
#9233: Compiler performance regression -------------------------------------+------------------------------------- Reporter: augustss | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Differential Revisions: Phab:D73 | Operating System: Windows Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: Difficulty: Unknown | Blocking: Blocked By: | Related Tickets: | -------------------------------------+------------------------------------- Comment (by goldfire): Replying to [comment:20 simonpj]:
Some questions for Richard:
* In the first commit "Rewrite coercionRole", there is a small change in `OptCoercion`, whicg does entirely un-commented. What's it about? Could you comment it? A Note?
Those changes are just to take advantage of the new efficiency available by calling `coercionKindRole` instead of `coercionKind` and `coercionRole` separately. I don't think further explanation is needed -- there's no change in behavior or algorithm really.
* In the new `OptCoercion` (after both commits) I see that `opt_co1` is
called only with `Nothing` as its third arg. So can we get rid of that arg? Yes. I was unsure when originally structuring the new `opt_co` variants if we'd need those parameters, and forgot to go back and double-check. I wil do this.
* Ditto `opt_co2`. (In contrast `opt_co3` does have non-Nothing calls.
It's the only one that does. Ditto here.
* Do those changes change something in `Note [Optimising coercion
optimisation]`? No.
Great work BTW.
Simon
Thanks for checking things over! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9233#comment:21 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler