[GHC] #7520: Implement cardinality analysis

GHC cvs-ghc at haskell.org
Thu Mar 21 21:06:02 CET 2013


#7520: Implement cardinality analysis
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:                  
        Type:  bug               |      Status:  new             
    Priority:  normal            |   Milestone:                  
   Component:  Compiler          |     Version:  7.6.1           
    Keywords:                    |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown    
  Difficulty:  Unknown           |    Testcase:                  
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by nfrisby):

 SPJ determined that this cardinality analysis could make some fragile
 fusion opportunities more robust. My experimentation with -fdicts-strict
 in `nofib/shootout/spectral-norm` was disrupting such a fusion.

 {{{
 let x_aPi = build (\b c n -> eftIntFB c n 0 (...)) -- from "[0..n-1]"
 in Library.allocaArray n $ \ptr ->
   foldr (mapFB ...) (...) x_aPi -- from "forM_ ..."
 }}}

 If `allocaArray` is not inlined early enough (which my -fdicts-strict
 tinkering prevented), the `ptr` lambda is not identified as one-shot, so
 `x_aPi` will not be inlined under it and `foldr/build` won't fire.

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



More information about the ghc-tickets mailing list