diff options
author | Lang Hames <lhames@gmail.com> | 2013-11-08 22:14:49 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2013-11-08 22:14:49 +0000 |
commit | c87e4380542c0e15cdaa480716da1434284feb93 (patch) | |
tree | 1e85a39d061ce884439907d38e4b501b939fb20e | |
parent | ab09d1e0ead4ede09f22ef3645bbcf0785d667f8 (diff) | |
download | external_llvm-c87e4380542c0e15cdaa480716da1434284feb93.zip external_llvm-c87e4380542c0e15cdaa480716da1434284feb93.tar.gz external_llvm-c87e4380542c0e15cdaa480716da1434284feb93.tar.bz2 |
Add a method to get the object-file appropriate stack map section.
Thanks to Eric Christopher for the tips on the appropriate way to do this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194282 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCObjectFileInfo.h | 4 | ||||
-rw-r--r-- | lib/CodeGen/StackMaps.cpp | 3 | ||||
-rw-r--r-- | lib/MC/MCObjectFileInfo.cpp | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/include/llvm/MC/MCObjectFileInfo.h b/include/llvm/MC/MCObjectFileInfo.h index 5e5debe..c48dcb0 100644 --- a/include/llvm/MC/MCObjectFileInfo.h +++ b/include/llvm/MC/MCObjectFileInfo.h @@ -142,6 +142,8 @@ protected: /// ELF and MachO only. const MCSection *TLSBSSSection; // Defaults to ".tbss". + /// StackMap section. + const MCSection *StackMapSection; /// EHFrameSection - EH frame section. It is initialized on demand so it /// can be overwritten (with uniquing). @@ -285,6 +287,8 @@ public: const MCSection *getTLSDataSection() const { return TLSDataSection; } const MCSection *getTLSBSSSection() const { return TLSBSSSection; } + const MCSection *getStackMapSection() const { return StackMapSection; } + /// ELF specific sections. /// const MCSection *getDataRelSection() const { return DataRelSection; } diff --git a/lib/CodeGen/StackMaps.cpp b/lib/CodeGen/StackMaps.cpp index b9b652d..b6a900a 100644 --- a/lib/CodeGen/StackMaps.cpp +++ b/lib/CodeGen/StackMaps.cpp @@ -97,8 +97,7 @@ void StackMaps::serializeToStackMapSection() { // Create the section. const MCSection *StackMapSection = - OutContext.getMachOSection("__LLVM_STACKMAPS", "__llvm_stackmaps", 0, - SectionKind::getMetadata()); + OutContext.getObjectFileInfo().getStackMapSection(); AP.OutStreamer.SwitchSection(StackMapSection); // Emit a dummy symbol to force section inclusion. diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp index 958648c..8ef4a0a 100644 --- a/lib/MC/MCObjectFileInfo.cpp +++ b/lib/MC/MCObjectFileInfo.cpp @@ -234,6 +234,9 @@ void MCObjectFileInfo::InitMachOMCObjectFileInfo(Triple T) { Ctx->getMachOSection("__DWARF", "__debug_inlined", MCSectionMachO::S_ATTR_DEBUG, SectionKind::getMetadata()); + StackMapSection = + Ctx->getMachOSection("__LLVM_STACKMAPS", "__llvm_stackmaps", 0, + SectionKind::getMetadata()); TLSExtraDataSection = TLSTLVSection; } |