<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi, Jonathan.<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 21, 2020, at 17:15, Jonathan Roelofs <<a href="mailto:jonathan_roelofs@apple.com" class="">jonathan_roelofs@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="">On Jul 21, 2020, at 1:46 PM, Evandro Menezes <<a href="mailto:evandro.menezes@sifive.com" class="">evandro.menezes@sifive.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Jul 21, 2020, at 14:30, Chris Lattner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Jul 21, 2020, at 11:50 AM, Jonathan Roelofs via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">A question of preference came up in<span class="Apple-converted-space"> </span><a href="https://reviews.llvm.org/D83588" class="">https://reviews.llvm.org/D83588</a> as to whether we ought to prefer emitting TableGen error messages with all of the information in a single diagnostic, or whether it makes sense to split things in an error+note style as seen in many clang diagnostics. TableGen doesn’t use a DiagnosticsEngine, so the concept of a fatal note following an error is a bit new/foreign there, but perhaps something that makes sense adding.<div class=""><br class=""></div><div class="">Is there any precedence here for other internal llvm tooling (outside of clang)? What’s the general consensus here?</div></div></div></blockquote><br class=""></div><div class="">I think it makes a lot of sense to add this to TableGen.  It is a widely used tool and the QoI for its error messages could use a lot of improvement!</div></div></div></blockquote><br class=""></div><div class="">There is a lot of room from improvement in several details of TableGen.  However, methinks that changes towards such a goal shouldn't be sneaked in small doses.  Then it just adds more inconsistent error reporting to an already inconsistent reporting.</div></div></div></blockquote><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">Sure, let’s talk about what that end goal should be! Can you give some other examples of where these inconsistencies could be improved?</div></div></blockquote><div><br class=""></div><div>None specifically comes to the top of my mind, but they are legion, which I suppose there's no disagreement about it.  I myself committed a few small patches to improve error reporting as I came along them.  In many cases, merely adding the file name or line number where the error was found.</div><div><br class=""></div><div>Then again, as Matt mentioned, TableGen prefers to assert instead of erring out, which is quite unhelpful.  In this sense, by all means, an incremental improvement over an assert is more than incremental, but essential.</div><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div class=""> If one wants to improve the error reporting in TableGen, let one take it on himself this project, apart from one's other patches.</div></div></div></blockquote><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">Is incremental progress not welcome? I understand pushback on refactoring combined with functional changes, but that’s not at all what this is. The entire purpose of that patch is to improve these diagnostics, making it easier to do scheduler model work.</div></blockquote><br class=""></div><div>My concern is that without a definition of the intended style of the error messages, as they are incrementally modified, they will be changed inconsistently.  </div><div><br class=""></div><div>IMO, the error messages should provide some minimum information to be useful:</div><div>- Offending file</div><div>- Offending line number</div><div>- Offending structure (e.g., resource type, instruction name, etc)</div><div>- Offense</div><div><br class=""></div><div>I do not personally like the error and note, since in the patch above, the note is always fatal, whereas I'd rather see what other errors there are before it aborts.</div><div><br class=""></div><div>Your turn,</div><br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div>__ </div><div>Evandro Menezes ◊ SiFive ◊ Austin, TX</div></div></div></div></div>
</div>
<br class=""></body></html>