Add two small optimizations. (#11196)
authorRichard Eisenberg <eir@cis.upenn.edu>
Fri, 18 Mar 2016 13:40:15 +0000 (09:40 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Mon, 21 Mar 2016 16:16:01 +0000 (12:16 -0400)
commit0706a103ae8c9c61e6bbaadd16b32da76aa5a749
treea3042ff5c65c4a8f4f458a2eb9e29285b485ce0e
parent01b29ebd25aceef8c35ea1cc3eabb6dafbb55daa
Add two small optimizations. (#11196)

- Optimize zonking * to avoid allocation.
- Try to avoid looking at the free variables of a type in the
  pure unifier. We need look at the variables only in the case
  of a forall.

The performance results updates included in this also include
a regression, but the regression is not due to this patch. When
validating previous patches, the test case failed, but I was
unable to reproduce outside of validation, so I let it go by, thinking
the failure was spurious. Upon closer inspection, the perf number
was right at the line, and the wibble between a valiation environment
and a regular test run was enough to make the difference.
compiler/types/Type.hs
compiler/types/Unify.hs
testsuite/tests/perf/compiler/all.T