diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
commit | 5a5ac124e1efaf208671f01c46edb15f29ed2a0b (patch) | |
tree | a6140557876943cdd800ee997c9317283394b22c /include/llvm/MC/MCObjectFileInfo.h | |
parent | f03b5bed27d0d2eafd68562ce14f8b5e3f1f0801 (diff) |
Notes
Diffstat (limited to 'include/llvm/MC/MCObjectFileInfo.h')
-rw-r--r-- | include/llvm/MC/MCObjectFileInfo.h | 290 |
1 files changed, 129 insertions, 161 deletions
diff --git a/include/llvm/MC/MCObjectFileInfo.h b/include/llvm/MC/MCObjectFileInfo.h index 321043c522ee4..f28b9c668cdc8 100644 --- a/include/llvm/MC/MCObjectFileInfo.h +++ b/include/llvm/MC/MCObjectFileInfo.h @@ -53,144 +53,139 @@ protected: /// should emit only an EH frame. unsigned CompactUnwindDwarfEHFrameOnly; - /// TextSection - Section directive for standard text. + /// Section directive for standard text. /// - const MCSection *TextSection; + MCSection *TextSection; - /// DataSection - Section directive for standard data. + /// Section directive for standard data. /// - const MCSection *DataSection; + MCSection *DataSection; - /// BSSSection - Section that is default initialized to zero. - const MCSection *BSSSection; + /// Section that is default initialized to zero. + MCSection *BSSSection; - /// ReadOnlySection - Section that is readonly and can contain arbitrary - /// initialized data. Targets are not required to have a readonly section. - /// If they don't, various bits of code will fall back to using the data - /// section for constants. - const MCSection *ReadOnlySection; + /// Section that is readonly and can contain arbitrary initialized data. + /// Targets are not required to have a readonly section. If they don't, + /// various bits of code will fall back to using the data section for + /// constants. + MCSection *ReadOnlySection; - /// StaticCtorSection - This section contains the static constructor pointer - /// list. - const MCSection *StaticCtorSection; + /// This section contains the static constructor pointer list. + MCSection *StaticCtorSection; - /// StaticDtorSection - This section contains the static destructor pointer - /// list. - const MCSection *StaticDtorSection; + /// This section contains the static destructor pointer list. + MCSection *StaticDtorSection; - /// LSDASection - If exception handling is supported by the target, this is - /// the section the Language Specific Data Area information is emitted to. - const MCSection *LSDASection; + /// If exception handling is supported by the target, this is the section the + /// Language Specific Data Area information is emitted to. + MCSection *LSDASection; - /// CompactUnwindSection - If exception handling is supported by the target - /// and the target can support a compact representation of the CIE and FDE, - /// this is the section to emit them into. - const MCSection *CompactUnwindSection; + /// If exception handling is supported by the target and the target can + /// support a compact representation of the CIE and FDE, this is the section + /// to emit them into. + MCSection *CompactUnwindSection; // Dwarf sections for debug info. If a target supports debug info, these must // be set. - const MCSection *DwarfAbbrevSection; - const MCSection *DwarfInfoSection; - const MCSection *DwarfLineSection; - const MCSection *DwarfFrameSection; - const MCSection *DwarfPubTypesSection; + MCSection *DwarfAbbrevSection; + MCSection *DwarfInfoSection; + MCSection *DwarfLineSection; + MCSection *DwarfFrameSection; + MCSection *DwarfPubTypesSection; const MCSection *DwarfDebugInlineSection; - const MCSection *DwarfStrSection; - const MCSection *DwarfLocSection; - const MCSection *DwarfARangesSection; - const MCSection *DwarfRangesSection; - const MCSection *DwarfMacroInfoSection; + MCSection *DwarfStrSection; + MCSection *DwarfLocSection; + MCSection *DwarfARangesSection; + MCSection *DwarfRangesSection; // The pubnames section is no longer generated by default. The generation // can be enabled by a compiler flag. - const MCSection *DwarfPubNamesSection; + MCSection *DwarfPubNamesSection; // DWARF5 Experimental Debug Info Sections /// DwarfAccelNamesSection, DwarfAccelObjCSection, /// DwarfAccelNamespaceSection, DwarfAccelTypesSection - /// If we use the DWARF accelerated hash tables then we want to emit these /// sections. - const MCSection *DwarfAccelNamesSection; - const MCSection *DwarfAccelObjCSection; - const MCSection *DwarfAccelNamespaceSection; - const MCSection *DwarfAccelTypesSection; + MCSection *DwarfAccelNamesSection; + MCSection *DwarfAccelObjCSection; + MCSection *DwarfAccelNamespaceSection; + MCSection *DwarfAccelTypesSection; /// These are used for the Fission separate debug information files. - const MCSection *DwarfInfoDWOSection; - const MCSection *DwarfTypesDWOSection; - const MCSection *DwarfAbbrevDWOSection; - const MCSection *DwarfStrDWOSection; - const MCSection *DwarfLineDWOSection; - const MCSection *DwarfLocDWOSection; - const MCSection *DwarfStrOffDWOSection; - const MCSection *DwarfAddrSection; + MCSection *DwarfInfoDWOSection; + MCSection *DwarfTypesDWOSection; + MCSection *DwarfAbbrevDWOSection; + MCSection *DwarfStrDWOSection; + MCSection *DwarfLineDWOSection; + MCSection *DwarfLocDWOSection; + MCSection *DwarfStrOffDWOSection; + MCSection *DwarfAddrSection; /// Sections for newer gnu pubnames and pubtypes. - const MCSection *DwarfGnuPubNamesSection; - const MCSection *DwarfGnuPubTypesSection; + MCSection *DwarfGnuPubNamesSection; + MCSection *DwarfGnuPubTypesSection; - const MCSection *COFFDebugSymbolsSection; + MCSection *COFFDebugSymbolsSection; // Extra TLS Variable Data section. If the target needs to put additional // information for a TLS variable, it'll go here. - const MCSection *TLSExtraDataSection; + MCSection *TLSExtraDataSection; - /// TLSDataSection - Section directive for Thread Local data. - /// ELF, MachO and COFF. - const MCSection *TLSDataSection; // Defaults to ".tdata". + /// Section directive for Thread Local data. ELF, MachO and COFF. + MCSection *TLSDataSection; // Defaults to ".tdata". - /// TLSBSSSection - Section directive for Thread Local uninitialized data. - /// Null if this target doesn't support a BSS section. - /// ELF and MachO only. - const MCSection *TLSBSSSection; // Defaults to ".tbss". + /// Section directive for Thread Local uninitialized data. Null if this target + /// doesn't support a BSS section. ELF and MachO only. + MCSection *TLSBSSSection; // Defaults to ".tbss". /// StackMap section. - const MCSection *StackMapSection; + MCSection *StackMapSection; - /// EHFrameSection - EH frame section. It is initialized on demand so it - /// can be overwritten (with uniquing). - const MCSection *EHFrameSection; + /// EH frame section. It is initialized on demand so it can be overwritten + /// (with uniquing). + MCSection *EHFrameSection; /// ELF specific sections. /// - const MCSection *DataRelSection; + MCSection *DataRelSection; const MCSection *DataRelLocalSection; - const MCSection *DataRelROSection; - const MCSection *DataRelROLocalSection; - const MCSection *MergeableConst4Section; - const MCSection *MergeableConst8Section; - const MCSection *MergeableConst16Section; + MCSection *DataRelROSection; + MCSection *DataRelROLocalSection; + MCSection *MergeableConst4Section; + MCSection *MergeableConst8Section; + MCSection *MergeableConst16Section; /// MachO specific sections. /// - /// TLSTLVSection - Section for thread local structure information. - /// Contains the source code name of the variable, visibility and a pointer - /// to the initial value (.tdata or .tbss). - const MCSection *TLSTLVSection; // Defaults to ".tlv". + /// Section for thread local structure information. Contains the source code + /// name of the variable, visibility and a pointer to the initial value + /// (.tdata or .tbss). + MCSection *TLSTLVSection; // Defaults to ".tlv". /// TLSThreadInitSection - Section for thread local data initialization /// functions. const MCSection *TLSThreadInitSection; // Defaults to ".thread_init_func". - const MCSection *CStringSection; - const MCSection *UStringSection; - const MCSection *TextCoalSection; - const MCSection *ConstTextCoalSection; - const MCSection *ConstDataSection; - const MCSection *DataCoalSection; - const MCSection *DataCommonSection; - const MCSection *DataBSSSection; - const MCSection *FourByteConstantSection; - const MCSection *EightByteConstantSection; - const MCSection *SixteenByteConstantSection; - const MCSection *LazySymbolPointerSection; - const MCSection *NonLazySymbolPointerSection; + MCSection *CStringSection; + MCSection *UStringSection; + MCSection *TextCoalSection; + MCSection *ConstTextCoalSection; + MCSection *ConstDataSection; + MCSection *DataCoalSection; + MCSection *DataCommonSection; + MCSection *DataBSSSection; + MCSection *FourByteConstantSection; + MCSection *EightByteConstantSection; + MCSection *SixteenByteConstantSection; + MCSection *LazySymbolPointerSection; + MCSection *NonLazySymbolPointerSection; /// COFF specific sections. /// - const MCSection *DrectveSection; - const MCSection *PDataSection; - const MCSection *XDataSection; + MCSection *DrectveSection; + MCSection *PDataSection; + MCSection *XDataSection; public: void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM, @@ -215,97 +210,70 @@ public: return CompactUnwindDwarfEHFrameOnly; } - const MCSection *getTextSection() const { return TextSection; } - const MCSection *getDataSection() const { return DataSection; } - const MCSection *getBSSSection() const { return BSSSection; } - const MCSection *getLSDASection() const { return LSDASection; } - const MCSection *getCompactUnwindSection() const{ - return CompactUnwindSection; - } - const MCSection *getDwarfAbbrevSection() const { return DwarfAbbrevSection; } - const MCSection *getDwarfInfoSection() const { return DwarfInfoSection; } - const MCSection *getDwarfLineSection() const { return DwarfLineSection; } - const MCSection *getDwarfFrameSection() const { return DwarfFrameSection; } - const MCSection *getDwarfPubNamesSection() const{return DwarfPubNamesSection;} - const MCSection *getDwarfPubTypesSection() const{return DwarfPubTypesSection;} - const MCSection *getDwarfGnuPubNamesSection() const { + MCSection *getTextSection() const { return TextSection; } + MCSection *getDataSection() const { return DataSection; } + MCSection *getBSSSection() const { return BSSSection; } + MCSection *getLSDASection() const { return LSDASection; } + MCSection *getCompactUnwindSection() const { return CompactUnwindSection; } + MCSection *getDwarfAbbrevSection() const { return DwarfAbbrevSection; } + MCSection *getDwarfInfoSection() const { return DwarfInfoSection; } + MCSection *getDwarfLineSection() const { return DwarfLineSection; } + MCSection *getDwarfFrameSection() const { return DwarfFrameSection; } + MCSection *getDwarfPubNamesSection() const { return DwarfPubNamesSection; } + MCSection *getDwarfPubTypesSection() const { return DwarfPubTypesSection; } + MCSection *getDwarfGnuPubNamesSection() const { return DwarfGnuPubNamesSection; } - const MCSection *getDwarfGnuPubTypesSection() const { + MCSection *getDwarfGnuPubTypesSection() const { return DwarfGnuPubTypesSection; } const MCSection *getDwarfDebugInlineSection() const { return DwarfDebugInlineSection; } - const MCSection *getDwarfStrSection() const { return DwarfStrSection; } - const MCSection *getDwarfLocSection() const { return DwarfLocSection; } - const MCSection *getDwarfARangesSection() const { return DwarfARangesSection;} - const MCSection *getDwarfRangesSection() const { return DwarfRangesSection; } - const MCSection *getDwarfMacroInfoSection() const { - return DwarfMacroInfoSection; - } + MCSection *getDwarfStrSection() const { return DwarfStrSection; } + MCSection *getDwarfLocSection() const { return DwarfLocSection; } + MCSection *getDwarfARangesSection() const { return DwarfARangesSection; } + MCSection *getDwarfRangesSection() const { return DwarfRangesSection; } // DWARF5 Experimental Debug Info Sections - const MCSection *getDwarfAccelNamesSection() const { + MCSection *getDwarfAccelNamesSection() const { return DwarfAccelNamesSection; } - const MCSection *getDwarfAccelObjCSection() const { - return DwarfAccelObjCSection; - } - const MCSection *getDwarfAccelNamespaceSection() const { + MCSection *getDwarfAccelObjCSection() const { return DwarfAccelObjCSection; } + MCSection *getDwarfAccelNamespaceSection() const { return DwarfAccelNamespaceSection; } - const MCSection *getDwarfAccelTypesSection() const { + MCSection *getDwarfAccelTypesSection() const { return DwarfAccelTypesSection; } - const MCSection *getDwarfInfoDWOSection() const { - return DwarfInfoDWOSection; - } - const MCSection *getDwarfTypesSection(uint64_t Hash) const; - const MCSection *getDwarfTypesDWOSection() const { - return DwarfTypesDWOSection; - } - const MCSection *getDwarfAbbrevDWOSection() const { - return DwarfAbbrevDWOSection; - } - const MCSection *getDwarfStrDWOSection() const { - return DwarfStrDWOSection; - } - const MCSection *getDwarfLineDWOSection() const { - return DwarfLineDWOSection; - } - const MCSection *getDwarfLocDWOSection() const { - return DwarfLocDWOSection; - } - const MCSection *getDwarfStrOffDWOSection() const { - return DwarfStrOffDWOSection; - } - const MCSection *getDwarfAddrSection() const { - return DwarfAddrSection; - } - - const MCSection *getCOFFDebugSymbolsSection() const { + MCSection *getDwarfInfoDWOSection() const { return DwarfInfoDWOSection; } + MCSection *getDwarfTypesSection(uint64_t Hash) const; + MCSection *getDwarfTypesDWOSection() const { return DwarfTypesDWOSection; } + MCSection *getDwarfAbbrevDWOSection() const { return DwarfAbbrevDWOSection; } + MCSection *getDwarfStrDWOSection() const { return DwarfStrDWOSection; } + MCSection *getDwarfLineDWOSection() const { return DwarfLineDWOSection; } + MCSection *getDwarfLocDWOSection() const { return DwarfLocDWOSection; } + MCSection *getDwarfStrOffDWOSection() const { return DwarfStrOffDWOSection; } + MCSection *getDwarfAddrSection() const { return DwarfAddrSection; } + + MCSection *getCOFFDebugSymbolsSection() const { return COFFDebugSymbolsSection; } - const MCSection *getTLSExtraDataSection() const { - return TLSExtraDataSection; - } + MCSection *getTLSExtraDataSection() const { return TLSExtraDataSection; } const MCSection *getTLSDataSection() const { return TLSDataSection; } - const MCSection *getTLSBSSSection() const { return TLSBSSSection; } + MCSection *getTLSBSSSection() const { return TLSBSSSection; } - const MCSection *getStackMapSection() const { return StackMapSection; } + MCSection *getStackMapSection() const { return StackMapSection; } /// ELF specific sections. /// - const MCSection *getDataRelSection() const { return DataRelSection; } + MCSection *getDataRelSection() const { return DataRelSection; } const MCSection *getDataRelLocalSection() const { return DataRelLocalSection; } - const MCSection *getDataRelROSection() const { return DataRelROSection; } - const MCSection *getDataRelROLocalSection() const { - return DataRelROLocalSection; - } + MCSection *getDataRelROSection() const { return DataRelROSection; } + MCSection *getDataRelROLocalSection() const { return DataRelROLocalSection; } const MCSection *getMergeableConst4Section() const { return MergeableConst4Section; } @@ -324,14 +292,14 @@ public: } const MCSection *getCStringSection() const { return CStringSection; } const MCSection *getUStringSection() const { return UStringSection; } - const MCSection *getTextCoalSection() const { return TextCoalSection; } + MCSection *getTextCoalSection() const { return TextCoalSection; } const MCSection *getConstTextCoalSection() const { return ConstTextCoalSection; } const MCSection *getConstDataSection() const { return ConstDataSection; } const MCSection *getDataCoalSection() const { return DataCoalSection; } const MCSection *getDataCommonSection() const { return DataCommonSection; } - const MCSection *getDataBSSSection() const { return DataBSSSection; } + MCSection *getDataBSSSection() const { return DataBSSSection; } const MCSection *getFourByteConstantSection() const { return FourByteConstantSection; } @@ -341,20 +309,20 @@ public: const MCSection *getSixteenByteConstantSection() const { return SixteenByteConstantSection; } - const MCSection *getLazySymbolPointerSection() const { + MCSection *getLazySymbolPointerSection() const { return LazySymbolPointerSection; } - const MCSection *getNonLazySymbolPointerSection() const { + MCSection *getNonLazySymbolPointerSection() const { return NonLazySymbolPointerSection; } /// COFF specific sections. /// - const MCSection *getDrectveSection() const { return DrectveSection; } - const MCSection *getPDataSection() const { return PDataSection; } - const MCSection *getXDataSection() const { return XDataSection; } + MCSection *getDrectveSection() const { return DrectveSection; } + MCSection *getPDataSection() const { return PDataSection; } + MCSection *getXDataSection() const { return XDataSection; } - const MCSection *getEHFrameSection() { + MCSection *getEHFrameSection() { if (!EHFrameSection) InitEHFrameSection(); return EHFrameSection; |