[llvm-dev] Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")

Chandler Carruth via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 26 20:30:13 PST 2016

On Fri, Feb 26, 2016 at 8:15 PM Hal Finkel <hfinkel at anl.gov> wrote:

> Can you explain your concerns about reliability? My idea is that we have a
> kind of delayed-name comdat section attribute that says that the name of
> the comdat section into which the function will be placed will be based on
> the hash of the contents (which should probably be the pre-isel IR-level
> contexts plus perhaps the other state that might affect backend
> optimization). Maybe just using the MI-level function contents will work
> too. It seems like this should be "perfect". I don't see the circumstances
> why function definitions optimized under identical optimization settings
> should differ in this sense.

Ok, let's consider Sanjoy's latest post.

I think we could end up with this routine in N different modules with
slightly different amounts of information in each. Each of these in turn
could cause us to deduce a slightly different set of attributes, and thus
compute a different hash.

Now, certainly, there are a small number of variants here. Two, maybe
three. But this could in the worst case cause us to have two copies of a
*huge* number of functions.

My concern here is not that this is a *theoretically* hard problem to
solve. I think there are good techniques to handle this. My concern is that
it will be a substantial amount of work and require a reasonable amount of
testing and experimentation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160227/b8ea8c56/attachment.html>

More information about the llvm-dev mailing list