#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

Reply via email to