<div dir="ltr">A POC patch is available here for discussion<div><a href="https://reviews.llvm.org/D61634">https://reviews.llvm.org/D61634</a><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 30, 2019 at 6:28 PM David Chisnall <<a href="mailto:David.Chisnall@cl.cam.ac.uk">David.Chisnall@cl.cam.ac.uk</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">On 30/04/2019 15:01, Guillaume Chatelet wrote:<br>
> David what do you think about the additional version that restrict the <br>
> effect to a few named functions?<br>
> > e.g. __attribute__((disable_call_synthesis("memset", "memcpy", "sqrt")))<br>
<br>
I would find that exceptionally useful. For the libm example, <br>
preventing LLVM from synthesising calls to other libm functions that may <br>
call this one would be the fine-grained control that we want. For an <br>
Objective-C runtime, being able to explicitly disable synthesising ARC <br>
calls would be similarly useful (though I can no longer construct an <br>
example where LLVM does the wrong thing, so maybe this is fixed already <br>
in the ARC passes).<br>
<br>
David<br>
</blockquote></div>