[GHC] #5536: IO performance regression in 7.2 vs 7.0

GHC cvs-ghc at haskell.org
Thu Oct 13 08:56:58 CEST 2011


#5536: IO performance regression in 7.2 vs 7.0
---------------------------------+------------------------------------------
    Reporter:  simonmar          |        Owner:  batterseapower
        Type:  bug               |       Status:  new           
    Priority:  high              |    Milestone:  7.4.1         
   Component:  libraries/base    |      Version:  7.2.1         
    Keywords:                    |     Testcase:                
   Blockedby:                    |   Difficulty:                
          Os:  Unknown/Multiple  |     Blocking:                
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown  
---------------------------------+------------------------------------------

Comment(by batterseapower):

 Yes it is a bit annoying. I do wonder, though, why two simple arithmetic
 comparisons are penalising the loops so much, especially considering that
 those loops already do a number of *other* tests.

 I wonder if the fact that with this test the Core looks something like:

 {{{
 case (case x of A -> C# ...; B -> C# ...; C -> C# ...) of c {
   loop (c:cs) x
 }
 }}}

 Is causing a problem? Even though we can't improve the core by doing a
 case-of-case transformation, doing so would avoid some stack manipulations
 at the cmm level.

 Perhaps the right thing to do is look at the generated ASM and see what is
 so different in the two versions.

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



More information about the Glasgow-haskell-bugs mailing list