Allow aliases to be unnamed_addr.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Jun 2014 01:20:28 +0000 (01:20 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Jun 2014 01:20:28 +0000 (01:20 +0000)
commit42a4c9f9e094419c27e53c4fbc4f2fd23887c7c5
tree63f9a89579652de86471aef88e3f56f911476343
parentf251e0051c269ac5f60839f5cbce7675ea158ca0
Allow aliases to be unnamed_addr.

Alias with unnamed_addr were in a strange state. It is stored in GlobalValue,
the language reference talks about "unnamed_addr aliases" but the verifier
was rejecting them.

It seems natural to allow unnamed_addr in aliases:

* It is a property of how it is accessed, not of the data itself.
* It is perfectly possible to write code that depends on the address
of an alias.

This patch then makes unname_addr legal for aliases. One side effect is that
the syntax changes for a corner case: In globals, unnamed_addr is now printed
before the address space.

llvm-svn: 210302
20 files changed:
llvm/docs/LangRef.rst
llvm/lib/AsmParser/LLParser.cpp
llvm/lib/AsmParser/LLParser.h
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/Verifier.cpp
llvm/lib/Linker/LinkModules.cpp
llvm/test/CodeGen/NVPTX/nvvm-reflect.ll
llvm/test/CodeGen/R600/gv-const-addrspace.ll
llvm/test/CodeGen/R600/lds-output-queue.ll
llvm/test/CodeGen/R600/lds-size.ll
llvm/test/CodeGen/R600/local-memory-two-objects.ll
llvm/test/CodeGen/R600/local-memory.ll
llvm/test/Feature/aliases.ll
llvm/test/Instrumentation/BoundsChecking/phi.ll
llvm/test/Linker/unnamed-addr1-a.ll
llvm/test/Linker/unnamed-addr1-b.ll
llvm/test/Transforms/InstCombine/2012-07-30-addrsp-bitcast.ll
llvm/unittests/IR/VerifierTest.cpp