<div dir="ltr">No, Object is supposed to be an abstraction over real object files and LLVM bitcode object files.<div><br></div><div>Maybe we can break the CodeView -> Object dependency.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Mar 29, 2018 at 4:23 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It seems a little strange conceptually that object depends on BitcodeReader.  Is it possible to break that dependency?<br><div class="gmail_quote"><div dir="ltr">On Thu, Mar 29, 2018 at 4:11 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Mar 26, 2018 at 4:52 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Mar 22, 2018 at 12:55 PM Reid Kleckner <<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Mar 21, 2018 at 11:31 AM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm looking at fixing some layering violations in LLVM & came across a few in the CodeView handling, specifically:<br><br>lib/MC/MCCodeView includes several llvm/DebugInfo/CodeView headers<br>  I guess MC could be made dependent on DebugInfoCodeView? But probably these things should be sunk into BinaryFormat as is the case for DWARF features used by MC?<br></div></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>I'd be OK with that. We could very easily introduce true link dependencies on that library in the near future.</div></div></div></blockquote></div></div><div dir="ltr"><div class="gmail_quote"><div><br>OK - added the LLVMBuild.txt change in r328595<br></div></div></div></blockquote></div></div><div dir="ltr"><div class="gmail_quote"><div><br>Hmm, not perfect - this creates a bit of a circular dependency:<br><br>llvm-tblgen<br>MC<br>DebugInfo/CodeView<br>Object<br>Bitcode/Reader<br>IR (including lib/IR/AttributesCompatFunc.inc)<br>llvm-tblgen (to generate AttributesCompatFunc.inc)<br><br>This is just a specific path shown by the internal build system - no doubt there are other tblgen files in LLVM IR, etc.<br><br>So I guess still need to split up DebugInfo/CodeView (assuming the bits needed by MC don't depend on Object)? Any suggestions? Sink it into BinaryFormat or name a new library?<br><br>(it's quite a few headers by the looks of it: CodeView.h, Line.h, SymbolRecord.h, CodeViewTypes.def, CodeViewSymbols.def, CodeViewRegisters.def, TypeIndex.h, CVRecord.h, CodeViewError.h, RecordSerialization.h - maybe some of those aren't needed, if they're excessive includes or the like (they tend to seep in all over the place))<br> </div></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>  </div></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>include/llvm/Object/COFF.h includes include/llvm/DebugInfo/CodeView/CVDebugRecord.h<br>  Also seems like this could/should/needs to be sunk into BinaryFormat?<br></div></div></blockquote><div><br></div></div></div><div dir="ltr"><div class="gmail_quote"><div>These things are really more PE/PDB related than CodeView. They are in the wrong place. I'd ask Saleem to help find a new home. Object or BinaryFormats seem OK to me.</div></div></div></blockquote></div></div><div dir="ltr"><div class="gmail_quote"><div><br>Moved it to libObject (r328593) for now which is at least correct - if someone thinks it'd be more suited to BinaryFormat, I'm happy to move it or they can.<br> </div></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm open to ideas & happy to do the work, or help in any way that might be useful.<br><br>Thanks,<br>- Dave</div></div>
</blockquote></div></div></blockquote></div></div></blockquote></div></div></blockquote></div>
</blockquote></div>