Problems with live-ins and live-outs

Hi,
With the MSP430 target I have live-in/live-out problems pointed out by
Machine Instruction Verifier with the attached test-case compiled with:

clang-cc -triple=msp430-unknown-unknown test-live.c -S -o - -O1
-verify-machineinstrs -debug

For example: %R15W is killed in MBB#0:
CMP16rr %R14W<kill>, %R15W<kill>, %SRW<imp-def>

But %R15 as live-in in MMB#1:
if.else: 0xa244c20, LLVM BB @0xa1f0a08, ID#1:
Live Ins: %R15W %R15B
    Predecessors according to CFG: 0xa244bd4 (#0)
  CMP16ir -21, %R15W, %SRW<imp-def>

Does someone have any idea of what can be the root cause of these
errors? How can I debug this?

---------------------------Complete Output:----------------------
# Machine code for f():
Live Ins: R15W in VR#1025 R14W in VR#1026
Live Outs: R15W

entry: 0xa244bd4, LLVM BB @0xa1f0c10, ID#0:
Live Ins: %R15W %R14W
  CMP16rr %R14W<kill>, %R15W<kill>, %SRW<imp-def>
  JCC mbb<return,0xa244d04>, 5, %SRW<imp-use>
    Successors according to CFG: 0xa244d04 (#4) 0xa244c20 (#1)

if.else: 0xa244c20, LLVM BB @0xa1f0a08, ID#1:
Live Ins: %R15W %R15B
    Predecessors according to CFG: 0xa244bd4 (#0)
  CMP16ir -21, %R15W, %SRW<imp-def>
  JCC mbb<if.end7,0xa244cb8>, 5, %SRW<imp-use>
    Successors according to CFG: 0xa244c6c (#2) 0xa244cb8 (#3)

if.then5: 0xa244c6c, LLVM BB @0xa1e93c0, ID#2:
Live Ins: %R15W %R15B
    Predecessors according to CFG: 0xa244c20 (#1)
  %R12W<def> = MOV16ri 10
  %R12W<def> = SUB16rr %R12W, %R15W<kill>, %SRW<imp-def>
  %R15W<def> = MOV16rr %R12W<kill>
  RET %R15W<imp-use,kill>

if.end7: 0xa244cb8, LLVM BB @0xa1f09c0, ID#3:
Live Ins: %R15W %R15B
    Predecessors according to CFG: 0xa244c20 (#1)
  %R15W<def> = ADD16ri %R15W, 18, %SRW<imp-def>
  RET %R15W<imp-use,kill>

return: 0xa244d04, LLVM BB @0xa1efa18, ID#4:
Live Ins: %R15W %R15B
    Predecessors according to CFG: 0xa244bd4 (#0)
  RET %R15W<imp-use,kill>

# End machine code for f().

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

*** Bad machine code: Live-in physical register is not live-out from
predecessor ***
- function: f
- basic block: if.else 0xa244c20 (#1)
Register R15B 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 0xa244d04 (#4)
Register R15W 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 0xa244d04 (#4)
Register R15B is not live-out from MBB #0.

test-live.c (113 Bytes)