[IR] Allow available_externally GlobalAlias
authorFangrui Song <i@maskray.me>
Mon, 7 Nov 2022 17:03:23 +0000 (09:03 -0800)
committerFangrui Song <i@maskray.me>
Mon, 7 Nov 2022 17:03:23 +0000 (09:03 -0800)
commit90ad3e3c02e92cabfc7cf1f0b552ddca73d54cc8
treea14b1ec629c1fd9e473376ad4f12b4a0183f6b0a
parentec224e3b680464101669f36baf547bf3d342bc07
[IR] Allow available_externally GlobalAlias

GlobalVariable and Function can be available_externally. GlobalAlias is used
similarly. Allowing available_externally is a natural extension and helps
ThinLTO discard GlobalAlias in a non-prevailing COMDAT (see D135427).

For now, available_externally GlobalAlias must point to an
available_externally GlobalValue (not ConstantExpr).

Differential Revision: https://reviews.llvm.org/D137441
llvm/docs/LangRef.rst
llvm/include/llvm/IR/GlobalAlias.h
llvm/lib/IR/Verifier.cpp
llvm/test/Verifier/alias.ll