<div dir="ltr">Ping - I have a pretty clear workaround internally, but still would be happy to remove any workarounds given the opportunity.<br><br>As for layering. For now the issue is that libAST depends on libBasic, and libraries can't have circular dependencies. Modular builds (well, especially modular codegen, but even not) can observe some of this/are broken by this.<br><br>So the change as-is isn't acceptable. For now I think it'd be best to fix the layering as it stands (add enums that can be passed down to Basic as needed, for example (I haven't looked closely)) & if you believe Basic and AST should be rolled together - maybe that's worthy of a discussion on cfe-dev.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Nov 17, 2017 at 9:56 AM Anastasia Stulova via Phabricator via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Anastasia added a comment.<br>
<br>
Perhaps, I don't understand the concept of layered design in this particular case. But I just find it annoying that we need to re-implement the entire OpenCL AST Type structure in Basic. And even if we don't have dependencies on the files physically we still logically  bound to the AST representation in Basics and just entirely mirror it there.<br>
<br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D33989" rel="noreferrer" target="_blank">https://reviews.llvm.org/D33989</a><br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>