[llvm-bugs] [Bug 27500] New: [MSP430] codegen: strange branch instructions

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Apr 24 04:11:51 PDT 2016


            Bug ID: 27500
           Summary: [MSP430] codegen: strange branch instructions
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: MSP430
          Assignee: unassignedbugs at nondot.org
          Reporter: pftbest at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16256
  --> https://llvm.org/bugs/attachment.cgi?id=16256&action=edit
original.ll (does not trigger error)

When original.ll is optimized with `opt -O3` then llc generates strange
conditional branch instructions that look like this:

.LBB0_4:                                ; %if.then26
    cmp.b    #126, r7
    jne    4
    br    #.LBB0_57
.LBB0_5:                                ; %cond.end38
    mov.w    #1, r13
    mov.b    r7, r6
    and.b    #63, r6

"jne 4" instruction is then compiled by gcc into "jnz $+6" and in result we are
jumping over "mov.w #1, r13".

steps to reproduce:
$ opt -O3 original.ll -o optimized.bc
$ llc optimized.bc -o optimized.s
$ cat optimized.s | grep 'j.*\t4'
    jne    4
    jne    4

software versions:
(http://llvm.org/git/llvm.git 822155bcb5ae5fc09d4448b862758631c9378a3b)
LLVM (http://llvm.org/):
  LLVM version 3.9.0svn
  DEBUG build with assertions.
  Built Apr 24 2016 (08:41:34).
  Default target: x86_64-apple-darwin15.4.0
  Host CPU: haswell

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160424/73628f56/attachment-0001.html>

More information about the llvm-bugs mailing list