Solved goal caching and zonking optimisations.
1) Stopped rewriting and caching solveds in the inerts because profiling showed that a lot of time was spent on rewriting already solved goals. 2) Optimisations in zonkEvBinds for common-case evidence bindings generated from the constraint solver. 3) Now solved goals cache their evidence terms, so that we can more aggressively optimize Refl coercions during constraint solving. This patch also includes a rewrite of rewriteInertEqsFromInertEq which greatly improves its efficiency.
Showing
- compiler/typecheck/TcCanonical.lhs 127 additions, 97 deletionscompiler/typecheck/TcCanonical.lhs
- compiler/typecheck/TcHsSyn.lhs 37 additions, 7 deletionscompiler/typecheck/TcHsSyn.lhs
- compiler/typecheck/TcInteract.lhs 189 additions, 160 deletionscompiler/typecheck/TcInteract.lhs
- compiler/typecheck/TcRnTypes.lhs 14 additions, 7 deletionscompiler/typecheck/TcRnTypes.lhs
- compiler/typecheck/TcSMonad.lhs 42 additions, 30 deletionscompiler/typecheck/TcSMonad.lhs
- compiler/typecheck/TcSimplify.lhs 5 additions, 1 deletioncompiler/typecheck/TcSimplify.lhs
- compiler/types/Coercion.lhs 1 addition, 0 deletionscompiler/types/Coercion.lhs
Loading
Please register or sign in to comment