Improve SpecConstr and floating
Addresses #21386 (closed).
This patch addresses a relatively obscure situation desribed in
- SpecConstr can specialise on
($df d1 d2)
dictionary arguments - FloatOut no longer checks argument strictness
See Note [Specialising on dictionaries]
in GHC.Core.Opt.SpecConstr.
A test case is difficult to construct, but it makes a big difference
in nofib/real/eff/VSM
, at least when we have the patch for #21286 (closed)
installed. (The latter stops worker/wrapper for dictionary arguments).