Fix Trac #1969: perfomance bug in the specialiser
authorsimonpj@microsoft.com <unknown>
Mon, 28 Apr 2008 15:57:11 +0000 (15:57 +0000)
committersimonpj@microsoft.com <unknown>
Mon, 28 Apr 2008 15:57:11 +0000 (15:57 +0000)
commit6246f5738bc482423e51342eb117a40539be790e
tree68a9993c5abccaac8ce744d4317834268e73ffff
parent2a14d735e565b2dbe4af65c0c657d8843608e36f
Fix Trac #1969: perfomance bug in the specialiser

The specialiser was using a rather brain-dead representation for
UsageDetails, with much converting from lists to finite maps and
back.  This patch does some significant refactoring.  It doesn't
change the representation altogether, but it does eliminate the
to-and-fro nonsense.

It validates OK, but it's always possible that I have inadvertently
lost specialisation somewhere, so keep an eye out for any run-time
performance regressions.

Oh, and Specialise is now warning-free too.
compiler/specialise/Specialise.lhs