<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Stock debuggers are designed for C. They generally will not be able to grok M3. Better to use M3 run-time type information as per m3gdb. See <a href="http://dx.doi.org/10.1145/143103.143112">10.1145/143103.143112</a>.<div><br><div>
<br><div><div>On Sep 9, 2012, at 4:07 PM, Jay <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div bgcolor="#FFFFFF"><div>The current method stinks for stock debugging. As I understand, globals are combined into structs & the fields all have generated names, & global records are flattened therein.</div><div><br></div><div><br></div><div>It works. But stock debuggers see garbage.</div><div><br><br> - Jay (briefly/pocket-sized-computer-aka-phone)</div><div><br>On Sep 9, 2012, at 12:22 PM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>I mis-spoke. I think LLVM can cope with much the same as we currently have. Front-end will continue to compute alignments and layouts. We can assert the front-end’s datalayout by passing it to LLVM explicitly, which will complain if it does not match the actual target. This is a rather nice feature of LLVM in that it allows us to retain control while having LLVM optimize accordingly.</div><div>
<br><div><div>On Sep 9, 2012, at 11:05 AM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> 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; ">Yes, agreed, these need to be properly typed too.<div>First step will be to lift the M3CG interface.</div><div>Problem: The compiler needs to control layout so that the run-time system knows where to find things. This means that we need to assert alignments and layouts produced by the backend are the same as those in the front-end. LLVM has nice ways to do this. How will we do it in the C backend? Does C have sufficient control over alignment?</div><div><br><div><div>On Sep 9, 2012, at 10:53 AM, Jay <<a href="mailto:jay.krell@cornell.edu"></a><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div bgcolor="#FFFFFF"><div>Btw, can this include "segment"/globals? Can they each be separate named variables? At least some of them?</div><div><br></div><div><br> - Jay (briefly/pocket-sized-computer-aka-phone)</div><div><br>On Sep 9, 2012, at 7:48 AM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> wrote:<br><br></div><div></div><blockquote type="cite">I’m looking at it...<div><br></div><div>First step is to lift slightly the level of M3CG to use properly typed memory access, instead of untyped address + offset.</div><div>
<br><div><div>On Sep 9, 2012, at 2:32 AM, Dragiša Durić <<a href="mailto:dragisha@m3w.org"></a><a href="mailto:dragisha@m3w.org"></a><a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: medium; 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-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">I hope somebody will take on LLVM :).</div><br class="Apple-interchange-newline"></blockquote></div><br></div></blockquote></div></blockquote></div><br></div></div></blockquote></div><br></div></blockquote></div></blockquote></div><br></div></div></body></html>