[patch] Don't rename in Module::getOrInsertFunction.

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Mar 10 11:52:49 PDT 2014

On Mar 10, 2014, at 11:35 AM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:

> Duncan recently reminded me that Module::getOrInsertFunction can
> rename globals to make the new one fit. That is fairly surprising,
> given the name of the function and what a central part of llvm it is.
> Going over git log it looks like this was done to help with the
> transition out of type planes. I have already done a simple "ninja
> check-all" and both clang's and llvm's tests are clear. I will also
> try a bootstrap and running the llvm testsuite.
> Is the attached patch OK if all of the above works?
> Cheers,
> Rafael
> <t.patch>

I actually started with this (see [1]), but I imagined some use cases where
the current behaviour might be correct.  For example, what if someone gives
a static function the same name as a libc function that they aren’t using
(and maybe don’t even know about), and then LLVM inserts a use of the libc
function.  Should this use call their potentially unrelated function, or
the libc function?

[1]: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140224/206842.html

More information about the llvm-commits mailing list