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