diff options
author | mingmingl <mingmingl@google.com> | 2025-08-30 20:34:28 -0700 |
---|---|---|
committer | mingmingl <mingmingl@google.com> | 2025-09-13 22:26:24 -0700 |
commit | d4e4d958ce165b82f4da2b509bec5a7e4aaec756 (patch) | |
tree | d9caa5e5f0864a28c0c8e74adaea215b66cbe0cb /llvm/lib/IR | |
parent | 4a7ba1de7100e15d7fb444c0b9868977b16b5494 (diff) | |
download | llvm-users/mingmingl-llvm/annotator.zip llvm-users/mingmingl-llvm/annotator.tar.gz llvm-users/mingmingl-llvm/annotator.tar.bz2 |
reconcile hotnessusers/mingmingl-llvm/annotator
Diffstat (limited to 'llvm/lib/IR')
-rw-r--r-- | llvm/lib/IR/Globals.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/IR/Globals.cpp b/llvm/lib/IR/Globals.cpp index 11d33e2..0731fcb 100644 --- a/llvm/lib/IR/Globals.cpp +++ b/llvm/lib/IR/Globals.cpp @@ -289,11 +289,28 @@ void GlobalObject::setSection(StringRef S) { } void GlobalObject::setSectionPrefix(StringRef Prefix) { + if (Prefix.empty()) { + setMetadata(LLVMContext::MD_section_prefix, nullptr); + return; + } MDBuilder MDB(getContext()); setMetadata(LLVMContext::MD_section_prefix, MDB.createGlobalObjectSectionPrefix(Prefix)); } +bool GlobalObject::updateSectionPrefix(StringRef Prefix) { + auto MD = getMetadata(LLVMContext::MD_section_prefix); + StringRef ExistingPrefix; // Empty by default. + if (MD != nullptr) + ExistingPrefix = cast<MDString>(MD->getOperand(1))->getString(); + + if (ExistingPrefix != Prefix) { + setSectionPrefix(Prefix); + return true; + } + return false; +} + std::optional<StringRef> GlobalObject::getSectionPrefix() const { if (MDNode *MD = getMetadata(LLVMContext::MD_section_prefix)) { [[maybe_unused]] StringRef MDName = |