diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2018-07-17 22:40:08 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2018-07-17 22:40:08 +0000 |
commit | bd9d313d5cf263b7248665be52fb68a5e2c2bbf9 (patch) | |
tree | 85b945603b475bac9c11bd5d0aa0c8d7e5f1bf7b /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
parent | 7027ffa85f2fa23f0eac20d169f09224e4db8262 (diff) | |
download | bcm5719-llvm-bd9d313d5cf263b7248665be52fb68a5e2c2bbf9.tar.gz bcm5719-llvm-bd9d313d5cf263b7248665be52fb68a5e2c2bbf9.zip |
CodeGen: Add a target option for emitting .addrsig directives for all address-significant symbols.
Differential Revision: https://reviews.llvm.org/D48143
llvm-svn: 337331
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 1b1edfbd154..30c95a7138d 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1529,6 +1529,14 @@ bool AsmPrinter::doFinalization(Module &M) { } } + if (TM.Options.EmitAddrsig) { + // Emit address-significance attributes for all globals. + OutStreamer->EmitAddrsig(); + for (const GlobalValue &GV : M.global_values()) + if (!GV.getName().startswith("llvm.") && !GV.hasAtLeastLocalUnnamedAddr()) + OutStreamer->EmitAddrsigSym(getSymbol(&GV)); + } + // Allow the target to emit any magic that it wants at the end of the file, // after everything else has gone out. EmitEndOfAsmFile(M); |