#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

Reply via email to