[vector] #32: Performance of concatMap and O2/Odph

vector vector at projects.haskell.org
Fri Oct 22 21:49:08 EDT 2010

#32: Performance of concatMap and O2/Odph
Reporter:  choener   |        Owner:       
    Type:  defect    |       Status:  new  
Priority:  critical  |    Milestone:  0.7.1
 Version:  0.6       |   Resolution:       
Keywords:            |  
Comment (by rl):

 This is all quite horrible. I rewrote `concatMap` such that `good` has the
 same performance with 7.0 as with 6.12.3 but now `bad` is about 10x slower
 than `good` again. I found one
 [http://hackage.haskell.org/trac/ghc/ticket/4428 GHC bug] which affects
 `concatMap` but working around it doesn't help with `bad`. The problem
 seems to be that `bad`'s loop uses `i`, can't be floated out because of
 this and then GHC doesn't optimise it as well as `good`'s loop which
 ''is'' getting floated out. Why this affects optimisation is a bit of a
 mystery so far. Perhaps !SpecConstr is getting confused by something.

Ticket URL: <http://trac.haskell.org/vector/ticket/32#comment:5>
vector <http://trac.haskell.org/vector>
Package vector

More information about the vector mailing list