#4428: Local functions lose their unfoldings
--------------------------------------+-------------------------------------
Reporter: rl | Owner:
Type: bug | Status: new
Priority: normal | Milestone: 7.0.2
Component: Compiler | Version: 7.1
Resolution: | Keywords:
Testcase: | Blockedby:
Difficulty: | Os: Unknown/Multiple
Blocking: | Architecture: Unknown/Multiple
Failure: Runtime performance bug |
--------------------------------------+-------------------------------------
Comment(by rl):
Replying to [comment:16 simonpj]:
>
> I'm still don't really understand your application for all this
complexity, and without understanding it it's hard to suggest solutions.
You seem to be doing essentially no fusion etc until phase 0. So why not
write this?
It's much less convenient. But I'll try that and see if it affects
compilation times.
The setup isn't all that complex. In phase 2, we inline vector operations
and apply rules like stream/unstream. In phase 1, we inline stream
operations and let the simplifier work on the loops a bit. Finally, in
phase 0 we inline the step functions and the simplifier removes all Step
values. Previously, we inline step functions in phase 1, too, but inlining
them in phase 0 sometimes leads to better code and speeds up compilation.
Anyway, let's drop this for now. I don't really have time to benchmark the
compiler at the moment and I understand that it probably doesn't make
sense to do anything about this without hard numbers.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4428#comment:17>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs