#7308: Better code for top-level indirections
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:  simonmar        
        Type:  bug               |      Status:  new             
    Priority:  high              |   Milestone:  7.8.1           
   Component:  Compiler          |     Version:  7.6.1           
    Keywords:                    |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown    
  Difficulty:  Unknown           |    Testcase:                  
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by marlowsd@…):

 commit 7da13762664c1bec8e2a1ee5c7106cca3b32a98f
 {{{
 Author: Simon Marlow <marlo...@gmail.com>
 Date:   Tue Oct 9 08:49:25 2012 +0100

     Code-size optimisation for top-level indirections (#7308)

     Top-level indirections are often generated when there is a cast, e.g.

     foo :: T
     foo = bar `cast` (some coercion)

     For these we were generating a full-blown CAF, which is a fair chunk
     of code.

     This patch makes these indirections generate a single IND_STATIC
     closure (4 words) instead.  This is exactly what the CAF would
     evaluate to eventually anyway, we're just shortcutting the whole
     process.

  compiler/cmm/CmmInfo.hs           |    3 +-
  compiler/cmm/SMRep.lhs            |   11 +++++++++-
  compiler/codeGen/StgCmm.hs        |   13 ++++++-----
  compiler/codeGen/StgCmmBind.hs    |   40
 ++++++++++++++++++++++++++++--------
  compiler/codeGen/StgCmmClosure.hs |    8 +++++++
  compiler/codeGen/StgCmmHeap.hs    |    6 +---
  6 files changed, 60 insertions(+), 21 deletions(-)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7308#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to