|
@@ -1068,16 +1068,17 @@ private:
|
|
uint64_t DWOId;
|
|
uint64_t DWOId;
|
|
bool SplitDebugInlining;
|
|
bool SplitDebugInlining;
|
|
bool DebugInfoForProfiling;
|
|
bool DebugInfoForProfiling;
|
|
|
|
+ bool GnuPubnames;
|
|
|
|
|
|
DICompileUnit(LLVMContext &C, StorageType Storage, unsigned SourceLanguage,
|
|
DICompileUnit(LLVMContext &C, StorageType Storage, unsigned SourceLanguage,
|
|
bool IsOptimized, unsigned RuntimeVersion,
|
|
bool IsOptimized, unsigned RuntimeVersion,
|
|
unsigned EmissionKind, uint64_t DWOId, bool SplitDebugInlining,
|
|
unsigned EmissionKind, uint64_t DWOId, bool SplitDebugInlining,
|
|
- bool DebugInfoForProfiling, ArrayRef<Metadata *> Ops)
|
|
|
|
|
|
+ bool DebugInfoForProfiling, bool GnuPubnames, ArrayRef<Metadata *> Ops)
|
|
: DIScope(C, DICompileUnitKind, Storage, dwarf::DW_TAG_compile_unit, Ops),
|
|
: DIScope(C, DICompileUnitKind, Storage, dwarf::DW_TAG_compile_unit, Ops),
|
|
SourceLanguage(SourceLanguage), IsOptimized(IsOptimized),
|
|
SourceLanguage(SourceLanguage), IsOptimized(IsOptimized),
|
|
RuntimeVersion(RuntimeVersion), EmissionKind(EmissionKind),
|
|
RuntimeVersion(RuntimeVersion), EmissionKind(EmissionKind),
|
|
DWOId(DWOId), SplitDebugInlining(SplitDebugInlining),
|
|
DWOId(DWOId), SplitDebugInlining(SplitDebugInlining),
|
|
- DebugInfoForProfiling(DebugInfoForProfiling) {
|
|
|
|
|
|
+ DebugInfoForProfiling(DebugInfoForProfiling), GnuPubnames(GnuPubnames) {
|
|
assert(Storage != Uniqued);
|
|
assert(Storage != Uniqued);
|
|
}
|
|
}
|
|
~DICompileUnit() = default;
|
|
~DICompileUnit() = default;
|
|
@@ -1091,15 +1092,14 @@ private:
|
|
DIGlobalVariableExpressionArray GlobalVariables,
|
|
DIGlobalVariableExpressionArray GlobalVariables,
|
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
|
uint64_t DWOId, bool SplitDebugInlining, bool DebugInfoForProfiling,
|
|
uint64_t DWOId, bool SplitDebugInlining, bool DebugInfoForProfiling,
|
|
- StorageType Storage, bool ShouldCreate = true) {
|
|
|
|
- return getImpl(Context, SourceLanguage, File,
|
|
|
|
- getCanonicalMDString(Context, Producer), IsOptimized,
|
|
|
|
- getCanonicalMDString(Context, Flags), RuntimeVersion,
|
|
|
|
- getCanonicalMDString(Context, SplitDebugFilename),
|
|
|
|
- EmissionKind, EnumTypes.get(), RetainedTypes.get(),
|
|
|
|
- GlobalVariables.get(), ImportedEntities.get(), Macros.get(),
|
|
|
|
- DWOId, SplitDebugInlining, DebugInfoForProfiling, Storage,
|
|
|
|
- ShouldCreate);
|
|
|
|
|
|
+ bool GnuPubnames, StorageType Storage, bool ShouldCreate = true) {
|
|
|
|
+ return getImpl(
|
|
|
|
+ Context, SourceLanguage, File, getCanonicalMDString(Context, Producer),
|
|
|
|
+ IsOptimized, getCanonicalMDString(Context, Flags), RuntimeVersion,
|
|
|
|
+ getCanonicalMDString(Context, SplitDebugFilename), EmissionKind,
|
|
|
|
+ EnumTypes.get(), RetainedTypes.get(), GlobalVariables.get(),
|
|
|
|
+ ImportedEntities.get(), Macros.get(), DWOId, SplitDebugInlining,
|
|
|
|
+ DebugInfoForProfiling, GnuPubnames, Storage, ShouldCreate);
|
|
}
|
|
}
|
|
static DICompileUnit *
|
|
static DICompileUnit *
|
|
getImpl(LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
|
|
getImpl(LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
|
|
@@ -1108,7 +1108,7 @@ private:
|
|
unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
|
|
unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
|
|
Metadata *GlobalVariables, Metadata *ImportedEntities,
|
|
Metadata *GlobalVariables, Metadata *ImportedEntities,
|
|
Metadata *Macros, uint64_t DWOId, bool SplitDebugInlining,
|
|
Metadata *Macros, uint64_t DWOId, bool SplitDebugInlining,
|
|
- bool DebugInfoForProfiling, StorageType Storage,
|
|
|
|
|
|
+ bool DebugInfoForProfiling, bool GnuPubnames, StorageType Storage,
|
|
bool ShouldCreate = true);
|
|
bool ShouldCreate = true);
|
|
|
|
|
|
TempDICompileUnit cloneImpl() const {
|
|
TempDICompileUnit cloneImpl() const {
|
|
@@ -1118,7 +1118,7 @@ private:
|
|
getEmissionKind(), getEnumTypes(), getRetainedTypes(),
|
|
getEmissionKind(), getEnumTypes(), getRetainedTypes(),
|
|
getGlobalVariables(), getImportedEntities(),
|
|
getGlobalVariables(), getImportedEntities(),
|
|
getMacros(), DWOId, getSplitDebugInlining(),
|
|
getMacros(), DWOId, getSplitDebugInlining(),
|
|
- getDebugInfoForProfiling());
|
|
|
|
|
|
+ getDebugInfoForProfiling(), getGnuPubnames());
|
|
}
|
|
}
|
|
|
|
|
|
public:
|
|
public:
|
|
@@ -1133,11 +1133,12 @@ public:
|
|
DICompositeTypeArray EnumTypes, DIScopeArray RetainedTypes,
|
|
DICompositeTypeArray EnumTypes, DIScopeArray RetainedTypes,
|
|
DIGlobalVariableExpressionArray GlobalVariables,
|
|
DIGlobalVariableExpressionArray GlobalVariables,
|
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
|
- uint64_t DWOId, bool SplitDebugInlining, bool DebugInfoForProfiling),
|
|
|
|
|
|
+ uint64_t DWOId, bool SplitDebugInlining, bool DebugInfoForProfiling,
|
|
|
|
+ bool GnuPubnames),
|
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
|
GlobalVariables, ImportedEntities, Macros, DWOId, SplitDebugInlining,
|
|
GlobalVariables, ImportedEntities, Macros, DWOId, SplitDebugInlining,
|
|
- DebugInfoForProfiling))
|
|
|
|
|
|
+ DebugInfoForProfiling, GnuPubnames))
|
|
DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(
|
|
DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(
|
|
DICompileUnit,
|
|
DICompileUnit,
|
|
(unsigned SourceLanguage, Metadata *File, MDString *Producer,
|
|
(unsigned SourceLanguage, Metadata *File, MDString *Producer,
|
|
@@ -1145,11 +1146,11 @@ public:
|
|
MDString *SplitDebugFilename, unsigned EmissionKind, Metadata *EnumTypes,
|
|
MDString *SplitDebugFilename, unsigned EmissionKind, Metadata *EnumTypes,
|
|
Metadata *RetainedTypes, Metadata *GlobalVariables,
|
|
Metadata *RetainedTypes, Metadata *GlobalVariables,
|
|
Metadata *ImportedEntities, Metadata *Macros, uint64_t DWOId,
|
|
Metadata *ImportedEntities, Metadata *Macros, uint64_t DWOId,
|
|
- bool SplitDebugInlining, bool DebugInfoForProfiling),
|
|
|
|
|
|
+ bool SplitDebugInlining, bool DebugInfoForProfiling, bool GnuPubnames),
|
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
|
GlobalVariables, ImportedEntities, Macros, DWOId, SplitDebugInlining,
|
|
GlobalVariables, ImportedEntities, Macros, DWOId, SplitDebugInlining,
|
|
- DebugInfoForProfiling))
|
|
|
|
|
|
+ DebugInfoForProfiling, GnuPubnames))
|
|
|
|
|
|
TempDICompileUnit clone() const { return cloneImpl(); }
|
|
TempDICompileUnit clone() const { return cloneImpl(); }
|
|
|
|
|
|
@@ -1160,6 +1161,7 @@ public:
|
|
return (DebugEmissionKind)EmissionKind;
|
|
return (DebugEmissionKind)EmissionKind;
|
|
}
|
|
}
|
|
bool getDebugInfoForProfiling() const { return DebugInfoForProfiling; }
|
|
bool getDebugInfoForProfiling() const { return DebugInfoForProfiling; }
|
|
|
|
+ bool getGnuPubnames() const { return GnuPubnames; }
|
|
StringRef getProducer() const { return getStringOperand(1); }
|
|
StringRef getProducer() const { return getStringOperand(1); }
|
|
StringRef getFlags() const { return getStringOperand(2); }
|
|
StringRef getFlags() const { return getStringOperand(2); }
|
|
StringRef getSplitDebugFilename() const { return getStringOperand(3); }
|
|
StringRef getSplitDebugFilename() const { return getStringOperand(3); }
|