| 1) The for me most interesting performance issue at the moment is the
| regression in CPS performance that Bryan reported. 

Yes, I'm going to look at that once I've finished with the 7.0.2 perf 
regression.  It's a bit tricky because it's a big program.

| the state one. My guess, from reading some of the core, is that GHC
| sometimes allocates closures in places were we don't want to e.g. it
| would use
| 
|     let k = ...continuation closure...
|     in if pred then k
|        else ...no use of k...
| 
| instead of pushing the allocation of k into the 'then' branch. 

No, it should definitely push k into the then branch.

| Another
| thing I'm seeing is that GHC allocates a closure for a continuation,
| calls another function that immediately and unconditionally applies
| that closure (like a trampoline). I'd expect GHC to never allocate
| that closure to begin with.

That's much harder, unless you inline the trampoline function.

| I guess we owe you a small reproducible test case. Unfortunately it's
| kinda hard to produce as the difference can only be seen in medium
| size programs.

Well even bigger programs are ok if you can point to regressions, or say "look 
at this Core, it could obviously be improved".

| 2) I've gotten really interested in array copying performance lately.

Do the new primops help?  (I'm not sure if they've made it in yet, and Simon M 
is on hol.)

Simon

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to