#4903: Inliner looping when specialising across modules (with GADTs and other
extensions)
---------------------------------+------------------------------------------
    Reporter:  dreixel           |        Owner:                                
        Type:  bug               |       Status:  merge                         
    Priority:  normal            |    Milestone:                                
   Component:  Compiler          |      Version:  7.1                           
    Keywords:                    |     Testcase:  simplCore/should_compile/T4903
   Blockedby:                    |   Difficulty:                                
          Os:  Unknown/Multiple  |     Blocking:                                
Architecture:  Unknown/Multiple  |      Failure:  Compile-time crash            
---------------------------------+------------------------------------------
Changes (by simonpj):

  * status:  new => merge
  * testcase:  => simplCore/should_compile/T4903


Comment:

 Fixed by
 {{{
 Wed Jan 26 17:21:12 GMT 2011  [email protected]
   * Fix dependencies among specialisations for imported Ids

   This was a subtle one (Trac #4903).  See
     Note [Glom the bindings if imported functions are specialised]
   in Speclialise.

   Fundamentally, a specialised binding for an imported Id was being
   declared non-recursive, whereas in fact it can become recursive
   via a RULE.  Once it's specified non-recurive the OccAnal pass
   treats that as gospel -- and that in turn led to infinite inlining.

   Easily fixed by glomming all the specialised bindings in a Rec;
   now the OccAnal will sort them out correctly.

     M ./compiler/specialise/Specialise.lhs -13 +57
 }}}
 Can you push this to the stable branch, please Ian?

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4903#comment:2>
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