#1498: Optimisation: eliminate unnecessary heap check in recursive function
-------------------------------------------+--------------------------------
Reporter: simonmar | Owner:
Type: bug | Status: new
Priority: low | Milestone: 7.6.1
Component: Compiler | Version: 6.6.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime performance
bug
Difficulty: Moderate (less than a day) | Testcase:
Blockedby: 4258 | Blocking:
Related: |
-------------------------------------------+--------------------------------
Comment(by batterseapower):
It's worth noting that the new codegen does put the heap check in the
"correct" place for the example program:
{{{
foo as n = loop 0# 0.0##
where
loop i x
| i >=# n = (# (), D# x #)
| otherwise = loop (i +# 1#) (x *## indexDoubleArray# as i)
}}}
The old code generator still has the problem, of course.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1498#comment:11>
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