llvm-6502/test
Duncan P. N. Exon Smith f5d17528ee Module: Don't rename in getOrInsertFunction()
During LTO, user-supplied definitions of C library functions often
exist.  -instcombine uses Module::getOrInsertFunction() to get a handle
on library functions (e.g., @puts, when optimizing @printf).

Previously, Module::getOrInsertFunction() would rename any matching
functions with local linkage, and create a new declaration.  In LTO,
this is the opposite of desired behaviour, as it skips by the
user-supplied version of the library function and creates a new
undefined reference which the linker often cannot resolve.

After some discussing with Rafael on the list, it looks like it's
undesired behaviour.  If a consumer actually *needs* this behaviour, we
should add new API with a more explicit name.

I added two testcases: one specifically for the -instcombine behaviour
and one for the LTO flow.

<rdar://problem/16165191>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203513 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-10 23:42:28 +00:00
..
Analysis When analyzing vectors of element type that require legalization, 2014-03-10 22:59:13 +00:00
Assembler
Bindings
Bitcode
BugPoint [bugpoint] Add testcase for r203343. 2014-03-10 16:58:54 +00:00
CodeGen Followup to r203483 - add test. 2014-03-10 20:36:04 +00:00
DebugInfo
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker Add test for LinkModules warning on triple, modified by r203009. Datalayout is already tested. 2014-03-10 15:54:49 +00:00
LTO Module: Don't rename in getOrInsertFunction() 2014-03-10 23:42:28 +00:00
MC [mips] Implement NaCl sandboxing of loads, stores and SP changes: 2014-03-10 20:34:23 +00:00
Object
Other
TableGen
tools
Transforms Use discriminator information in sample profiles. 2014-03-10 22:41:28 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh