#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
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs