[GHC] #4065: Inconsistent loop performance
GHC
cvs-ghc at haskell.org
Fri Aug 3 17:54:22 CEST 2012
#4065: Inconsistent loop performance
---------------------------------+------------------------------------------
Reporter: rl | Owner:
Type: bug | Status: new
Priority: normal | Milestone: 7.6.1
Component: Compiler | Version: 6.13
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime performance bug
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Changes (by simonmar):
* difficulty: => Unknown
* blockedby: 4258 =>
Comment:
The new code generator is giving essentially the same code for these two,
except that the sense of the branch is different (but that shouldn't make
a difference).
{{{
Test_zdwbar_info:
.LcrC:
testq %r14,%r14
jne .LcrI
.LcrJ:
movq %rsi,%rbx
jmp *(%rbp)
.LcrI:
decq %r14
incq %rsi
jmp Test_zdwbar_info
Test_zdwfoo_info:
.Lcqj:
testq %r14,%r14
jle .Lcqr
.Lcqs:
decq %r14
incq %rsi
.Lcqr:
movq %rsi,%rbx
jmp *(%rbp)
}}}
The old code generator was ok on `foo`, but worse on `bar`:
{{{
Test_zdwbar_info:
.Lcra:
movq %r14,%rax
testq %r14,%r14
jne .Lcrg
movq %rsi,%rbx
jmp *0(%rbp)
.Lcrg:
leaq -1(%rax),%r14
incq %rsi
jmp Test_zdwbar_info
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4065#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list