Skip to content

Improve SpecConstr and floating

Simon Peyton Jones requested to merge wip/T21386 into master

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).

Edited by Simon Peyton Jones

Merge request reports