[Haskell-cafe] SpecConstr message while compiling

Daniel Díaz Casanueva dhelta.diaz at gmail.com
Mon Oct 24 00:04:49 CEST 2011


Thank you, good response!

Anyway, I'm not specially aware about the speed in that section of the
program. The really big work is done in other places. Also, addOc runs in
lists of 300~400 as maximum (but only in special inputs, average is under
200), so the time difference can't be improved notoriously, and I won't see
changes in performance.

But I will follow your pointers when necessary in the future.
On Sun, Oct 23, 2011 at 7:50 PM, Daniel Fischer <
daniel.is.fischer at googlemail.com> wrote:

> On Sunday 23 October 2011, 19:33:55, Daniel Díaz Casanueva wrote:
> > Hi, cafe!
> >
> > I wrote a program and had the following message while compiling (with
> > -O2):
> >
> > SpecConstr
> >     Function `addOc{v s6RL} [lid]'
> >       has four call patterns, but the limit is 3
> >     Use -fspec-constr-count=n to set the bound
> >     Use -dppr-debug to see specialisations
> >
> > What it means? Is it bad? It only happens when compiling with -O2.
>
> It's nothing serious.
> It's just a message (that accidentally was output by default in the 7.0.*
> series) that the spec-constr pass could have done more specialising, but
> the limit forbade it.
>
> More specialising on constructors means
>
> - certainly bigger code
> - potentially faster code
>
> but it could also become slower (most likely because of worse cache
> locality).
>
> It's not even a warning, just a notification.
>
> >
> > addOc is a local function (defined in a where clause). If it helps, here
> > is the definition:
> >
> > addOc x [] = [(x,1)]
> > addOc x ((y,n):ys) = if x == y then (y,n+1) : ys
> >                                else (y,n) : addOc x ys
> >
> > I want to know if there is something wrong or a I don't need to take
> > care about this.
>
> You need not take care of it, but you can try out and pass
> -fspec-constr-count=N
> on the command line (here, N = 4 is a good start) to see if the generated
> code is faster.
>
> >
> > Thanks in advance,
> > Daniel Díaz.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20111024/feeaeff8/attachment.htm>


More information about the Haskell-Cafe mailing list