#3738: Typechecker floats stuff out of INLINE right hand sides
--------------------------------------+-------------------------------------
Reporter: rl | Owner:
Type: bug | Status: new
Priority: normal | Milestone: 6.14 branch
Component: Compiler | Version: 6.13
Resolution: | Keywords:
Difficulty: | Os: Unknown/Multiple
Testcase: | Architecture: Unknown/Multiple
Failure: Runtime performance bug |
--------------------------------------+-------------------------------------
Changes (by simonpj):
* difficulty: =>
* summary: INLINE function loses unfolding => Typechecker floats stuff
out of INLINE right hand sides
* milestone: => 6.14 branch
Comment:
I'm not too bothered about this:
* It's true that `bar` doesn't get the loop in its unfolding. But it
does if you use `-fno-method-sharing`. Reason: the typechecker floats
`(foo Int)` out of the RHS of `bar`. I will fix this when doing the new
constraint simplifier. But meanwhile it doesn't matter, does it. The top-
level `$wgo` loop works just fine.
* The specialised version of `foo` doesn't seem to get an inline pragma,
but what matters is that it has an `InlineRule` unfolding. So that part
is ok. Same for `bar_foo`.
I'm going to leave this open with a new title, for the new constraint
simplifier.
Simon
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3738#comment:1>
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