<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I’ve decided to table this for now after running into issues decoupling CGCXXABI and CodeGenModule. Without being able to separate the creation of those, this patch has limited impact.<div><br></div><div>Mark<br><div><div><br><div><div>On Oct 9, 2013, at 9:53 PM, Mark Lacey <<a href="mailto:mark.lacey@apple.com">mark.lacey@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Does anyone have any further feedback on this patch, and if not does it look good to go in?<div><br></div><div>Thanks,</div><div><br></div><div>Mark<div><br><div><div>On Oct 8, 2013, at 8:42 PM, Mark Lacey <<a href="mailto:mark.lacey@apple.com">mark.lacey@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi David,<div><br><div><div>On Oct 8, 2013, at 6:33 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">To any particular end? (is there a need for this - I could imagine it's just convenient to implement the way it is now)</div></blockquote><div><br></div><div>Yes - I have been planning on sending something to cfe-dev once I had more to talk about. In the meantime I have been preparing and sending a few small changes that seem like generally good changes on their own, and that also help with a larger change I am investigating.</div><div><br></div><div>I am looking at exposing ABI information for use in LLDB. One example of where this would be useful would be for ‘thread step-out’ (aka finish). When you do a step-out, it currently attempts to display the returned value, but this is all hard-coded in LLDB for each platform, and has limits on at least some of them in terms of what is supported. The idea is to expose enough about how Clang types are mapped to LLVM types, and then how LLVM types are mapped to actual locations (registers or memory) according to the ABI, to make it simple for LLDB to support this kind of functionality more completely with less effort and less chance of disagreement between the generated code and where LLDB thinks things live.</div><div><br></div><div>The current tight coupling between CodeGenModule, CodeGenTypes, and ABIInfo has made it difficult to make progress experimenting with different ways of exposing interfaces that could be used by LLDB to get from Clang types to LLVM types (the last two really are mutually dependent at this point, and there does not seem to be an easy way around that or substantial benefit in trying to separate out their creation right now).</div><div><br></div><div>Thanks,</div><div><br></div><div>Mark</div><div><br></div><br><blockquote type="cite"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Oct 8, 2013 at 5:45 PM, Mark Lacey<span class="Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:mark.lacey@apple.com" target="_blank">mark.lacey@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">Hi -<br><br>Please review and let me know if you have any feedback.<br><br>Thanks,<br><br>Mark<br><br>----------------<br><br><br>Currently the only way to create a CodeGenTypes class is to pass it a<br>CodeGenModule, which is primarily used to initialize the members of<br>CodeGenTypes, but is also used in a couple of places to gain access to a<br>few members of CodeGenModule (OpenCLRuntime, DebugInfo,<br>and TargetCodeGenInfo).<br><br>This change makes it possible to construct a CodeGenTypes class<br>independently of a CodeGenModule. The constructor to CodeGenTypes is<br>updated to explicitly have parameters for each of its members, and new<br>pointer members are added for the information that was being referenced<br>from CodeGenModule.<br>---<br>lib/CodeGen/CGCall.cpp        |   2 +-<br>lib/CodeGen/CodeGenModule.cpp |  12 +++--<br>lib/CodeGen/CodeGenTypes.cpp  |  24 ++++++----<br>lib/CodeGen/CodeGenTypes.h    |  28 +++++++++--<br>lib/CodeGen/TargetInfo.cpp    | 106 ++++++++++++++++++++++++------------------<br>5 files changed, 111 insertions(+), 61 deletions(-)<br><br><br>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br><br></blockquote></div><br></div></blockquote></div><br></div>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a></div></blockquote></div><br></div></div></div>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></div></div></div></body></html>