Do not duplicate call information in SpecConstr (Trac #8852)
authorSimon Peyton Jones <simonpj@microsoft.com>
Mon, 25 Aug 2014 11:28:44 +0000 (12:28 +0100)
committerAustin Seipp <austin@well-typed.com>
Mon, 3 Nov 2014 13:41:06 +0000 (07:41 -0600)
commit01c48d84d680957f07534fa6ab6218f78efcfb1f
tree5fd7b47d5ef9fc56b964df40c2a7073f2edd0ab0
parent9622fcaf4a2bbe650a588dec4ffff85105b2bdcb
Do not duplicate call information in SpecConstr (Trac #8852)

This long-standing and egregious bug meant that call information was
being gratuitously copied, leading to an exponential blowup in the
number of calls to be examined when function definitions are deeply
nested.  That is what has been causing the blowup in SpecConstr's
running time, not (as I had previously supposed) generating very large code.

See Note [spec_usg includes rhs_usg]

(cherry picked from commit af4bc31c50c873344a2426d4be842f92edf17019)
compiler/specialise/SpecConstr.lhs