GHC | 10 May 14:05 2012

#6087: Join points need strictness analysis

#6087: Join points need strictness analysis
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:                         
        Type:  bug               |      Status:  new                    
    Priority:  normal            |   Milestone:  7.6.1                  
   Component:  Compiler          |     Version:  7.4.1                  
    Keywords:                    |          Os:  Unknown/Multiple       
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
  Difficulty:  Unknown           |    Testcase:                         
   Blockedby:                    |    Blocking:                         
     Related:                    |  
---------------------------------+------------------------------------------
 I came across this code in the `nofib/spectral` progam `knights`, in the
 code for `KnightHeuristic.possibleMoves`:
 {{{
 let {
   $j_sU3
     :: GHC.Types.Int -> GHC.Types.Int -> [KnightHeuristic.Direction]
   [LclId, Arity=2]
   $j_sU3 =
     \ (ww2_sRl :: GHC.Types.Int) (ww3_sRm :: GHC.Types.Int) ->
       case ww2_sRl of ww4_XQY { GHC.Types.I# ww5_sQU ->
       case GHC.Prim.>=# ww5_sQU 1 of _ {
         GHC.Types.False -> go1_azF ys_azM;
         GHC.Types.True ->
           case ds1_azR of _ { GHC.Types.I# y1_azp ->
           case GHC.Prim.<=# ww5_sQU y1_azp of _ {
             GHC.Types.False -> go1_azF ys_azM;
             GHC.Types.True ->
               case ww3_sRm of wild6_XAB { GHC.Types.I# x_XAE ->
(Continue reading)

GHC | 10 May 14:10 2012

Re: #6087: Join points need strictness analysis

#6087: Join points need strictness analysis
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:                         
        Type:  bug               |      Status:  new                    
    Priority:  normal            |   Milestone:  7.6.1                  
   Component:  Compiler          |     Version:  7.4.1                  
    Keywords:                    |          Os:  Unknown/Multiple       
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
  Difficulty:  Unknown           |    Testcase:                         
   Blockedby:                    |    Blocking:                         
     Related:                    |  
---------------------------------+------------------------------------------
Changes (by stefan):

 * cc: stefan <at> … (added)

--

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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs <at> haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
GHC | 20 Mar 19:31 2013

Re: #6087: Join points need strictness analysis

#6087: Join points need strictness analysis
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:                         
        Type:  bug               |      Status:  new                    
    Priority:  normal            |   Milestone:  7.6.2                  
   Component:  Compiler          |     Version:  7.4.1                  
    Keywords:                    |          Os:  Unknown/Multiple       
Architecture:  Unknown/Multiple  |     Failure:  Runtime performance bug
  Difficulty:  Unknown           |    Testcase:                         
   Blockedby:                    |    Blocking:                         
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by nfrisby):

 A second demand analysis at the end of the pipeline does help here.

 {{{
                  let {
                     $j_sRv [Dmd=<C(C(S)),U>]
                       :: GHC.Types.Int
                          -> GHC.Types.Int
                          -> [KnightHeuristic.Direction]
 }}}

 {{{
     Entries     Allocs    Alloc'd Arity    Kinds      Function
 --------------------------------------------------------------------------------
        6003      51444       1334      1    L          go{v s12q}
 (main:KnightHeuristic)
(Continue reading)


Gmane