<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes this is unused definition. The comments in AggressiveAntiDepBreaker explains it quite accurately. They can also comes from instructions that produce multiple results but only part of them are used (the EFLAGS is an example).<br class=""><div class=""><div class=""><br class=""></div><div class="">Mehdi</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 2, 2015, at 7:15 PM, Thomson <<a href="mailto:lilotom@gmail.com" class="">lilotom@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Thanks Mehdi. Below is an example of "dead def", it looks like unused definition as you mentioned, could you confirm? I also saw dead defs in some generated code before register allocation, like "%reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<<b class="">imp-def,dead</b>>", does it mean similar for EFLAGS here?<div class=""><br class=""></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px" class=""><div class="">// AggressiveAntiDepBreaker.cpp</div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px" class=""><div class=""><div class=""><div class="">void AggressiveAntiDepBreaker::PrescanInstruction(MachineInstr *MI,</div></div></div><div class=""><div class="">                                                  unsigned Count,</div></div><div class=""><div class="">                                             std::set<unsigned>& PassthruRegs) {</div></div><div class=""><div class="">  std::vector<unsigned> &DefIndices = State->GetDefIndices();</div></div><div class=""><div class="">  std::multimap<unsigned, AggressiveAntiDepState::RegisterReference>&</div></div><div class=""><div class="">    RegRefs = State->GetRegRefs();</div></div><div class=""><div class=""><br class=""></div></div><div class=""><div class="">  // Handle <b class="">dead defs</b> by simulating a last-use of the register just</div></div><div class=""><div class="">  // after the def. A dead def can occur because the def is truly</div></div><div class=""><div class="">  // dead, or because only a subregister is live at the def. If we</div></div><div class=""><div class="">  // don't do this the dead def will be incorrectly merged into the</div></div><div class=""><div class="">  // previous def.</div></div><div class=""><div class="">  for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {</div></div><div class=""><div class="">    MachineOperand &MO = MI->getOperand(i);</div></div><div class=""><div class="">    if (!MO.isReg() || !MO.isDef()) continue;</div></div><div class=""><div class="">    unsigned Reg = MO.getReg();</div></div><div class=""><div class="">    if (Reg == 0) continue;</div></div><div class=""><div class=""><br class=""></div></div><div class=""><div class="">    HandleLastUse(Reg, Count + 1, "", "\t<b class="">Dead Def</b>: ", "\n");</div></div><div class=""><div class="">  }</div></div></blockquote></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Jan 2, 2015 at 4:38 AM, Mehdi Amini <span dir="ltr" class=""><<a href="mailto:mehdi.amini@apple.com" target="_blank" class="">mehdi.amini@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br class="">
> On Jan 1, 2015, at 7:24 AM, Thomson <<a href="mailto:lilotom@gmail.com" class="">lilotom@gmail.com</a>> wrote:<br class="">
><br class="">
> I saw there is reference to dead def on registers in LLVM source code. I am not aware of this concept from the traditional course material. What are the properties of dead def?<br class="">
<br class="">
</span>Could it be a def that is never used (hence dead)?<br class="">
If you mention where you saw it, it may be easier to help :)<br class="">
<br class="">
Best,<br class="">
<br class="">
Mehdi<br class="">
<br class="">
<br class="">
><br class="">
> Cheers<br class="">
> Thomson<br class="">
> _______________________________________________<br class="">
> LLVM Developers mailing list<br class="">
> <a href="mailto:LLVMdev@cs.uiuc.edu" class="">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu/" target="_blank" class="">http://llvm.cs.uiuc.edu</a><br class="">
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br class="">
<br class="">
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></body></html>