First step in fixing PR8927:
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 8 Jan 2011 16:42:36 +0000 (16:42 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 8 Jan 2011 16:42:36 +0000 (16:42 +0000)
commitbea4626f93c830e31f82cc947df28fdae583cd09
tree516eb5bca793907f8e19649df18f6ace84898f5e
parent8368ac3688ccbb9f61b35a369ddc43ff90f8cdbd
First step in fixing PR8927:

Add a unnamed_addr bit to global variables and functions. This will be used
to indicate that the address is not significant and therefore the constant
or function can be merged with others.

If an optimization pass can show that an address is not used, it can set this.

Examples of things that can have this set by the FE are globals created to
hold string literals and C++ constructors.

Adding unnamed_addr to a non-const global should have no effect unless
an optimization can transform that global into a constant.

Aliases are not allowed to have unnamed_addr since I couldn't figure
out any use for it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123063 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
docs/BitCodeFormat.html
docs/LangRef.html
include/llvm/GlobalValue.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/VMCore/AsmWriter.cpp
lib/VMCore/Verifier.cpp
test/Assembler/unnamed-addr.ll [new file with mode: 0644]
unittests/VMCore/VerifierTest.cpp