diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-03-17 22:17:24 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-03-17 22:17:24 +0000 |
commit | 51c962f72e9569d54dc9c853abf99e2c34fc41cf (patch) | |
tree | d0dd2501c4b1c20925959248743eb309e431d5ae /llvm/lib/IR | |
parent | 46ddab38102b79a8e477a29e68e9441313bc1f86 (diff) | |
download | bcm5719-llvm-51c962f72e9569d54dc9c853abf99e2c34fc41cf.tar.gz bcm5719-llvm-51c962f72e9569d54dc9c853abf99e2c34fc41cf.zip |
Add !associated metadata.
This is an ELF-specific thing that adds SHF_LINK_ORDER to the global's section
pointing to the metadata argument's section. The effect of that is a reverse dependency
between sections for the linker GC.
!associated does not change the behavior of global-dce. The global
may also need to be added to llvm.compiler.used.
Since SHF_LINK_ORDER is per-section, !associated effectively enables
fdata-sections for the affected globals, the same as comdats do.
Differential Revision: https://reviews.llvm.org/D29104
llvm-svn: 298157
Diffstat (limited to 'llvm/lib/IR')
-rw-r--r-- | llvm/lib/IR/LLVMContext.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/IR/LLVMContext.cpp b/llvm/lib/IR/LLVMContext.cpp index dd66f144f04..6c6383c2225 100644 --- a/llvm/lib/IR/LLVMContext.cpp +++ b/llvm/lib/IR/LLVMContext.cpp @@ -58,6 +58,7 @@ LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl(*this)) { {MD_type, "type"}, {MD_section_prefix, "section_prefix"}, {MD_absolute_symbol, "absolute_symbol"}, + {MD_associated, "associated"}, }; for (auto &MDKind : MDKinds) { |