[LLVMbugs] [Bug 5198] New: Wrong live-out from a simple code after backend optimizations

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Oct 15 10:23:54 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=5198

           Summary: Wrong live-out from a simple code after backend
                    optimizations
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: quickslyver at free.fr
                CC: llvmbugs at cs.uiuc.edu


with this simple code:
int f(int a,int b)
{
  if(a>b)
  {
    return a;
  }
  else if(a<-20) 
  {
    return 10-a;
  }
  return a+18;
}

and compiled with:
clang-cc -S -verify-machineinstrs --triple=arm-unknown-unknwon test-live.c
-debug -o - -O3

output:
[...]
*** Bad machine code: Live-in physical register is not live-out from
predecessor ***
- function:    f
- basic block: if.else 0xb4f1db0 (#1)
Register R0 is not live-out from MBB #0.

*** Bad machine code: Live-in physical register is not live-out from
predecessor ***
- function:    f
- basic block: return 0xb4f1e94 (#4)
Register R0 is not live-out from MBB #0.

same problem with:
--triple=sparc-unknown-unknown
--triple=msp430-unknown-unknown
--triple=thumb-unknown-unknown
(so it's not target dependent)

There is a kill/def problem that seems to occur during SIMPLE REGISTER
COALESCING phase.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list