Improve Call Arity performance
authorJoachim Breitner <mail@joachim-breitner.de>
Wed, 15 Apr 2015 11:32:32 +0000 (13:32 +0200)
committerJoachim Breitner <mail@joachim-breitner.de>
Wed, 15 Apr 2015 14:39:41 +0000 (16:39 +0200)
commita9ca67f6bfb45d13944ba15452d3af613ec84d8b
tree17f8a939fa02d38dc9579e166354d1018b4b1620
parent49d9b009a2affb6015b8f6e2f15e4660a53c0d9a
Improve Call Arity performance

This improves how the Call Arity deals with "boring" variables. Boring
variables are those where it does not bother to include in the analysis
result, so whenever something is looked up in the analysis result, we
have to make a conservative assumption about them.

Previously, we extended the result with such conservative information
about them, to keep the code uniform, but that could blow up the amount
of data passed around, even if only temporarily, and slowed things down.

We now pass around an explicit list (well, set) of variable that are
boring and take that into account whenever we use the result. Not as
pretty, but noticably faster.
compiler/simplCore/CallArity.hs
testsuite/tests/callarity/unittest/CallArity1.hs
testsuite/tests/callarity/unittest/CallArity1.stderr