<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 4, 2010, at 8:55 AM, Devang Patel wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 3, 2010, at 9:22 PM, Chris Lattner wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Oct 1, 2009, at 2:35 PM, Evan Cheng wrote:</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Can't we compute these on demand so codegen passes don't have to change these?</div></blockquote><div><br></div>Devang, I never saw an answer to this.  </div></div></blockquote><div><br></div><div>Now, we compute this just before asmprint.</div></div></div></blockquote><div><br></div>DbgScope still maintains these as instance variables.  I see that it is now an asmprinter local data structure, so we can't have pointer invalidation issues.  However, we still have memory use to consider.</div><div> <br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I have serious concerns about <span class="Apple-style-span" style="font-family: monospace; ">DbgScope and the presence of two MachineInstr*'s that can dangle seems very dubious.</span></div></div></blockquote><div><br></div><div>DbgScope is representing lexical scopes for debug info.</div></div></div></blockquote><div><br></div><div>How many DbgScopes are created?</div><div><br></div><div>-Chris</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div> This info is collected based on debug info attached with MachineInstr. DbgScope keeps MachineInstr                       so that we can avoid printing labels until the instruction is printed.</div><div><br></div><div>-</div><div>Devang</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" face="monospace"><br></font></div><div><font class="Apple-style-span" face="monospace">-Chris</font></div><div><font class="Apple-style-span" face="monospace"><br></font></div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Evan</div><div><br><div><div>On Oct 1, 2009, at 2:25 PM, Devang Patel wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Oct 1, 2009, at 1:38 PM, Dan Gohman wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On Oct 1, 2009, at 11:25 AM, Devang Patel wrote:<br><br><blockquote type="cite">Author: dpatel<br></blockquote><blockquote type="cite">Date: Thu Oct  1 13:25:23 2009<br></blockquote><blockquote type="cite">New Revision: 83207<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=83207&view=rev">http://llvm.org/viewvc/llvm-project?rev=83207&view=rev</a><br></blockquote><blockquote type="cite">Log:<br></blockquote><blockquote type="cite">Record first and last instruction of a scope in DbgScope.<br></blockquote><br>How does this interact with Post-RA scheduling, MachineLICM, and MachineHoist?<font class="Apple-style-span"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>It depends on when we run this DwarfDebug pass. Today, at iSel time we put the stake in the ground and emit label node (or instruction) to mark scope boundaries. In future,  this will be divided into three steps </div><div><br></div><div>1 - Just before AsmPrinter, the DwarfDebug will note down scope boundaries in DbgScope based on info attached with an machine instruction.</div><div>2 - @processDebugLoc() in AsmPrinter the labels will be emitted to mark scope boundaries and DW will be updated according.</div><div>3 - At the end, the scope DIEs will be created based on DbgScope entries.</div><div><br></div><div>So MachineLICM will have as much freedom as standard LICM.</div><div><br></div><div>-</div><div>Devang</div></div>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br></blockquote></div><br></div></div>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br></blockquote></div><br></div></blockquote></div><br></div></blockquote></div><br></body></html>