Solved goal caching and zonking optimisations.
authorDimitrios Vytiniotis <dimitris@microsoft.com>
Thu, 24 Nov 2011 18:50:02 +0000 (18:50 +0000)
committerDimitrios Vytiniotis <dimitris@microsoft.com>
Mon, 28 Nov 2011 12:09:56 +0000 (12:09 +0000)
commit4bc84da3ee16cc7fd3f939b06c2c67195611a963
treefb92eaafb75d41c5f10ab3787778cf434f39a941
parentf3183d9a9c1d738da31b094c3baad2b885780592
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.
compiler/typecheck/TcCanonical.lhs
compiler/typecheck/TcHsSyn.lhs
compiler/typecheck/TcInteract.lhs
compiler/typecheck/TcRnTypes.lhs
compiler/typecheck/TcSMonad.lhs
compiler/typecheck/TcSimplify.lhs
compiler/types/Coercion.lhs