<html><head><base href="x-msg://40/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Jonas,<div>This is an unexpected failure.  I suggest filing a bug report at <a href="http://llvm.org/bugs">http://llvm.org/bugs</a>.  When Clang crashed it should have provided a stack trace, preprocessed source, and a script to reproduce the error.  Please include these items in the bug report.</div><div><br></div><div> Chad</div><div><br></div><div><br></div><div><div><div>On Nov 18, 2011, at 10:03 AM, Jonas Paulsson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div class="hmmessage" style="font-size: 10pt; font-family: Tahoma; "><div dir="ltr">Hi,<br><br>I get strange code when using regalloc=greedy.<span class="Apple-converted-space"> </span><br><br>A value spill is redundant and cleared, as another spill of same value is inserted. The former spill is however not NOP:ed, but KILL:ed, thus the operands get a kill status. The code becomes:<br><br>    %vreg301<def> = mv32Imm 200000000, pred:0, pred:%noreg, %CCReg<imp-def,dead>, %ac0<imp-use>, %ac1<imp-use>; aN32_0_7:%vreg301<br>    Store32FI %vreg301, <fi#93>, pred:0, pred:%noreg, %CCReg<imp-def>; mem:ST4[FixedStack93] aN32_0_7:%vreg301<br>    KILL %vreg301, <fi#93>, 0, %noreg, %CCReg<imp-def>; mem:ST4[FixedStack93] aN32_0_7:%vreg301<br>    %a0_32<def> = COPY %vreg301; aN32_0_7:%vreg301<br><br>This results in abort:<br><br> "Assertion `MI->allDefsAreDead() && "Def isn't really dead"' failed."<br><br>What is the purpose of having the KILL opcode there, and do you know what might be the cause for this error?<br><br>Are all the register allocators currently of high standard, or are one or more less mature, meaning things might break?<br><br>/Jonas<br><br><br></div>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a><span class="Apple-converted-space"> </span>        <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></span></blockquote></div><br></div></body></html>