<div dir="ltr">Hi Nicolai,<div><br></div><div>Thanks for the reply.</div><div><br></div><div>While this sounds reasonable to me, I'm not sure that would work. Right now these properties are bool flags that are initialized per Record and each Record can only see properties from IntrProperties list.</div><div><br></div><div>If I'm missing something, please let me know.</div><div><br></div><div>Thanks,</div><div>Stefan</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 24, 2020 at 7:01 PM Nicolai Hähnle <<a href="mailto:nhaehnle@gmail.com">nhaehnle@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Stefan,<br>
<br>
On Wed, Jun 24, 2020 at 6:30 PM Stefan Stipanovic via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> A while back we started annotating intrinsics with new attributes (<a href="https://reviews.llvm.org/D65377" rel="noreferrer" target="_blank">https://reviews.llvm.org/D65377</a>)<br>
><br>
> After some discussion it was decided it would be good to have an `opt-out` attribute list for intrinsics. Some attributes that can be added to the list could be: nosync, nofree, nounwind, willreturn<br>
><br>
> For now, there are 2 approaches:<br>
><br>
> Filtering opt-out attributes in tablegen source (<a href="https://reviews.llvm.org/D70365" rel="noreferrer" target="_blank">https://reviews.llvm.org/D70365</a>)<br>
> Having tablegen handle opt-out list (<a href="https://reviews.llvm.org/D70365?id=229732" rel="noreferrer" target="_blank">https://reviews.llvm.org/D70365?id=229732</a>)<br>
><br>
> How do people feel about these approaches? Is any of the two better than the other? Maybe I should consider something else?<br>
<br>
First of all, thank you for looking into this. I think either approach<br>
is fine, but tiven the prevalence of `let IntrProperties` in existing<br>
TableGen code, I'd lean slightly towards the approach where<br>
reconciling the opt-in and opt-out attributes is done by the TableGen<br>
backend.<br>
<br>
I'd recommend a slightly different tack to implementing that approach<br>
though: Add a isOptOut field to the IntrinsicProperty class, and have<br>
TableGen automatically determine the default attributes by looking for<br>
attributes that have this set to true.<br>
<br>
Cheers,<br>
Nicolai<br>
<br>
<br>
><br>
> Thanks,<br>
> Stefan<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br>
<br>
<br>
-- <br>
Lerne, wie die Welt wirklich ist,<br>
aber vergiss niemals, wie sie sein sollte.<br>
</blockquote></div>