mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[PR27284] Reverse the ownership between DICompileUnit and DISubprogram.
Currently each Function points to a DISubprogram and DISubprogram has a scope field. For member functions the scope is a DICompositeType. DIScopes point to the DICompileUnit to facilitate type uniquing. Distinct DISubprograms (with isDefinition: true) are not part of the type hierarchy and cannot be uniqued. This change removes the subprograms list from DICompileUnit and instead adds a pointer to the owning compile unit to distinct DISubprograms. This would make it easy for ThinLTO to strip unneeded DISubprograms and their transitively referenced debug info. Motivation ---------- Materializing DISubprograms is currently the most expensive operation when doing a ThinLTO build of clang. We want the DISubprogram to be stored in a separate Bitcode block (or the same block as the function body) so we can avoid having to expensively deserialize all DISubprograms together with the global metadata. If a function has been inlined into another subprogram we need to store a reference the block containing the inlined subprogram. Attached to https://llvm.org/bugs/show_bug.cgi?id=27284 is a python script that updates LLVM IR testcases to the new format. http://reviews.llvm.org/D19034 <rdar://problem/25256815> llvm-svn: 266446
This commit is contained in:
parent
b397b15fe8
commit
fb3abba237
@ -403,9 +403,9 @@ namespace llvm {
|
|||||||
uint64_t AlignInBits = 0, unsigned Flags = DINode::FlagFwdDecl,
|
uint64_t AlignInBits = 0, unsigned Flags = DINode::FlagFwdDecl,
|
||||||
StringRef UniqueIdentifier = "");
|
StringRef UniqueIdentifier = "");
|
||||||
|
|
||||||
/// Retain DIType* in a module even if it is not referenced
|
/// Retain DIScope* in a module even if it is not referenced
|
||||||
/// through debug info anchors.
|
/// through debug info anchors.
|
||||||
void retainType(DIType *T);
|
void retainType(DIScope *T);
|
||||||
|
|
||||||
/// Create unspecified parameter type
|
/// Create unspecified parameter type
|
||||||
/// for a subroutine type.
|
/// for a subroutine type.
|
||||||
|
@ -959,25 +959,21 @@ private:
|
|||||||
StringRef Producer, bool IsOptimized, StringRef Flags,
|
StringRef Producer, bool IsOptimized, StringRef Flags,
|
||||||
unsigned RuntimeVersion, StringRef SplitDebugFilename,
|
unsigned RuntimeVersion, StringRef SplitDebugFilename,
|
||||||
unsigned EmissionKind, DICompositeTypeArray EnumTypes,
|
unsigned EmissionKind, DICompositeTypeArray EnumTypes,
|
||||||
DITypeArray RetainedTypes, DISubprogramArray Subprograms,
|
DIScopeArray RetainedTypes, DIGlobalVariableArray GlobalVariables,
|
||||||
DIGlobalVariableArray GlobalVariables,
|
|
||||||
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
||||||
uint64_t DWOId, StorageType Storage, bool ShouldCreate = true) {
|
uint64_t DWOId, StorageType Storage, bool ShouldCreate = true) {
|
||||||
return getImpl(Context, SourceLanguage, File,
|
return getImpl(
|
||||||
getCanonicalMDString(Context, Producer), IsOptimized,
|
Context, SourceLanguage, File, getCanonicalMDString(Context, Producer),
|
||||||
getCanonicalMDString(Context, Flags), RuntimeVersion,
|
IsOptimized, getCanonicalMDString(Context, Flags), RuntimeVersion,
|
||||||
getCanonicalMDString(Context, SplitDebugFilename),
|
getCanonicalMDString(Context, SplitDebugFilename), EmissionKind,
|
||||||
EmissionKind, EnumTypes.get(), RetainedTypes.get(),
|
EnumTypes.get(), RetainedTypes.get(), GlobalVariables.get(),
|
||||||
Subprograms.get(), GlobalVariables.get(),
|
ImportedEntities.get(), Macros.get(), DWOId, Storage, ShouldCreate);
|
||||||
ImportedEntities.get(), Macros.get(), DWOId, Storage,
|
|
||||||
ShouldCreate);
|
|
||||||
}
|
}
|
||||||
static DICompileUnit *
|
static DICompileUnit *
|
||||||
getImpl(LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
|
getImpl(LLVMContext &Context, unsigned SourceLanguage, Metadata *File,
|
||||||
MDString *Producer, bool IsOptimized, MDString *Flags,
|
MDString *Producer, bool IsOptimized, MDString *Flags,
|
||||||
unsigned RuntimeVersion, MDString *SplitDebugFilename,
|
unsigned RuntimeVersion, MDString *SplitDebugFilename,
|
||||||
unsigned EmissionKind, Metadata *EnumTypes,
|
unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
|
||||||
Metadata *RetainedTypes, Metadata *Subprograms,
|
|
||||||
Metadata *GlobalVariables, Metadata *ImportedEntities,
|
Metadata *GlobalVariables, Metadata *ImportedEntities,
|
||||||
Metadata *Macros, uint64_t DWOId, StorageType Storage,
|
Metadata *Macros, uint64_t DWOId, StorageType Storage,
|
||||||
bool ShouldCreate = true);
|
bool ShouldCreate = true);
|
||||||
@ -986,7 +982,7 @@ private:
|
|||||||
return getTemporary(
|
return getTemporary(
|
||||||
getContext(), getSourceLanguage(), getFile(), getProducer(),
|
getContext(), getSourceLanguage(), getFile(), getProducer(),
|
||||||
isOptimized(), getFlags(), getRuntimeVersion(), getSplitDebugFilename(),
|
isOptimized(), getFlags(), getRuntimeVersion(), getSplitDebugFilename(),
|
||||||
getEmissionKind(), getEnumTypes(), getRetainedTypes(), getSubprograms(),
|
getEmissionKind(), getEnumTypes(), getRetainedTypes(),
|
||||||
getGlobalVariables(), getImportedEntities(), getMacros(), DWOId);
|
getGlobalVariables(), getImportedEntities(), getMacros(), DWOId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -999,23 +995,22 @@ public:
|
|||||||
(unsigned SourceLanguage, DIFile *File, StringRef Producer,
|
(unsigned SourceLanguage, DIFile *File, StringRef Producer,
|
||||||
bool IsOptimized, StringRef Flags, unsigned RuntimeVersion,
|
bool IsOptimized, StringRef Flags, unsigned RuntimeVersion,
|
||||||
StringRef SplitDebugFilename, DebugEmissionKind EmissionKind,
|
StringRef SplitDebugFilename, DebugEmissionKind EmissionKind,
|
||||||
DICompositeTypeArray EnumTypes, DITypeArray RetainedTypes,
|
DICompositeTypeArray EnumTypes, DIScopeArray RetainedTypes,
|
||||||
DISubprogramArray Subprograms, DIGlobalVariableArray GlobalVariables,
|
DIGlobalVariableArray GlobalVariables,
|
||||||
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros,
|
||||||
uint64_t DWOId),
|
uint64_t DWOId),
|
||||||
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
||||||
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes, Subprograms,
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
||||||
GlobalVariables, ImportedEntities, Macros, DWOId))
|
GlobalVariables, ImportedEntities, Macros, DWOId))
|
||||||
DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(
|
DEFINE_MDNODE_GET_DISTINCT_TEMPORARY(
|
||||||
DICompileUnit,
|
DICompileUnit,
|
||||||
(unsigned SourceLanguage, Metadata *File, MDString *Producer,
|
(unsigned SourceLanguage, Metadata *File, MDString *Producer,
|
||||||
bool IsOptimized, MDString *Flags, unsigned RuntimeVersion,
|
bool IsOptimized, MDString *Flags, unsigned RuntimeVersion,
|
||||||
MDString *SplitDebugFilename, unsigned EmissionKind, Metadata *EnumTypes,
|
MDString *SplitDebugFilename, unsigned EmissionKind, Metadata *EnumTypes,
|
||||||
Metadata *RetainedTypes, Metadata *Subprograms,
|
Metadata *RetainedTypes, Metadata *GlobalVariables,
|
||||||
Metadata *GlobalVariables, Metadata *ImportedEntities, Metadata *Macros,
|
Metadata *ImportedEntities, Metadata *Macros, uint64_t DWOId),
|
||||||
uint64_t DWOId),
|
|
||||||
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
(SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion,
|
||||||
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes, Subprograms,
|
SplitDebugFilename, EmissionKind, EnumTypes, RetainedTypes,
|
||||||
GlobalVariables, ImportedEntities, Macros, DWOId))
|
GlobalVariables, ImportedEntities, Macros, DWOId))
|
||||||
|
|
||||||
TempDICompileUnit clone() const { return cloneImpl(); }
|
TempDICompileUnit clone() const { return cloneImpl(); }
|
||||||
@ -1032,12 +1027,9 @@ public:
|
|||||||
DICompositeTypeArray getEnumTypes() const {
|
DICompositeTypeArray getEnumTypes() const {
|
||||||
return cast_or_null<MDTuple>(getRawEnumTypes());
|
return cast_or_null<MDTuple>(getRawEnumTypes());
|
||||||
}
|
}
|
||||||
DITypeArray getRetainedTypes() const {
|
DIScopeArray getRetainedTypes() const {
|
||||||
return cast_or_null<MDTuple>(getRawRetainedTypes());
|
return cast_or_null<MDTuple>(getRawRetainedTypes());
|
||||||
}
|
}
|
||||||
DISubprogramArray getSubprograms() const {
|
|
||||||
return cast_or_null<MDTuple>(getRawSubprograms());
|
|
||||||
}
|
|
||||||
DIGlobalVariableArray getGlobalVariables() const {
|
DIGlobalVariableArray getGlobalVariables() const {
|
||||||
return cast_or_null<MDTuple>(getRawGlobalVariables());
|
return cast_or_null<MDTuple>(getRawGlobalVariables());
|
||||||
}
|
}
|
||||||
@ -1057,10 +1049,9 @@ public:
|
|||||||
}
|
}
|
||||||
Metadata *getRawEnumTypes() const { return getOperand(4); }
|
Metadata *getRawEnumTypes() const { return getOperand(4); }
|
||||||
Metadata *getRawRetainedTypes() const { return getOperand(5); }
|
Metadata *getRawRetainedTypes() const { return getOperand(5); }
|
||||||
Metadata *getRawSubprograms() const { return getOperand(6); }
|
Metadata *getRawGlobalVariables() const { return getOperand(6); }
|
||||||
Metadata *getRawGlobalVariables() const { return getOperand(7); }
|
Metadata *getRawImportedEntities() const { return getOperand(7); }
|
||||||
Metadata *getRawImportedEntities() const { return getOperand(8); }
|
Metadata *getRawMacros() const { return getOperand(8); }
|
||||||
Metadata *getRawMacros() const { return getOperand(9); }
|
|
||||||
|
|
||||||
/// \brief Replace arrays.
|
/// \brief Replace arrays.
|
||||||
///
|
///
|
||||||
@ -1074,16 +1065,13 @@ public:
|
|||||||
void replaceRetainedTypes(DITypeArray N) {
|
void replaceRetainedTypes(DITypeArray N) {
|
||||||
replaceOperandWith(5, N.get());
|
replaceOperandWith(5, N.get());
|
||||||
}
|
}
|
||||||
void replaceSubprograms(DISubprogramArray N) {
|
void replaceGlobalVariables(DIGlobalVariableArray N) {
|
||||||
replaceOperandWith(6, N.get());
|
replaceOperandWith(6, N.get());
|
||||||
}
|
}
|
||||||
void replaceGlobalVariables(DIGlobalVariableArray N) {
|
void replaceImportedEntities(DIImportedEntityArray N) {
|
||||||
replaceOperandWith(7, N.get());
|
replaceOperandWith(7, N.get());
|
||||||
}
|
}
|
||||||
void replaceImportedEntities(DIImportedEntityArray N) {
|
void replaceMacros(DIMacroNodeArray N) { replaceOperandWith(8, N.get()); }
|
||||||
replaceOperandWith(8, N.get());
|
|
||||||
}
|
|
||||||
void replaceMacros(DIMacroNodeArray N) { replaceOperandWith(9, N.get()); }
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
static bool classof(const Metadata *MD) {
|
static bool classof(const Metadata *MD) {
|
||||||
@ -1266,13 +1254,13 @@ class DISubprogram : public DILocalScope {
|
|||||||
DISubroutineType *Type, bool IsLocalToUnit, bool IsDefinition,
|
DISubroutineType *Type, bool IsLocalToUnit, bool IsDefinition,
|
||||||
unsigned ScopeLine, DITypeRef ContainingType, unsigned Virtuality,
|
unsigned ScopeLine, DITypeRef ContainingType, unsigned Virtuality,
|
||||||
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
||||||
DITemplateParameterArray TemplateParams, DISubprogram *Declaration,
|
DICompileUnit *Unit, DITemplateParameterArray TemplateParams,
|
||||||
DILocalVariableArray Variables, StorageType Storage,
|
DISubprogram *Declaration, DILocalVariableArray Variables,
|
||||||
bool ShouldCreate = true) {
|
StorageType Storage, bool ShouldCreate = true) {
|
||||||
return getImpl(Context, Scope, getCanonicalMDString(Context, Name),
|
return getImpl(Context, Scope, getCanonicalMDString(Context, Name),
|
||||||
getCanonicalMDString(Context, LinkageName), File, Line, Type,
|
getCanonicalMDString(Context, LinkageName), File, Line, Type,
|
||||||
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
||||||
Virtuality, VirtualIndex, Flags, IsOptimized,
|
Virtuality, VirtualIndex, Flags, IsOptimized, Unit,
|
||||||
TemplateParams.get(), Declaration, Variables.get(), Storage,
|
TemplateParams.get(), Declaration, Variables.get(), Storage,
|
||||||
ShouldCreate);
|
ShouldCreate);
|
||||||
}
|
}
|
||||||
@ -1281,16 +1269,17 @@ class DISubprogram : public DILocalScope {
|
|||||||
MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
|
MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
|
||||||
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
||||||
Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
|
Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
|
||||||
unsigned Flags, bool IsOptimized, Metadata *TemplateParams,
|
unsigned Flags, bool IsOptimized, Metadata *Unit,
|
||||||
Metadata *Declaration, Metadata *Variables, StorageType Storage,
|
Metadata *TemplateParams, Metadata *Declaration, Metadata *Variables,
|
||||||
bool ShouldCreate = true);
|
StorageType Storage, bool ShouldCreate = true);
|
||||||
|
|
||||||
TempDISubprogram cloneImpl() const {
|
TempDISubprogram cloneImpl() const {
|
||||||
return getTemporary(
|
return getTemporary(getContext(), getScope(), getName(), getLinkageName(),
|
||||||
getContext(), getScope(), getName(), getLinkageName(), getFile(),
|
getFile(), getLine(), getType(), isLocalToUnit(),
|
||||||
getLine(), getType(), isLocalToUnit(), isDefinition(), getScopeLine(),
|
isDefinition(), getScopeLine(), getContainingType(),
|
||||||
getContainingType(), getVirtuality(), getVirtualIndex(), getFlags(),
|
getVirtuality(), getVirtualIndex(), getFlags(),
|
||||||
isOptimized(), getTemplateParams(), getDeclaration(), getVariables());
|
isOptimized(), getUnit(), getTemplateParams(),
|
||||||
|
getDeclaration(), getVariables());
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -1300,12 +1289,13 @@ public:
|
|||||||
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
||||||
DITypeRef ContainingType, unsigned Virtuality,
|
DITypeRef ContainingType, unsigned Virtuality,
|
||||||
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
||||||
|
DICompileUnit *Unit,
|
||||||
DITemplateParameterArray TemplateParams = nullptr,
|
DITemplateParameterArray TemplateParams = nullptr,
|
||||||
DISubprogram *Declaration = nullptr,
|
DISubprogram *Declaration = nullptr,
|
||||||
DILocalVariableArray Variables = nullptr),
|
DILocalVariableArray Variables = nullptr),
|
||||||
(Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit,
|
(Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit,
|
||||||
IsDefinition, ScopeLine, ContainingType, Virtuality,
|
IsDefinition, ScopeLine, ContainingType, Virtuality,
|
||||||
VirtualIndex, Flags, IsOptimized, TemplateParams,
|
VirtualIndex, Flags, IsOptimized, Unit, TemplateParams,
|
||||||
Declaration, Variables))
|
Declaration, Variables))
|
||||||
DEFINE_MDNODE_GET(
|
DEFINE_MDNODE_GET(
|
||||||
DISubprogram,
|
DISubprogram,
|
||||||
@ -1313,11 +1303,11 @@ public:
|
|||||||
unsigned Line, Metadata *Type, bool IsLocalToUnit, bool IsDefinition,
|
unsigned Line, Metadata *Type, bool IsLocalToUnit, bool IsDefinition,
|
||||||
unsigned ScopeLine, Metadata *ContainingType, unsigned Virtuality,
|
unsigned ScopeLine, Metadata *ContainingType, unsigned Virtuality,
|
||||||
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
||||||
Metadata *TemplateParams = nullptr, Metadata *Declaration = nullptr,
|
Metadata *Unit, Metadata *TemplateParams = nullptr,
|
||||||
Metadata *Variables = nullptr),
|
Metadata *Declaration = nullptr, Metadata *Variables = nullptr),
|
||||||
(Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition,
|
(Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition,
|
||||||
ScopeLine, ContainingType, Virtuality, VirtualIndex, Flags, IsOptimized,
|
ScopeLine, ContainingType, Virtuality, VirtualIndex, Flags, IsOptimized,
|
||||||
TemplateParams, Declaration, Variables))
|
Unit, TemplateParams, Declaration, Variables))
|
||||||
|
|
||||||
TempDISubprogram clone() const { return cloneImpl(); }
|
TempDISubprogram clone() const { return cloneImpl(); }
|
||||||
|
|
||||||
@ -1376,6 +1366,12 @@ public:
|
|||||||
return DITypeRef(getRawContainingType());
|
return DITypeRef(getRawContainingType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DICompileUnit *getUnit() const {
|
||||||
|
return cast_or_null<DICompileUnit>(getRawUnit());
|
||||||
|
}
|
||||||
|
void replaceUnit(DICompileUnit *CU) {
|
||||||
|
replaceOperandWith(7, CU);
|
||||||
|
}
|
||||||
DITemplateParameterArray getTemplateParams() const {
|
DITemplateParameterArray getTemplateParams() const {
|
||||||
return cast_or_null<MDTuple>(getRawTemplateParams());
|
return cast_or_null<MDTuple>(getRawTemplateParams());
|
||||||
}
|
}
|
||||||
@ -1389,9 +1385,10 @@ public:
|
|||||||
Metadata *getRawScope() const { return getOperand(1); }
|
Metadata *getRawScope() const { return getOperand(1); }
|
||||||
Metadata *getRawType() const { return getOperand(5); }
|
Metadata *getRawType() const { return getOperand(5); }
|
||||||
Metadata *getRawContainingType() const { return getOperand(6); }
|
Metadata *getRawContainingType() const { return getOperand(6); }
|
||||||
Metadata *getRawTemplateParams() const { return getOperand(7); }
|
Metadata *getRawUnit() const { return getOperand(7); }
|
||||||
Metadata *getRawDeclaration() const { return getOperand(8); }
|
Metadata *getRawTemplateParams() const { return getOperand(8); }
|
||||||
Metadata *getRawVariables() const { return getOperand(9); }
|
Metadata *getRawDeclaration() const { return getOperand(9); }
|
||||||
|
Metadata *getRawVariables() const { return getOperand(10); }
|
||||||
|
|
||||||
/// \brief Check if this subprogram describes the given function.
|
/// \brief Check if this subprogram describes the given function.
|
||||||
///
|
///
|
||||||
|
@ -3875,8 +3875,7 @@ bool LLParser::ParseDIFile(MDNode *&Result, bool IsDistinct) {
|
|||||||
/// ::= !DICompileUnit(language: DW_LANG_C99, file: !0, producer: "clang",
|
/// ::= !DICompileUnit(language: DW_LANG_C99, file: !0, producer: "clang",
|
||||||
/// isOptimized: true, flags: "-O2", runtimeVersion: 1,
|
/// isOptimized: true, flags: "-O2", runtimeVersion: 1,
|
||||||
/// splitDebugFilename: "abc.debug",
|
/// splitDebugFilename: "abc.debug",
|
||||||
/// emissionKind: FullDebug,
|
/// emissionKind: FullDebug, enums: !1, retainedTypes: !2,
|
||||||
/// enums: !1, retainedTypes: !2, subprograms: !3,
|
|
||||||
/// globals: !4, imports: !5, macros: !6, dwoId: 0x0abcd)
|
/// globals: !4, imports: !5, macros: !6, dwoId: 0x0abcd)
|
||||||
bool LLParser::ParseDICompileUnit(MDNode *&Result, bool IsDistinct) {
|
bool LLParser::ParseDICompileUnit(MDNode *&Result, bool IsDistinct) {
|
||||||
if (!IsDistinct)
|
if (!IsDistinct)
|
||||||
@ -3893,7 +3892,6 @@ bool LLParser::ParseDICompileUnit(MDNode *&Result, bool IsDistinct) {
|
|||||||
OPTIONAL(emissionKind, EmissionKindField, ); \
|
OPTIONAL(emissionKind, EmissionKindField, ); \
|
||||||
OPTIONAL(enums, MDField, ); \
|
OPTIONAL(enums, MDField, ); \
|
||||||
OPTIONAL(retainedTypes, MDField, ); \
|
OPTIONAL(retainedTypes, MDField, ); \
|
||||||
OPTIONAL(subprograms, MDField, ); \
|
|
||||||
OPTIONAL(globals, MDField, ); \
|
OPTIONAL(globals, MDField, ); \
|
||||||
OPTIONAL(imports, MDField, ); \
|
OPTIONAL(imports, MDField, ); \
|
||||||
OPTIONAL(macros, MDField, ); \
|
OPTIONAL(macros, MDField, ); \
|
||||||
@ -3904,8 +3902,7 @@ bool LLParser::ParseDICompileUnit(MDNode *&Result, bool IsDistinct) {
|
|||||||
Result = DICompileUnit::getDistinct(
|
Result = DICompileUnit::getDistinct(
|
||||||
Context, language.Val, file.Val, producer.Val, isOptimized.Val, flags.Val,
|
Context, language.Val, file.Val, producer.Val, isOptimized.Val, flags.Val,
|
||||||
runtimeVersion.Val, splitDebugFilename.Val, emissionKind.Val, enums.Val,
|
runtimeVersion.Val, splitDebugFilename.Val, emissionKind.Val, enums.Val,
|
||||||
retainedTypes.Val, subprograms.Val, globals.Val, imports.Val, macros.Val,
|
retainedTypes.Val, globals.Val, imports.Val, macros.Val, dwoId.Val);
|
||||||
dwoId.Val);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3934,6 +3931,7 @@ bool LLParser::ParseDISubprogram(MDNode *&Result, bool IsDistinct) {
|
|||||||
OPTIONAL(virtualIndex, MDUnsignedField, (0, UINT32_MAX)); \
|
OPTIONAL(virtualIndex, MDUnsignedField, (0, UINT32_MAX)); \
|
||||||
OPTIONAL(flags, DIFlagField, ); \
|
OPTIONAL(flags, DIFlagField, ); \
|
||||||
OPTIONAL(isOptimized, MDBoolField, ); \
|
OPTIONAL(isOptimized, MDBoolField, ); \
|
||||||
|
OPTIONAL(unit, MDField, ); \
|
||||||
OPTIONAL(templateParams, MDField, ); \
|
OPTIONAL(templateParams, MDField, ); \
|
||||||
OPTIONAL(declaration, MDField, ); \
|
OPTIONAL(declaration, MDField, ); \
|
||||||
OPTIONAL(variables, MDField, );
|
OPTIONAL(variables, MDField, );
|
||||||
@ -3946,11 +3944,11 @@ bool LLParser::ParseDISubprogram(MDNode *&Result, bool IsDistinct) {
|
|||||||
"missing 'distinct', required for !DISubprogram when 'isDefinition'");
|
"missing 'distinct', required for !DISubprogram when 'isDefinition'");
|
||||||
|
|
||||||
Result = GET_OR_DISTINCT(
|
Result = GET_OR_DISTINCT(
|
||||||
DISubprogram,
|
DISubprogram, (Context, scope.Val, name.Val, linkageName.Val, file.Val,
|
||||||
(Context, scope.Val, name.Val, linkageName.Val, file.Val, line.Val,
|
line.Val, type.Val, isLocal.Val, isDefinition.Val,
|
||||||
type.Val, isLocal.Val, isDefinition.Val, scopeLine.Val,
|
scopeLine.Val, containingType.Val, virtuality.Val,
|
||||||
containingType.Val, virtuality.Val, virtualIndex.Val, flags.Val,
|
virtualIndex.Val, flags.Val, isOptimized.Val, unit.Val,
|
||||||
isOptimized.Val, templateParams.Val, declaration.Val, variables.Val));
|
templateParams.Val, declaration.Val, variables.Val));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1948,6 +1948,7 @@ std::error_code BitcodeReader::parseMetadata(bool ModuleLevel) {
|
|||||||
if (Stream.EnterSubBlock(bitc::METADATA_BLOCK_ID))
|
if (Stream.EnterSubBlock(bitc::METADATA_BLOCK_ID))
|
||||||
return error("Invalid record");
|
return error("Invalid record");
|
||||||
|
|
||||||
|
std::vector<std::pair<DICompileUnit *, Metadata *>> CUSubprograms;
|
||||||
SmallVector<uint64_t, 64> Record;
|
SmallVector<uint64_t, 64> Record;
|
||||||
|
|
||||||
auto getMD = [&](unsigned ID) -> Metadata * {
|
auto getMD = [&](unsigned ID) -> Metadata * {
|
||||||
@ -1976,6 +1977,13 @@ std::error_code BitcodeReader::parseMetadata(bool ModuleLevel) {
|
|||||||
case BitstreamEntry::Error:
|
case BitstreamEntry::Error:
|
||||||
return error("Malformed block");
|
return error("Malformed block");
|
||||||
case BitstreamEntry::EndBlock:
|
case BitstreamEntry::EndBlock:
|
||||||
|
// Upgrade old-style CU <-> SP pointers to point from SP to CU.
|
||||||
|
for (auto CU_SP : CUSubprograms)
|
||||||
|
if (auto *SPs = dyn_cast_or_null<MDTuple>(CU_SP.second))
|
||||||
|
for (auto &Op : SPs->operands())
|
||||||
|
if (auto *SP = dyn_cast_or_null<MDNode>(Op))
|
||||||
|
SP->replaceOperandWith(7, CU_SP.first);
|
||||||
|
|
||||||
MetadataList.tryToResolveCycles();
|
MetadataList.tryToResolveCycles();
|
||||||
return std::error_code();
|
return std::error_code();
|
||||||
case BitstreamEntry::Record:
|
case BitstreamEntry::Record:
|
||||||
@ -2232,24 +2240,32 @@ std::error_code BitcodeReader::parseMetadata(bool ModuleLevel) {
|
|||||||
|
|
||||||
// Ignore Record[0], which indicates whether this compile unit is
|
// Ignore Record[0], which indicates whether this compile unit is
|
||||||
// distinct. It's always distinct.
|
// distinct. It's always distinct.
|
||||||
MetadataList.assignValue(
|
auto *CU = DICompileUnit::getDistinct(
|
||||||
DICompileUnit::getDistinct(
|
Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]),
|
||||||
Context, Record[1], getMDOrNull(Record[2]),
|
Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
|
||||||
getMDString(Record[3]), Record[4], getMDString(Record[5]),
|
Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]),
|
||||||
Record[6], getMDString(Record[7]), Record[8],
|
getMDOrNull(Record[12]), getMDOrNull(Record[13]),
|
||||||
getMDOrNull(Record[9]), getMDOrNull(Record[10]),
|
Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]),
|
||||||
getMDOrNull(Record[11]), getMDOrNull(Record[12]),
|
Record.size() <= 14 ? 0 : Record[14]);
|
||||||
getMDOrNull(Record[13]),
|
|
||||||
Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]),
|
MetadataList.assignValue(CU, NextMetadataNo++);
|
||||||
Record.size() <= 14 ? 0 : Record[14]),
|
|
||||||
NextMetadataNo++);
|
// Move the Upgrade the list of subprograms.
|
||||||
|
if (Metadata *SPs = getMDOrNull(Record[11]))
|
||||||
|
CUSubprograms.push_back({CU, SPs});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case bitc::METADATA_SUBPROGRAM: {
|
case bitc::METADATA_SUBPROGRAM: {
|
||||||
if (Record.size() != 18 && Record.size() != 19)
|
if (Record.size() != 18 && Record.size() != 19)
|
||||||
return error("Invalid record");
|
return error("Invalid record");
|
||||||
|
|
||||||
bool HasFn = Record.size() == 19;
|
// Version 1 has a Function as Record[15].
|
||||||
|
// Version 2 has removed Record[15].
|
||||||
|
// Version 3 has the Unit as Record[15].
|
||||||
|
Metadata *CUorFn = getMDOrNull(Record[15]);
|
||||||
|
unsigned Offset = Record.size() == 19 ? 1 : 0;
|
||||||
|
bool HasFn = Offset && dyn_cast_or_null<ConstantAsMetadata>(CUorFn);
|
||||||
|
bool HasCU = Offset && !HasFn;
|
||||||
DISubprogram *SP = GET_OR_DISTINCT(
|
DISubprogram *SP = GET_OR_DISTINCT(
|
||||||
DISubprogram,
|
DISubprogram,
|
||||||
Record[0] || Record[8], // All definitions should be distinct.
|
Record[0] || Record[8], // All definitions should be distinct.
|
||||||
@ -2257,13 +2273,14 @@ std::error_code BitcodeReader::parseMetadata(bool ModuleLevel) {
|
|||||||
getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
|
getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
|
||||||
getMDOrNull(Record[6]), Record[7], Record[8], Record[9],
|
getMDOrNull(Record[6]), Record[7], Record[8], Record[9],
|
||||||
getMDOrNull(Record[10]), Record[11], Record[12], Record[13],
|
getMDOrNull(Record[10]), Record[11], Record[12], Record[13],
|
||||||
Record[14], getMDOrNull(Record[15 + HasFn]),
|
Record[14], HasCU ? CUorFn : nullptr,
|
||||||
getMDOrNull(Record[16 + HasFn]), getMDOrNull(Record[17 + HasFn])));
|
getMDOrNull(Record[15 + Offset]), getMDOrNull(Record[16 + Offset]),
|
||||||
|
getMDOrNull(Record[17 + Offset])));
|
||||||
MetadataList.assignValue(SP, NextMetadataNo++);
|
MetadataList.assignValue(SP, NextMetadataNo++);
|
||||||
|
|
||||||
// Upgrade sp->function mapping to function->sp mapping.
|
// Upgrade sp->function mapping to function->sp mapping.
|
||||||
if (HasFn && Record[15]) {
|
if (HasFn) {
|
||||||
if (auto *CMD = dyn_cast<ConstantAsMetadata>(getMDOrNull(Record[15])))
|
if (auto *CMD = dyn_cast<ConstantAsMetadata>(CUorFn))
|
||||||
if (auto *F = dyn_cast<Function>(CMD->getValue())) {
|
if (auto *F = dyn_cast<Function>(CMD->getValue())) {
|
||||||
if (F->isMaterializable())
|
if (F->isMaterializable())
|
||||||
// Defer until materialized; unmaterialized functions may not have
|
// Defer until materialized; unmaterialized functions may not have
|
||||||
|
@ -1098,7 +1098,7 @@ static void writeDICompileUnit(const DICompileUnit *N,
|
|||||||
Record.push_back(N->getEmissionKind());
|
Record.push_back(N->getEmissionKind());
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getEnumTypes().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getEnumTypes().get()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getRetainedTypes().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getRetainedTypes().get()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getSubprograms().get()));
|
Record.push_back(/* subprograms */ 0);
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getGlobalVariables().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getGlobalVariables().get()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getImportedEntities().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getImportedEntities().get()));
|
||||||
Record.push_back(N->getDWOId());
|
Record.push_back(N->getDWOId());
|
||||||
@ -1127,6 +1127,7 @@ static void writeDISubprogram(const DISubprogram *N, const ValueEnumerator &VE,
|
|||||||
Record.push_back(N->getVirtualIndex());
|
Record.push_back(N->getVirtualIndex());
|
||||||
Record.push_back(N->getFlags());
|
Record.push_back(N->getFlags());
|
||||||
Record.push_back(N->isOptimized());
|
Record.push_back(N->isOptimized());
|
||||||
|
Record.push_back(VE.getMetadataOrNullID(N->getRawUnit()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getTemplateParams().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getTemplateParams().get()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getDeclaration()));
|
Record.push_back(VE.getMetadataOrNullID(N->getDeclaration()));
|
||||||
Record.push_back(VE.getMetadataOrNullID(N->getVariables().get()));
|
Record.push_back(VE.getMetadataOrNullID(N->getVariables().get()));
|
||||||
|
@ -365,8 +365,8 @@ void DwarfDebug::constructAbstractSubprogramScopeDIE(LexicalScope *Scope) {
|
|||||||
|
|
||||||
// Find the subprogram's DwarfCompileUnit in the SPMap in case the subprogram
|
// Find the subprogram's DwarfCompileUnit in the SPMap in case the subprogram
|
||||||
// was inlined from another compile unit.
|
// was inlined from another compile unit.
|
||||||
auto &CU = SPMap[SP];
|
auto &CU = *CUMap.lookup(cast<DISubprogram>(SP)->getUnit());
|
||||||
forBothCUs(*CU, [&](DwarfCompileUnit &CU) {
|
forBothCUs(CU, [&](DwarfCompileUnit &CU) {
|
||||||
CU.constructAbstractSubprogramScopeDIE(Scope);
|
CU.constructAbstractSubprogramScopeDIE(Scope);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -483,8 +483,6 @@ void DwarfDebug::beginModule() {
|
|||||||
CU.addImportedEntity(IE);
|
CU.addImportedEntity(IE);
|
||||||
for (auto *GV : CUNode->getGlobalVariables())
|
for (auto *GV : CUNode->getGlobalVariables())
|
||||||
CU.getOrCreateGlobalVariableDIE(GV);
|
CU.getOrCreateGlobalVariableDIE(GV);
|
||||||
for (auto *SP : CUNode->getSubprograms())
|
|
||||||
SPMap.insert(std::make_pair(SP, &CU));
|
|
||||||
for (auto *Ty : CUNode->getEnumTypes()) {
|
for (auto *Ty : CUNode->getEnumTypes()) {
|
||||||
// The enum types array by design contains pointers to
|
// The enum types array by design contains pointers to
|
||||||
// MDNodes rather than DIRefs. Unique them here.
|
// MDNodes rather than DIRefs. Unique them here.
|
||||||
@ -493,10 +491,10 @@ void DwarfDebug::beginModule() {
|
|||||||
for (auto *Ty : CUNode->getRetainedTypes()) {
|
for (auto *Ty : CUNode->getRetainedTypes()) {
|
||||||
// The retained types array by design contains pointers to
|
// The retained types array by design contains pointers to
|
||||||
// MDNodes rather than DIRefs. Unique them here.
|
// MDNodes rather than DIRefs. Unique them here.
|
||||||
DIType *RT = cast<DIType>(resolve(Ty->getRef()));
|
if (DIType *RT = dyn_cast<DIType>(resolve(Ty->getRef())))
|
||||||
if (!RT->isExternalTypeRef())
|
if (!RT->isExternalTypeRef())
|
||||||
// There is no point in force-emitting a forward declaration.
|
// There is no point in force-emitting a forward declaration.
|
||||||
CU.getOrCreateTypeDIE(RT);
|
CU.getOrCreateTypeDIE(RT);
|
||||||
}
|
}
|
||||||
// Emit imported_modules last so that the relevant context is already
|
// Emit imported_modules last so that the relevant context is already
|
||||||
// available.
|
// available.
|
||||||
@ -525,10 +523,19 @@ void DwarfDebug::finishVariableDefinitions() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DwarfDebug::finishSubprogramDefinitions() {
|
void DwarfDebug::finishSubprogramDefinitions() {
|
||||||
for (const auto &P : SPMap)
|
for (auto &F : MMI->getModule()->functions())
|
||||||
if (ProcessedSPNodes.count(P.first))
|
if (auto *SP = F.getSubprogram())
|
||||||
forBothCUs(*P.second, [&](DwarfCompileUnit &CU) {
|
if (ProcessedSPNodes.count(SP) &&
|
||||||
CU.finishSubprogramDefinition(cast<DISubprogram>(P.first));
|
SP->getUnit()->getEmissionKind() != DICompileUnit::NoDebug)
|
||||||
|
forBothCUs(*CUMap.lookup(SP->getUnit()), [&](DwarfCompileUnit &CU) {
|
||||||
|
CU.finishSubprogramDefinition(SP);
|
||||||
|
});
|
||||||
|
for (auto *AbsScope : LScopes.getAbstractScopesList())
|
||||||
|
if (auto *SP = dyn_cast<DISubprogram>(AbsScope->getScopeNode()))
|
||||||
|
if (ProcessedSPNodes.count(SP) &&
|
||||||
|
SP->getUnit()->getEmissionKind() != DICompileUnit::NoDebug)
|
||||||
|
forBothCUs(*CUMap.lookup(SP->getUnit()), [&](DwarfCompileUnit &CU) {
|
||||||
|
CU.finishSubprogramDefinition(SP);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,7 +675,6 @@ void DwarfDebug::endModule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// clean up.
|
// clean up.
|
||||||
SPMap.clear();
|
|
||||||
AbstractVariables.clear();
|
AbstractVariables.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1067,11 +1073,13 @@ void DwarfDebug::beginFunction(const MachineFunction *MF) {
|
|||||||
// isn't structurally identical (see: file path/name info from clang, which
|
// isn't structurally identical (see: file path/name info from clang, which
|
||||||
// includes the directory of the cpp file being built, even when the file name
|
// includes the directory of the cpp file being built, even when the file name
|
||||||
// is absolute (such as an <> lookup header)))
|
// is absolute (such as an <> lookup header)))
|
||||||
DwarfCompileUnit *TheCU = SPMap.lookup(FnScope->getScopeNode());
|
auto *SP = cast<DISubprogram>(FnScope->getScopeNode());
|
||||||
if (!TheCU)
|
DwarfCompileUnit *TheCU = CUMap.lookup(SP->getUnit());
|
||||||
// Once DISubprogram points to the owning CU, we can assert that the CU has
|
if (!TheCU) {
|
||||||
// a NoDebug EmissionKind here.
|
assert(SP->getUnit()->getEmissionKind() == DICompileUnit::NoDebug &&
|
||||||
|
"DICompileUnit missing from llvm.dbg.cu?");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
if (Asm->OutStreamer->hasRawTextSupport())
|
if (Asm->OutStreamer->hasRawTextSupport())
|
||||||
// Use a single line table if we are generating assembly.
|
// Use a single line table if we are generating assembly.
|
||||||
Asm->OutStreamer->getContext().setDwarfCompileUnitID(0);
|
Asm->OutStreamer->getContext().setDwarfCompileUnitID(0);
|
||||||
@ -1093,11 +1101,9 @@ void DwarfDebug::endFunction(const MachineFunction *MF) {
|
|||||||
assert(CurFn == MF &&
|
assert(CurFn == MF &&
|
||||||
"endFunction should be called with the same function as beginFunction");
|
"endFunction should be called with the same function as beginFunction");
|
||||||
|
|
||||||
if (!MMI->hasDebugInfo() || LScopes.empty() ||
|
const DISubprogram *SP = MF->getFunction()->getSubprogram();
|
||||||
!MF->getFunction()->getSubprogram() ||
|
if (!MMI->hasDebugInfo() || LScopes.empty() || !SP ||
|
||||||
// Once DISubprogram points to the owning CU, we can check for a
|
SP->getUnit()->getEmissionKind() == DICompileUnit::NoDebug) {
|
||||||
// CU with a NoDebug EmissionKind here.
|
|
||||||
!SPMap.lookup(MF->getFunction()->getSubprogram())) {
|
|
||||||
// If we don't have a lexical scope for this function then there will
|
// If we don't have a lexical scope for this function then there will
|
||||||
// be a hole in the range information. Keep note of this by setting the
|
// be a hole in the range information. Keep note of this by setting the
|
||||||
// previously used section to nullptr.
|
// previously used section to nullptr.
|
||||||
@ -1106,7 +1112,7 @@ void DwarfDebug::endFunction(const MachineFunction *MF) {
|
|||||||
DebugHandlerBase::endFunction(MF);
|
DebugHandlerBase::endFunction(MF);
|
||||||
// Mark functions with no debug info on any instructions, but a
|
// Mark functions with no debug info on any instructions, but a
|
||||||
// valid DISubprogram as processed.
|
// valid DISubprogram as processed.
|
||||||
if (auto *SP = MF->getFunction()->getSubprogram())
|
if (SP)
|
||||||
ProcessedSPNodes.insert(SP);
|
ProcessedSPNodes.insert(SP);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1115,8 +1121,8 @@ void DwarfDebug::endFunction(const MachineFunction *MF) {
|
|||||||
Asm->OutStreamer->getContext().setDwarfCompileUnitID(0);
|
Asm->OutStreamer->getContext().setDwarfCompileUnitID(0);
|
||||||
|
|
||||||
LexicalScope *FnScope = LScopes.getCurrentFunctionScope();
|
LexicalScope *FnScope = LScopes.getCurrentFunctionScope();
|
||||||
auto *SP = cast<DISubprogram>(FnScope->getScopeNode());
|
SP = cast<DISubprogram>(FnScope->getScopeNode());
|
||||||
DwarfCompileUnit &TheCU = *SPMap.lookup(SP);
|
DwarfCompileUnit &TheCU = *CUMap.lookup(SP->getUnit());
|
||||||
|
|
||||||
DenseSet<InlinedVariable> ProcessedVars;
|
DenseSet<InlinedVariable> ProcessedVars;
|
||||||
collectVariableInfo(TheCU, SP, ProcessedVars);
|
collectVariableInfo(TheCU, SP, ProcessedVars);
|
||||||
|
@ -199,9 +199,6 @@ class DwarfDebug : public DebugHandlerBase {
|
|||||||
/// Maps MDNode with its corresponding DwarfCompileUnit.
|
/// Maps MDNode with its corresponding DwarfCompileUnit.
|
||||||
MapVector<const MDNode *, DwarfCompileUnit *> CUMap;
|
MapVector<const MDNode *, DwarfCompileUnit *> CUMap;
|
||||||
|
|
||||||
/// Maps subprogram MDNode with its corresponding DwarfCompileUnit.
|
|
||||||
MapVector<const MDNode *, DwarfCompileUnit *> SPMap;
|
|
||||||
|
|
||||||
/// Maps a CU DIE with its corresponding DwarfCompileUnit.
|
/// Maps a CU DIE with its corresponding DwarfCompileUnit.
|
||||||
DenseMap<const DIE *, DwarfCompileUnit *> CUDieMap;
|
DenseMap<const DIE *, DwarfCompileUnit *> CUDieMap;
|
||||||
|
|
||||||
|
@ -1673,7 +1673,6 @@ static void writeDICompileUnit(raw_ostream &Out, const DICompileUnit *N,
|
|||||||
Printer.printEmissionKind("emissionKind", N->getEmissionKind());
|
Printer.printEmissionKind("emissionKind", N->getEmissionKind());
|
||||||
Printer.printMetadata("enums", N->getRawEnumTypes());
|
Printer.printMetadata("enums", N->getRawEnumTypes());
|
||||||
Printer.printMetadata("retainedTypes", N->getRawRetainedTypes());
|
Printer.printMetadata("retainedTypes", N->getRawRetainedTypes());
|
||||||
Printer.printMetadata("subprograms", N->getRawSubprograms());
|
|
||||||
Printer.printMetadata("globals", N->getRawGlobalVariables());
|
Printer.printMetadata("globals", N->getRawGlobalVariables());
|
||||||
Printer.printMetadata("imports", N->getRawImportedEntities());
|
Printer.printMetadata("imports", N->getRawImportedEntities());
|
||||||
Printer.printMetadata("macros", N->getRawMacros());
|
Printer.printMetadata("macros", N->getRawMacros());
|
||||||
@ -1703,6 +1702,7 @@ static void writeDISubprogram(raw_ostream &Out, const DISubprogram *N,
|
|||||||
Printer.printInt("virtualIndex", N->getVirtualIndex(), false);
|
Printer.printInt("virtualIndex", N->getVirtualIndex(), false);
|
||||||
Printer.printDIFlags("flags", N->getFlags());
|
Printer.printDIFlags("flags", N->getFlags());
|
||||||
Printer.printBool("isOptimized", N->isOptimized());
|
Printer.printBool("isOptimized", N->isOptimized());
|
||||||
|
Printer.printMetadata("unit", N->getRawUnit());
|
||||||
Printer.printMetadata("templateParams", N->getRawTemplateParams());
|
Printer.printMetadata("templateParams", N->getRawTemplateParams());
|
||||||
Printer.printMetadata("declaration", N->getRawDeclaration());
|
Printer.printMetadata("declaration", N->getRawDeclaration());
|
||||||
Printer.printMetadata("variables", N->getRawVariables());
|
Printer.printMetadata("variables", N->getRawVariables());
|
||||||
|
@ -96,17 +96,19 @@ void DIBuilder::finalize() {
|
|||||||
CUNode->replaceRetainedTypes(MDTuple::get(VMContext, RetainValues));
|
CUNode->replaceRetainedTypes(MDTuple::get(VMContext, RetainValues));
|
||||||
|
|
||||||
DISubprogramArray SPs = MDTuple::get(VMContext, AllSubprograms);
|
DISubprogramArray SPs = MDTuple::get(VMContext, AllSubprograms);
|
||||||
if (!AllSubprograms.empty())
|
auto resolveVariables = [&](DISubprogram *SP) {
|
||||||
CUNode->replaceSubprograms(SPs.get());
|
|
||||||
|
|
||||||
for (auto *SP : SPs) {
|
|
||||||
if (MDTuple *Temp = SP->getVariables().get()) {
|
if (MDTuple *Temp = SP->getVariables().get()) {
|
||||||
const auto &PV = PreservedVariables.lookup(SP);
|
const auto &PV = PreservedVariables.lookup(SP);
|
||||||
SmallVector<Metadata *, 4> Variables(PV.begin(), PV.end());
|
SmallVector<Metadata *, 4> Variables(PV.begin(), PV.end());
|
||||||
DINodeArray AV = getOrCreateArray(Variables);
|
DINodeArray AV = getOrCreateArray(Variables);
|
||||||
TempMDTuple(Temp)->replaceAllUsesWith(AV.get());
|
TempMDTuple(Temp)->replaceAllUsesWith(AV.get());
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
for (auto *SP : SPs)
|
||||||
|
resolveVariables(SP);
|
||||||
|
for (auto *N : RetainValues)
|
||||||
|
if (auto *SP = dyn_cast<DISubprogram>(N))
|
||||||
|
resolveVariables(SP);
|
||||||
|
|
||||||
if (!AllGVs.empty())
|
if (!AllGVs.empty())
|
||||||
CUNode->replaceGlobalVariables(MDTuple::get(VMContext, AllGVs));
|
CUNode->replaceGlobalVariables(MDTuple::get(VMContext, AllGVs));
|
||||||
@ -148,8 +150,8 @@ DICompileUnit *DIBuilder::createCompileUnit(
|
|||||||
assert(!CUNode && "Can only make one compile unit per DIBuilder instance");
|
assert(!CUNode && "Can only make one compile unit per DIBuilder instance");
|
||||||
CUNode = DICompileUnit::getDistinct(
|
CUNode = DICompileUnit::getDistinct(
|
||||||
VMContext, Lang, DIFile::get(VMContext, Filename, Directory), Producer,
|
VMContext, Lang, DIFile::get(VMContext, Filename, Directory), Producer,
|
||||||
isOptimized, Flags, RunTimeVer, SplitName, Kind, nullptr,
|
isOptimized, Flags, RunTimeVer, SplitName, Kind, nullptr, nullptr,
|
||||||
nullptr, nullptr, nullptr, nullptr, nullptr, DWOId);
|
nullptr, nullptr, nullptr, DWOId);
|
||||||
|
|
||||||
// Create a named metadata so that it is easier to find cu in a module.
|
// Create a named metadata so that it is easier to find cu in a module.
|
||||||
NamedMDNode *NMD = M.getOrInsertNamedMetadata("llvm.dbg.cu");
|
NamedMDNode *NMD = M.getOrInsertNamedMetadata("llvm.dbg.cu");
|
||||||
@ -505,8 +507,11 @@ DIType *DIBuilder::createObjectPointerType(DIType *Ty) {
|
|||||||
return createTypeWithFlags(VMContext, Ty, Flags);
|
return createTypeWithFlags(VMContext, Ty, Flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DIBuilder::retainType(DIType *T) {
|
void DIBuilder::retainType(DIScope *T) {
|
||||||
assert(T && "Expected non-null type");
|
assert(T && "Expected non-null type");
|
||||||
|
assert((isa<DIType>(T) || (isa<DISubprogram>(T) &&
|
||||||
|
cast<DISubprogram>(T)->isDefinition() == false)) &&
|
||||||
|
"Expected type or subprogram declaration");
|
||||||
AllRetainTypes.emplace_back(T);
|
AllRetainTypes.emplace_back(T);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -684,12 +689,12 @@ DISubprogram *DIBuilder::createFunction(
|
|||||||
unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit,
|
unsigned LineNo, DISubroutineType *Ty, bool isLocalToUnit,
|
||||||
bool isDefinition, unsigned ScopeLine, unsigned Flags, bool isOptimized,
|
bool isDefinition, unsigned ScopeLine, unsigned Flags, bool isOptimized,
|
||||||
DITemplateParameterArray TParams, DISubprogram *Decl) {
|
DITemplateParameterArray TParams, DISubprogram *Decl) {
|
||||||
auto *Node =
|
auto *Node = getSubprogram(
|
||||||
getSubprogram(/* IsDistinct = */ isDefinition, VMContext,
|
/* IsDistinct = */ isDefinition, VMContext,
|
||||||
DIScopeRef::get(getNonCompileUnitScope(Context)), Name,
|
DIScopeRef::get(getNonCompileUnitScope(Context)), Name, LinkageName, File,
|
||||||
LinkageName, File, LineNo, Ty, isLocalToUnit, isDefinition,
|
LineNo, Ty, isLocalToUnit, isDefinition, ScopeLine, nullptr, 0, 0, Flags,
|
||||||
ScopeLine, nullptr, 0, 0, Flags, isOptimized, TParams, Decl,
|
isOptimized, isDefinition ? CUNode : nullptr, TParams, Decl,
|
||||||
MDTuple::getTemporary(VMContext, None).release());
|
MDTuple::getTemporary(VMContext, None).release());
|
||||||
|
|
||||||
if (isDefinition)
|
if (isDefinition)
|
||||||
AllSubprograms.push_back(Node);
|
AllSubprograms.push_back(Node);
|
||||||
@ -705,8 +710,8 @@ DISubprogram *DIBuilder::createTempFunctionFwdDecl(
|
|||||||
return DISubprogram::getTemporary(
|
return DISubprogram::getTemporary(
|
||||||
VMContext, DIScopeRef::get(getNonCompileUnitScope(Context)), Name,
|
VMContext, DIScopeRef::get(getNonCompileUnitScope(Context)), Name,
|
||||||
LinkageName, File, LineNo, Ty, isLocalToUnit, isDefinition,
|
LinkageName, File, LineNo, Ty, isLocalToUnit, isDefinition,
|
||||||
ScopeLine, nullptr, 0, 0, Flags, isOptimized, TParams, Decl,
|
ScopeLine, nullptr, 0, 0, Flags, isOptimized,
|
||||||
nullptr)
|
isDefinition ? CUNode : nullptr, TParams, Decl, nullptr)
|
||||||
.release();
|
.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -724,7 +729,8 @@ DIBuilder::createMethod(DIScope *Context, StringRef Name, StringRef LinkageName,
|
|||||||
/* IsDistinct = */ isDefinition, VMContext,
|
/* IsDistinct = */ isDefinition, VMContext,
|
||||||
DIScopeRef::get(cast<DIScope>(Context)), Name, LinkageName, F, LineNo, Ty,
|
DIScopeRef::get(cast<DIScope>(Context)), Name, LinkageName, F, LineNo, Ty,
|
||||||
isLocalToUnit, isDefinition, LineNo, DITypeRef::get(VTableHolder), VK,
|
isLocalToUnit, isDefinition, LineNo, DITypeRef::get(VTableHolder), VK,
|
||||||
VIndex, Flags, isOptimized, TParams, nullptr, nullptr);
|
VIndex, Flags, isOptimized, isDefinition ? CUNode : nullptr, TParams,
|
||||||
|
nullptr, nullptr);
|
||||||
|
|
||||||
if (isDefinition)
|
if (isDefinition)
|
||||||
AllSubprograms.push_back(SP);
|
AllSubprograms.push_back(SP);
|
||||||
|
@ -94,12 +94,13 @@ void DebugInfoFinder::processModule(const Module &M) {
|
|||||||
processType(DIG->getType().resolve(TypeIdentifierMap));
|
processType(DIG->getType().resolve(TypeIdentifierMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (auto *SP : CU->getSubprograms())
|
|
||||||
processSubprogram(SP);
|
|
||||||
for (auto *ET : CU->getEnumTypes())
|
for (auto *ET : CU->getEnumTypes())
|
||||||
processType(ET);
|
processType(ET);
|
||||||
for (auto *RT : CU->getRetainedTypes())
|
for (auto *RT : CU->getRetainedTypes())
|
||||||
processType(RT);
|
if (auto *T = dyn_cast<DIType>(RT))
|
||||||
|
processType(T);
|
||||||
|
else
|
||||||
|
processSubprogram(cast<DISubprogram>(RT));
|
||||||
for (auto *Import : CU->getImportedEntities()) {
|
for (auto *Import : CU->getImportedEntities()) {
|
||||||
auto *Entity = Import->getEntity().resolve(TypeIdentifierMap);
|
auto *Entity = Import->getEntity().resolve(TypeIdentifierMap);
|
||||||
if (auto *T = dyn_cast<DIType>(Entity))
|
if (auto *T = dyn_cast<DIType>(Entity))
|
||||||
@ -112,6 +113,9 @@ void DebugInfoFinder::processModule(const Module &M) {
|
|||||||
processScope(M->getScope());
|
processScope(M->getScope());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (auto &F : M.functions())
|
||||||
|
if (auto *SP = cast_or_null<DISubprogram>(F.getSubprogram()))
|
||||||
|
processSubprogram(SP);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugInfoFinder::processLocation(const Module &M, const DILocation *Loc) {
|
void DebugInfoFinder::processLocation(const Module &M, const DILocation *Loc) {
|
||||||
|
@ -289,17 +289,17 @@ DICompileUnit *DICompileUnit::getImpl(
|
|||||||
MDString *Producer, bool IsOptimized, MDString *Flags,
|
MDString *Producer, bool IsOptimized, MDString *Flags,
|
||||||
unsigned RuntimeVersion, MDString *SplitDebugFilename,
|
unsigned RuntimeVersion, MDString *SplitDebugFilename,
|
||||||
unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
|
unsigned EmissionKind, Metadata *EnumTypes, Metadata *RetainedTypes,
|
||||||
Metadata *Subprograms, Metadata *GlobalVariables,
|
Metadata *GlobalVariables, Metadata *ImportedEntities, Metadata *Macros,
|
||||||
Metadata *ImportedEntities, Metadata *Macros, uint64_t DWOId,
|
uint64_t DWOId, StorageType Storage, bool ShouldCreate) {
|
||||||
StorageType Storage, bool ShouldCreate) {
|
|
||||||
assert(Storage != Uniqued && "Cannot unique DICompileUnit");
|
assert(Storage != Uniqued && "Cannot unique DICompileUnit");
|
||||||
assert(isCanonical(Producer) && "Expected canonical MDString");
|
assert(isCanonical(Producer) && "Expected canonical MDString");
|
||||||
assert(isCanonical(Flags) && "Expected canonical MDString");
|
assert(isCanonical(Flags) && "Expected canonical MDString");
|
||||||
assert(isCanonical(SplitDebugFilename) && "Expected canonical MDString");
|
assert(isCanonical(SplitDebugFilename) && "Expected canonical MDString");
|
||||||
|
|
||||||
Metadata *Ops[] = {File, Producer, Flags, SplitDebugFilename, EnumTypes,
|
Metadata *Ops[] = {
|
||||||
RetainedTypes, Subprograms, GlobalVariables,
|
File, Producer, Flags, SplitDebugFilename,
|
||||||
ImportedEntities, Macros};
|
EnumTypes, RetainedTypes, GlobalVariables, ImportedEntities,
|
||||||
|
Macros};
|
||||||
return storeImpl(new (array_lengthof(Ops)) DICompileUnit(
|
return storeImpl(new (array_lengthof(Ops)) DICompileUnit(
|
||||||
Context, Storage, SourceLanguage, IsOptimized,
|
Context, Storage, SourceLanguage, IsOptimized,
|
||||||
RuntimeVersion, EmissionKind, DWOId, Ops),
|
RuntimeVersion, EmissionKind, DWOId, Ops),
|
||||||
@ -335,7 +335,7 @@ DISubprogram *DISubprogram::getImpl(
|
|||||||
MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
|
MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type,
|
||||||
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
||||||
Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
|
Metadata *ContainingType, unsigned Virtuality, unsigned VirtualIndex,
|
||||||
unsigned Flags, bool IsOptimized, Metadata *TemplateParams,
|
unsigned Flags, bool IsOptimized, Metadata *Unit, Metadata *TemplateParams,
|
||||||
Metadata *Declaration, Metadata *Variables, StorageType Storage,
|
Metadata *Declaration, Metadata *Variables, StorageType Storage,
|
||||||
bool ShouldCreate) {
|
bool ShouldCreate) {
|
||||||
assert(isCanonical(Name) && "Expected canonical MDString");
|
assert(isCanonical(Name) && "Expected canonical MDString");
|
||||||
@ -343,11 +343,11 @@ DISubprogram *DISubprogram::getImpl(
|
|||||||
DEFINE_GETIMPL_LOOKUP(DISubprogram,
|
DEFINE_GETIMPL_LOOKUP(DISubprogram,
|
||||||
(Scope, Name, LinkageName, File, Line, Type,
|
(Scope, Name, LinkageName, File, Line, Type,
|
||||||
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
IsLocalToUnit, IsDefinition, ScopeLine, ContainingType,
|
||||||
Virtuality, VirtualIndex, Flags, IsOptimized,
|
Virtuality, VirtualIndex, Flags, IsOptimized, Unit,
|
||||||
TemplateParams, Declaration, Variables));
|
TemplateParams, Declaration, Variables));
|
||||||
Metadata *Ops[] = {File, Scope, Name, Name,
|
Metadata *Ops[] = {File, Scope, Name, Name,
|
||||||
LinkageName, Type, ContainingType, TemplateParams,
|
LinkageName, Type, ContainingType, Unit,
|
||||||
Declaration, Variables};
|
TemplateParams, Declaration, Variables};
|
||||||
DEFINE_GETIMPL_STORE(DISubprogram,
|
DEFINE_GETIMPL_STORE(DISubprogram,
|
||||||
(Line, ScopeLine, Virtuality, VirtualIndex, Flags,
|
(Line, ScopeLine, Virtuality, VirtualIndex, Flags,
|
||||||
IsLocalToUnit, IsDefinition, IsOptimized),
|
IsLocalToUnit, IsDefinition, IsOptimized),
|
||||||
|
@ -480,6 +480,7 @@ template <> struct MDNodeKeyImpl<DISubprogram> {
|
|||||||
unsigned VirtualIndex;
|
unsigned VirtualIndex;
|
||||||
unsigned Flags;
|
unsigned Flags;
|
||||||
bool IsOptimized;
|
bool IsOptimized;
|
||||||
|
Metadata *Unit;
|
||||||
Metadata *TemplateParams;
|
Metadata *TemplateParams;
|
||||||
Metadata *Declaration;
|
Metadata *Declaration;
|
||||||
Metadata *Variables;
|
Metadata *Variables;
|
||||||
@ -489,14 +490,14 @@ template <> struct MDNodeKeyImpl<DISubprogram> {
|
|||||||
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
bool IsLocalToUnit, bool IsDefinition, unsigned ScopeLine,
|
||||||
Metadata *ContainingType, unsigned Virtuality,
|
Metadata *ContainingType, unsigned Virtuality,
|
||||||
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
unsigned VirtualIndex, unsigned Flags, bool IsOptimized,
|
||||||
Metadata *TemplateParams, Metadata *Declaration,
|
Metadata *Unit, Metadata *TemplateParams, Metadata *Declaration,
|
||||||
Metadata *Variables)
|
Metadata *Variables)
|
||||||
: Scope(Scope), Name(Name), LinkageName(LinkageName), File(File),
|
: Scope(Scope), Name(Name), LinkageName(LinkageName), File(File),
|
||||||
Line(Line), Type(Type), IsLocalToUnit(IsLocalToUnit),
|
Line(Line), Type(Type), IsLocalToUnit(IsLocalToUnit),
|
||||||
IsDefinition(IsDefinition), ScopeLine(ScopeLine),
|
IsDefinition(IsDefinition), ScopeLine(ScopeLine),
|
||||||
ContainingType(ContainingType), Virtuality(Virtuality),
|
ContainingType(ContainingType), Virtuality(Virtuality),
|
||||||
VirtualIndex(VirtualIndex), Flags(Flags), IsOptimized(IsOptimized),
|
VirtualIndex(VirtualIndex), Flags(Flags), IsOptimized(IsOptimized),
|
||||||
TemplateParams(TemplateParams), Declaration(Declaration),
|
Unit(Unit), TemplateParams(TemplateParams), Declaration(Declaration),
|
||||||
Variables(Variables) {}
|
Variables(Variables) {}
|
||||||
MDNodeKeyImpl(const DISubprogram *N)
|
MDNodeKeyImpl(const DISubprogram *N)
|
||||||
: Scope(N->getRawScope()), Name(N->getRawName()),
|
: Scope(N->getRawScope()), Name(N->getRawName()),
|
||||||
@ -506,7 +507,7 @@ template <> struct MDNodeKeyImpl<DISubprogram> {
|
|||||||
ScopeLine(N->getScopeLine()), ContainingType(N->getRawContainingType()),
|
ScopeLine(N->getScopeLine()), ContainingType(N->getRawContainingType()),
|
||||||
Virtuality(N->getVirtuality()), VirtualIndex(N->getVirtualIndex()),
|
Virtuality(N->getVirtuality()), VirtualIndex(N->getVirtualIndex()),
|
||||||
Flags(N->getFlags()), IsOptimized(N->isOptimized()),
|
Flags(N->getFlags()), IsOptimized(N->isOptimized()),
|
||||||
TemplateParams(N->getRawTemplateParams()),
|
Unit(N->getRawUnit()), TemplateParams(N->getRawTemplateParams()),
|
||||||
Declaration(N->getRawDeclaration()), Variables(N->getRawVariables()) {}
|
Declaration(N->getRawDeclaration()), Variables(N->getRawVariables()) {}
|
||||||
|
|
||||||
bool isKeyOf(const DISubprogram *RHS) const {
|
bool isKeyOf(const DISubprogram *RHS) const {
|
||||||
@ -519,7 +520,7 @@ template <> struct MDNodeKeyImpl<DISubprogram> {
|
|||||||
ContainingType == RHS->getRawContainingType() &&
|
ContainingType == RHS->getRawContainingType() &&
|
||||||
Virtuality == RHS->getVirtuality() &&
|
Virtuality == RHS->getVirtuality() &&
|
||||||
VirtualIndex == RHS->getVirtualIndex() && Flags == RHS->getFlags() &&
|
VirtualIndex == RHS->getVirtualIndex() && Flags == RHS->getFlags() &&
|
||||||
IsOptimized == RHS->isOptimized() &&
|
IsOptimized == RHS->isOptimized() && Unit == RHS->getUnit() &&
|
||||||
TemplateParams == RHS->getRawTemplateParams() &&
|
TemplateParams == RHS->getRawTemplateParams() &&
|
||||||
Declaration == RHS->getRawDeclaration() &&
|
Declaration == RHS->getRawDeclaration() &&
|
||||||
Variables == RHS->getRawVariables();
|
Variables == RHS->getRawVariables();
|
||||||
|
@ -951,13 +951,10 @@ void Verifier::visitDICompileUnit(const DICompileUnit &N) {
|
|||||||
if (auto *Array = N.getRawRetainedTypes()) {
|
if (auto *Array = N.getRawRetainedTypes()) {
|
||||||
Assert(isa<MDTuple>(Array), "invalid retained type list", &N, Array);
|
Assert(isa<MDTuple>(Array), "invalid retained type list", &N, Array);
|
||||||
for (Metadata *Op : N.getRetainedTypes()->operands()) {
|
for (Metadata *Op : N.getRetainedTypes()->operands()) {
|
||||||
Assert(Op && isa<DIType>(Op), "invalid retained type", &N, Op);
|
Assert(Op && (isa<DIType>(Op) ||
|
||||||
}
|
(isa<DISubprogram>(Op) &&
|
||||||
}
|
cast<DISubprogram>(Op)->isDefinition() == false)),
|
||||||
if (auto *Array = N.getRawSubprograms()) {
|
"invalid retained type", &N, Op);
|
||||||
Assert(isa<MDTuple>(Array), "invalid subprogram list", &N, Array);
|
|
||||||
for (Metadata *Op : N.getSubprograms()->operands()) {
|
|
||||||
Assert(Op && isa<DISubprogram>(Op), "invalid subprogram ref", &N, Op);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (auto *Array = N.getRawGlobalVariables()) {
|
if (auto *Array = N.getRawGlobalVariables()) {
|
||||||
@ -994,10 +991,9 @@ void Verifier::visitDISubprogram(const DISubprogram &N) {
|
|||||||
N.getRawContainingType());
|
N.getRawContainingType());
|
||||||
if (auto *Params = N.getRawTemplateParams())
|
if (auto *Params = N.getRawTemplateParams())
|
||||||
visitTemplateParams(N, *Params);
|
visitTemplateParams(N, *Params);
|
||||||
if (auto *S = N.getRawDeclaration()) {
|
if (auto *S = N.getRawDeclaration())
|
||||||
Assert(isa<DISubprogram>(S) && !cast<DISubprogram>(S)->isDefinition(),
|
Assert(isa<DISubprogram>(S) && !cast<DISubprogram>(S)->isDefinition(),
|
||||||
"invalid subprogram declaration", &N, S);
|
"invalid subprogram declaration", &N, S);
|
||||||
}
|
|
||||||
if (auto *RawVars = N.getRawVariables()) {
|
if (auto *RawVars = N.getRawVariables()) {
|
||||||
auto *Vars = dyn_cast<MDTuple>(RawVars);
|
auto *Vars = dyn_cast<MDTuple>(RawVars);
|
||||||
Assert(Vars, "invalid variable list", &N, RawVars);
|
Assert(Vars, "invalid variable list", &N, RawVars);
|
||||||
@ -1009,8 +1005,16 @@ void Verifier::visitDISubprogram(const DISubprogram &N) {
|
|||||||
Assert(!hasConflictingReferenceFlags(N.getFlags()), "invalid reference flags",
|
Assert(!hasConflictingReferenceFlags(N.getFlags()), "invalid reference flags",
|
||||||
&N);
|
&N);
|
||||||
|
|
||||||
if (N.isDefinition())
|
auto *Unit = N.getRawUnit();
|
||||||
|
if (N.isDefinition()) {
|
||||||
|
// Subprogram definitions (not part of the type hierarchy).
|
||||||
Assert(N.isDistinct(), "subprogram definitions must be distinct", &N);
|
Assert(N.isDistinct(), "subprogram definitions must be distinct", &N);
|
||||||
|
Assert(Unit, "subprogram definitions must have a compile unit", &N);
|
||||||
|
Assert(isa<DICompileUnit>(Unit), "invalid unit type", &N, Unit);
|
||||||
|
} else {
|
||||||
|
// Subprogram declarations (part of the type hierarchy).
|
||||||
|
Assert(!Unit, "subprogram declarations must not have a compile unit", &N);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Verifier::visitDILexicalBlockBase(const DILexicalBlockBase &N) {
|
void Verifier::visitDILexicalBlockBase(const DILexicalBlockBase &N) {
|
||||||
@ -2023,6 +2027,8 @@ void Verifier::visitFunction(const Function &F) {
|
|||||||
if (!N)
|
if (!N)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
visitDISubprogram(*N);
|
||||||
|
|
||||||
// Check that all !dbg attachments lead to back to N (or, at least, another
|
// Check that all !dbg attachments lead to back to N (or, at least, another
|
||||||
// subprogram that describes the same function).
|
// subprogram that describes the same function).
|
||||||
//
|
//
|
||||||
@ -4419,7 +4425,7 @@ void Verifier::verifyTypeRefs() {
|
|||||||
auto *Array = CU->getRawRetainedTypes();
|
auto *Array = CU->getRawRetainedTypes();
|
||||||
if (!Array || !isa<MDTuple>(Array))
|
if (!Array || !isa<MDTuple>(Array))
|
||||||
continue;
|
continue;
|
||||||
for (DIType *Op : CU->getRetainedTypes())
|
for (DIScope *Op : CU->getRetainedTypes())
|
||||||
if (auto *T = dyn_cast_or_null<DICompositeType>(Op))
|
if (auto *T = dyn_cast_or_null<DICompositeType>(Op))
|
||||||
if (auto *S = T->getRawIdentifier()) {
|
if (auto *S = T->getRawIdentifier()) {
|
||||||
UnresolvedTypeRefs.erase(S);
|
UnresolvedTypeRefs.erase(S);
|
||||||
|
@ -400,11 +400,6 @@ class IRLinker {
|
|||||||
/// Flags to pass to value mapper invocations.
|
/// Flags to pass to value mapper invocations.
|
||||||
RemapFlags ValueMapperFlags = RF_MoveDistinctMDs | RF_IgnoreMissingLocals;
|
RemapFlags ValueMapperFlags = RF_MoveDistinctMDs | RF_IgnoreMissingLocals;
|
||||||
|
|
||||||
/// Set of subprogram metadata that does not need to be linked into the
|
|
||||||
/// destination module, because the functions were not imported directly
|
|
||||||
/// or via an inlined body in an imported function.
|
|
||||||
bool HasUnneededSPs = false;
|
|
||||||
|
|
||||||
/// Handles cloning of a global values from the source module into
|
/// Handles cloning of a global values from the source module into
|
||||||
/// the destination module, including setting the attributes and visibility.
|
/// the destination module, including setting the attributes and visibility.
|
||||||
GlobalValue *copyGlobalValueProto(const GlobalValue *SGV, bool ForDefinition);
|
GlobalValue *copyGlobalValueProto(const GlobalValue *SGV, bool ForDefinition);
|
||||||
@ -470,15 +465,6 @@ class IRLinker {
|
|||||||
|
|
||||||
void linkNamedMDNodes();
|
void linkNamedMDNodes();
|
||||||
|
|
||||||
/// Look for subprograms referenced from !llvm.dbg.cu that we don't want to
|
|
||||||
/// link in and map it to nullptr.
|
|
||||||
///
|
|
||||||
/// \post HasUnneededSPs is true iff any unneeded subprograms were found.
|
|
||||||
void mapUnneededSubprograms();
|
|
||||||
|
|
||||||
/// Remove null subprograms from !llvm.dbg.cu.
|
|
||||||
void stripNullSubprograms(DICompileUnit *CU);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IRLinker(Module &DstM, IRMover::IdentifiedStructTypeSet &Set,
|
IRLinker(Module &DstM, IRMover::IdentifiedStructTypeSet &Set,
|
||||||
std::unique_ptr<Module> SrcM, ArrayRef<GlobalValue *> ValuesToLink,
|
std::unique_ptr<Module> SrcM, ArrayRef<GlobalValue *> ValuesToLink,
|
||||||
@ -1004,60 +990,8 @@ bool IRLinker::linkGlobalValueBody(GlobalValue &Dst, GlobalValue &Src) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRLinker::mapUnneededSubprograms() {
|
|
||||||
// Track unneeded nodes to make it simpler to handle the case
|
|
||||||
// where we are checking if an already-mapped SP is needed.
|
|
||||||
NamedMDNode *CompileUnits = SrcM->getNamedMetadata("llvm.dbg.cu");
|
|
||||||
if (!CompileUnits)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Seed the ValueMap with the imported entities, in case they reference new
|
|
||||||
// subprograms.
|
|
||||||
// FIXME: The DISubprogram for functions not linked in but kept due to
|
|
||||||
// being referenced by a DIImportedEntity should also get their
|
|
||||||
// IsDefinition flag is unset.
|
|
||||||
for (unsigned I = 0, E = CompileUnits->getNumOperands(); I != E; ++I) {
|
|
||||||
if (MDTuple *IEs = cast<DICompileUnit>(CompileUnits->getOperand(I))
|
|
||||||
->getImportedEntities()
|
|
||||||
.get())
|
|
||||||
(void)MapMetadata(IEs, ValueMap,
|
|
||||||
ValueMapperFlags | RF_NullMapMissingGlobalValues,
|
|
||||||
&TypeMap, &GValMaterializer);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try to insert nullptr into the map for any SP not already mapped. If
|
|
||||||
// the insertion succeeds, we don't need this subprogram.
|
|
||||||
for (unsigned I = 0, E = CompileUnits->getNumOperands(); I != E; ++I) {
|
|
||||||
for (auto *Op :
|
|
||||||
cast<DICompileUnit>(CompileUnits->getOperand(I))->getSubprograms())
|
|
||||||
if (ValueMap.MD().insert(std::make_pair(Op, TrackingMDRef())).second)
|
|
||||||
HasUnneededSPs = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Squash null subprograms from the given compile unit's subprogram list.
|
|
||||||
void IRLinker::stripNullSubprograms(DICompileUnit *CU) {
|
|
||||||
// There won't be any nulls if we didn't have any subprograms marked
|
|
||||||
// as unneeded.
|
|
||||||
if (!HasUnneededSPs)
|
|
||||||
return;
|
|
||||||
SmallVector<Metadata *, 16> NewSPs;
|
|
||||||
NewSPs.reserve(CU->getSubprograms().size());
|
|
||||||
bool FoundNull = false;
|
|
||||||
for (DISubprogram *SP : CU->getSubprograms()) {
|
|
||||||
if (!SP) {
|
|
||||||
FoundNull = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
NewSPs.push_back(SP);
|
|
||||||
}
|
|
||||||
if (FoundNull)
|
|
||||||
CU->replaceSubprograms(MDTuple::get(CU->getContext(), NewSPs));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Insert all of the named MDNodes in Src into the Dest module.
|
/// Insert all of the named MDNodes in Src into the Dest module.
|
||||||
void IRLinker::linkNamedMDNodes() {
|
void IRLinker::linkNamedMDNodes() {
|
||||||
mapUnneededSubprograms();
|
|
||||||
const NamedMDNode *SrcModFlags = SrcM->getModuleFlagsMetadata();
|
const NamedMDNode *SrcModFlags = SrcM->getModuleFlagsMetadata();
|
||||||
for (const NamedMDNode &NMD : SrcM->named_metadata()) {
|
for (const NamedMDNode &NMD : SrcM->named_metadata()) {
|
||||||
// Don't link module flags here. Do them separately.
|
// Don't link module flags here. Do them separately.
|
||||||
@ -1069,11 +1003,6 @@ void IRLinker::linkNamedMDNodes() {
|
|||||||
MDNode *DestMD = MapMetadata(
|
MDNode *DestMD = MapMetadata(
|
||||||
op, ValueMap, ValueMapperFlags | RF_NullMapMissingGlobalValues,
|
op, ValueMap, ValueMapperFlags | RF_NullMapMissingGlobalValues,
|
||||||
&TypeMap, &GValMaterializer);
|
&TypeMap, &GValMaterializer);
|
||||||
// For each newly mapped compile unit remove any null subprograms,
|
|
||||||
// which occur when mapUnneededSubprograms identified any as unneeded
|
|
||||||
// in the dest module.
|
|
||||||
if (auto *CU = dyn_cast<DICompileUnit>(DestMD))
|
|
||||||
stripNullSubprograms(CU);
|
|
||||||
DestNMD->addOperand(DestMD);
|
DestNMD->addOperand(DestMD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -312,20 +312,6 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (DICompileUnit *DIC : F.compile_units()) {
|
for (DICompileUnit *DIC : F.compile_units()) {
|
||||||
// Create our live subprogram list.
|
|
||||||
bool SubprogramChange = false;
|
|
||||||
for (DISubprogram *DISP : DIC->getSubprograms()) {
|
|
||||||
// Make sure we visit each subprogram only once.
|
|
||||||
if (!VisitedSet.insert(DISP).second)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// If the function referenced by DISP is not null, the function is live.
|
|
||||||
if (LiveSPs.count(DISP))
|
|
||||||
LiveSubprograms.push_back(DISP);
|
|
||||||
else
|
|
||||||
SubprogramChange = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create our live global variable list.
|
// Create our live global variable list.
|
||||||
bool GlobalVariableChange = false;
|
bool GlobalVariableChange = false;
|
||||||
for (DIGlobalVariable *DIG : DIC->getGlobalVariables()) {
|
for (DIGlobalVariable *DIG : DIC->getGlobalVariables()) {
|
||||||
@ -341,14 +327,8 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {
|
|||||||
GlobalVariableChange = true;
|
GlobalVariableChange = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we found dead subprograms or global variables, replace the current
|
// If we found dead global variables, replace the current global
|
||||||
// subprogram list/global variable list with our new live subprogram/global
|
// variable list with our new live global variable list.
|
||||||
// variable list.
|
|
||||||
if (SubprogramChange) {
|
|
||||||
DIC->replaceSubprograms(MDTuple::get(C, LiveSubprograms));
|
|
||||||
Changed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GlobalVariableChange) {
|
if (GlobalVariableChange) {
|
||||||
DIC->replaceGlobalVariables(MDTuple::get(C, LiveGlobalVariables));
|
DIC->replaceGlobalVariables(MDTuple::get(C, LiveGlobalVariables));
|
||||||
Changed = true;
|
Changed = true;
|
||||||
|
@ -138,7 +138,6 @@ namespace {
|
|||||||
Module *M;
|
Module *M;
|
||||||
LLVMContext *Ctx;
|
LLVMContext *Ctx;
|
||||||
SmallVector<std::unique_ptr<GCOVFunction>, 16> Funcs;
|
SmallVector<std::unique_ptr<GCOVFunction>, 16> Funcs;
|
||||||
DenseMap<DISubprogram *, Function *> FnMap;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -450,28 +449,21 @@ bool GCOVProfiler::runOnModule(Module &M) {
|
|||||||
this->M = &M;
|
this->M = &M;
|
||||||
Ctx = &M.getContext();
|
Ctx = &M.getContext();
|
||||||
|
|
||||||
FnMap.clear();
|
|
||||||
for (Function &F : M) {
|
|
||||||
if (DISubprogram *SP = F.getSubprogram())
|
|
||||||
FnMap[SP] = &F;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Options.EmitNotes) emitProfileNotes();
|
if (Options.EmitNotes) emitProfileNotes();
|
||||||
if (Options.EmitData) return emitProfileArcs();
|
if (Options.EmitData) return emitProfileArcs();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool functionHasLines(Function *F) {
|
static bool functionHasLines(Function &F) {
|
||||||
// Check whether this function actually has any source lines. Not only
|
// Check whether this function actually has any source lines. Not only
|
||||||
// do these waste space, they also can crash gcov.
|
// do these waste space, they also can crash gcov.
|
||||||
for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) {
|
for (auto &BB : F) {
|
||||||
for (BasicBlock::iterator I = BB->begin(), IE = BB->end();
|
for (auto &I : BB) {
|
||||||
I != IE; ++I) {
|
|
||||||
// Debug intrinsic locations correspond to the location of the
|
// Debug intrinsic locations correspond to the location of the
|
||||||
// declaration, not necessarily any statements or expressions.
|
// declaration, not necessarily any statements or expressions.
|
||||||
if (isa<DbgInfoIntrinsic>(I)) continue;
|
if (isa<DbgInfoIntrinsic>(&I)) continue;
|
||||||
|
|
||||||
const DebugLoc &Loc = I->getDebugLoc();
|
const DebugLoc &Loc = I.getDebugLoc();
|
||||||
if (!Loc)
|
if (!Loc)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -504,27 +496,27 @@ void GCOVProfiler::emitProfileNotes() {
|
|||||||
std::string EdgeDestinations;
|
std::string EdgeDestinations;
|
||||||
|
|
||||||
unsigned FunctionIdent = 0;
|
unsigned FunctionIdent = 0;
|
||||||
for (auto *SP : CU->getSubprograms()) {
|
for (auto &F : M->functions()) {
|
||||||
Function *F = FnMap[SP];
|
DISubprogram *SP = F.getSubprogram();
|
||||||
if (!F) continue;
|
if (!SP) continue;
|
||||||
if (!functionHasLines(F)) continue;
|
if (!functionHasLines(F)) continue;
|
||||||
|
|
||||||
// gcov expects every function to start with an entry block that has a
|
// gcov expects every function to start with an entry block that has a
|
||||||
// single successor, so split the entry block to make sure of that.
|
// single successor, so split the entry block to make sure of that.
|
||||||
BasicBlock &EntryBlock = F->getEntryBlock();
|
BasicBlock &EntryBlock = F.getEntryBlock();
|
||||||
BasicBlock::iterator It = EntryBlock.begin();
|
BasicBlock::iterator It = EntryBlock.begin();
|
||||||
while (isa<AllocaInst>(*It) || isa<DbgInfoIntrinsic>(*It))
|
while (isa<AllocaInst>(*It) || isa<DbgInfoIntrinsic>(*It))
|
||||||
++It;
|
++It;
|
||||||
EntryBlock.splitBasicBlock(It);
|
EntryBlock.splitBasicBlock(It);
|
||||||
|
|
||||||
Funcs.push_back(make_unique<GCOVFunction>(SP, F, &out, FunctionIdent++,
|
Funcs.push_back(make_unique<GCOVFunction>(SP, &F, &out, FunctionIdent++,
|
||||||
Options.UseCfgChecksum,
|
Options.UseCfgChecksum,
|
||||||
Options.ExitBlockBeforeBody));
|
Options.ExitBlockBeforeBody));
|
||||||
GCOVFunction &Func = *Funcs.back();
|
GCOVFunction &Func = *Funcs.back();
|
||||||
|
|
||||||
for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) {
|
for (auto &BB : F) {
|
||||||
GCOVBlock &Block = Func.getBlock(&*BB);
|
GCOVBlock &Block = Func.getBlock(&BB);
|
||||||
TerminatorInst *TI = BB->getTerminator();
|
TerminatorInst *TI = BB.getTerminator();
|
||||||
if (int successors = TI->getNumSuccessors()) {
|
if (int successors = TI->getNumSuccessors()) {
|
||||||
for (int i = 0; i != successors; ++i) {
|
for (int i = 0; i != successors; ++i) {
|
||||||
Block.addEdge(Func.getBlock(TI->getSuccessor(i)));
|
Block.addEdge(Func.getBlock(TI->getSuccessor(i)));
|
||||||
@ -534,13 +526,12 @@ void GCOVProfiler::emitProfileNotes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Line = 0;
|
uint32_t Line = 0;
|
||||||
for (BasicBlock::iterator I = BB->begin(), IE = BB->end();
|
for (auto &I : BB) {
|
||||||
I != IE; ++I) {
|
|
||||||
// Debug intrinsic locations correspond to the location of the
|
// Debug intrinsic locations correspond to the location of the
|
||||||
// declaration, not necessarily any statements or expressions.
|
// declaration, not necessarily any statements or expressions.
|
||||||
if (isa<DbgInfoIntrinsic>(I)) continue;
|
if (isa<DbgInfoIntrinsic>(&I)) continue;
|
||||||
|
|
||||||
const DebugLoc &Loc = I->getDebugLoc();
|
const DebugLoc &Loc = I.getDebugLoc();
|
||||||
if (!Loc)
|
if (!Loc)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -581,16 +572,15 @@ bool GCOVProfiler::emitProfileArcs() {
|
|||||||
bool Result = false;
|
bool Result = false;
|
||||||
bool InsertIndCounterIncrCode = false;
|
bool InsertIndCounterIncrCode = false;
|
||||||
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
||||||
auto *CU = cast<DICompileUnit>(CU_Nodes->getOperand(i));
|
|
||||||
SmallVector<std::pair<GlobalVariable *, MDNode *>, 8> CountersBySP;
|
SmallVector<std::pair<GlobalVariable *, MDNode *>, 8> CountersBySP;
|
||||||
for (auto *SP : CU->getSubprograms()) {
|
for (auto &F : M->functions()) {
|
||||||
Function *F = FnMap[SP];
|
DISubprogram *SP = F.getSubprogram();
|
||||||
if (!F) continue;
|
if (!SP) continue;
|
||||||
if (!functionHasLines(F)) continue;
|
if (!functionHasLines(F)) continue;
|
||||||
if (!Result) Result = true;
|
if (!Result) Result = true;
|
||||||
unsigned Edges = 0;
|
unsigned Edges = 0;
|
||||||
for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) {
|
for (auto &BB : F) {
|
||||||
TerminatorInst *TI = BB->getTerminator();
|
TerminatorInst *TI = BB.getTerminator();
|
||||||
if (isa<ReturnInst>(TI))
|
if (isa<ReturnInst>(TI))
|
||||||
++Edges;
|
++Edges;
|
||||||
else
|
else
|
||||||
@ -610,12 +600,12 @@ bool GCOVProfiler::emitProfileArcs() {
|
|||||||
UniqueVector<BasicBlock *> ComplexEdgeSuccs;
|
UniqueVector<BasicBlock *> ComplexEdgeSuccs;
|
||||||
|
|
||||||
unsigned Edge = 0;
|
unsigned Edge = 0;
|
||||||
for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) {
|
for (auto &BB : F) {
|
||||||
TerminatorInst *TI = BB->getTerminator();
|
TerminatorInst *TI = BB.getTerminator();
|
||||||
int Successors = isa<ReturnInst>(TI) ? 1 : TI->getNumSuccessors();
|
int Successors = isa<ReturnInst>(TI) ? 1 : TI->getNumSuccessors();
|
||||||
if (Successors) {
|
if (Successors) {
|
||||||
if (Successors == 1) {
|
if (Successors == 1) {
|
||||||
IRBuilder<> Builder(&*BB->getFirstInsertionPt());
|
IRBuilder<> Builder(&*BB.getFirstInsertionPt());
|
||||||
Value *Counter = Builder.CreateConstInBoundsGEP2_64(Counters, 0,
|
Value *Counter = Builder.CreateConstInBoundsGEP2_64(Counters, 0,
|
||||||
Edge);
|
Edge);
|
||||||
Value *Count = Builder.CreateLoad(Counter);
|
Value *Count = Builder.CreateLoad(Counter);
|
||||||
@ -635,7 +625,7 @@ bool GCOVProfiler::emitProfileArcs() {
|
|||||||
Count = Builder.CreateAdd(Count, Builder.getInt64(1));
|
Count = Builder.CreateAdd(Count, Builder.getInt64(1));
|
||||||
Builder.CreateStore(Count, Counter);
|
Builder.CreateStore(Count, Counter);
|
||||||
} else {
|
} else {
|
||||||
ComplexEdgePreds.insert(&*BB);
|
ComplexEdgePreds.insert(&BB);
|
||||||
for (int i = 0; i != Successors; ++i)
|
for (int i = 0; i != Successors; ++i)
|
||||||
ComplexEdgeSuccs.insert(TI->getSuccessor(i));
|
ComplexEdgeSuccs.insert(TI->getSuccessor(i));
|
||||||
}
|
}
|
||||||
@ -646,7 +636,7 @@ bool GCOVProfiler::emitProfileArcs() {
|
|||||||
|
|
||||||
if (!ComplexEdgePreds.empty()) {
|
if (!ComplexEdgePreds.empty()) {
|
||||||
GlobalVariable *EdgeTable =
|
GlobalVariable *EdgeTable =
|
||||||
buildEdgeLookupTable(F, Counters,
|
buildEdgeLookupTable(&F, Counters,
|
||||||
ComplexEdgePreds, ComplexEdgeSuccs);
|
ComplexEdgePreds, ComplexEdgeSuccs);
|
||||||
GlobalVariable *EdgeState = getEdgeStateValue();
|
GlobalVariable *EdgeState = getEdgeStateValue();
|
||||||
|
|
||||||
|
@ -172,52 +172,17 @@ void llvm::CloneFunctionInto(Function *NewFunc, const Function *OldFunc,
|
|||||||
TypeMapper, Materializer);
|
TypeMapper, Materializer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the MDNode which corresponds to the subprogram data that described F.
|
|
||||||
static DISubprogram *FindSubprogram(const Function *F,
|
|
||||||
DebugInfoFinder &Finder) {
|
|
||||||
for (DISubprogram *Subprogram : Finder.subprograms()) {
|
|
||||||
if (Subprogram->describes(F))
|
|
||||||
return Subprogram;
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add an operand to an existing MDNode. The new operand will be added at the
|
|
||||||
// back of the operand list.
|
|
||||||
static void AddOperand(DICompileUnit *CU, DISubprogramArray SPs,
|
|
||||||
Metadata *NewSP) {
|
|
||||||
SmallVector<Metadata *, 16> NewSPs;
|
|
||||||
NewSPs.reserve(SPs.size() + 1);
|
|
||||||
for (auto *SP : SPs)
|
|
||||||
NewSPs.push_back(SP);
|
|
||||||
NewSPs.push_back(NewSP);
|
|
||||||
CU->replaceSubprograms(MDTuple::get(CU->getContext(), NewSPs));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clone the module-level debug info associated with OldFunc. The cloned data
|
// Clone the module-level debug info associated with OldFunc. The cloned data
|
||||||
// will point to NewFunc instead.
|
// will point to NewFunc instead.
|
||||||
static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
|
static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
|
||||||
ValueToValueMapTy &VMap) {
|
ValueToValueMapTy &VMap) {
|
||||||
DebugInfoFinder Finder;
|
if (const DISubprogram *OldSP = OldFunc->getSubprogram()) {
|
||||||
Finder.processModule(*OldFunc->getParent());
|
auto *NewSP = cast<DISubprogram>(MapMetadata(OldSP, VMap));
|
||||||
|
// FIXME: There ought to be a better way to do this: ValueMapper
|
||||||
const DISubprogram *OldSubprogramMDNode = FindSubprogram(OldFunc, Finder);
|
// will clone the distinct DICompileUnit. Use the original one
|
||||||
if (!OldSubprogramMDNode) return;
|
// instead.
|
||||||
|
NewSP->replaceUnit(OldSP->getUnit());
|
||||||
auto *NewSubprogram =
|
NewFunc->setSubprogram(NewSP);
|
||||||
cast<DISubprogram>(MapMetadata(OldSubprogramMDNode, VMap));
|
|
||||||
NewFunc->setSubprogram(NewSubprogram);
|
|
||||||
|
|
||||||
for (auto *CU : Finder.compile_units()) {
|
|
||||||
auto Subprograms = CU->getSubprograms();
|
|
||||||
// If the compile unit's function list contains the old function, it should
|
|
||||||
// also contain the new one.
|
|
||||||
for (auto *SP : Subprograms) {
|
|
||||||
if (SP == OldSubprogramMDNode) {
|
|
||||||
AddOperand(CU, Subprograms, NewSubprogram);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,9 +27,9 @@ define i32 @main() nounwind readonly !dbg !1 {
|
|||||||
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
||||||
|
|
||||||
!7 = !{!1}
|
!7 = !{!1}
|
||||||
!6 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: true, emissionKind: FullDebug, file: !8, enums: !9, retainedTypes: !9, subprograms: !7)
|
!6 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: true, emissionKind: FullDebug, file: !8, enums: !9, retainedTypes: !9)
|
||||||
!0 = !DILocalVariable(name: "c", line: 2, scope: !1, file: !2, type: !5)
|
!0 = !DILocalVariable(name: "c", line: 2, scope: !1, file: !2, type: !5)
|
||||||
!1 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !8, scope: !2, type: !3)
|
!1 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !6, scopeLine: 1, file: !8, scope: !2, type: !3)
|
||||||
!2 = !DIFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b")
|
!2 = !DIFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b")
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
!6 = distinct !{}
|
!6 = distinct !{}
|
||||||
!7 = distinct !{}
|
!7 = distinct !{}
|
||||||
|
|
||||||
; CHECK: !8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: true, flags: "-O2", runtimeVersion: 2, splitDebugFilename: "abc.debug", emissionKind: FullDebug, enums: !2, retainedTypes: !3, subprograms: !4, globals: !5, imports: !6, macros: !7, dwoId: 42)
|
; CHECK: !8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: true, flags: "-O2", runtimeVersion: 2, splitDebugFilename: "abc.debug", emissionKind: FullDebug, enums: !2, retainedTypes: !3, globals: !5, imports: !6, macros: !7, dwoId: 42)
|
||||||
!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang",
|
!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang",
|
||||||
isOptimized: true, flags: "-O2", runtimeVersion: 2,
|
isOptimized: true, flags: "-O2", runtimeVersion: 2,
|
||||||
splitDebugFilename: "abc.debug",
|
splitDebugFilename: "abc.debug",
|
||||||
emissionKind: FullDebug,
|
emissionKind: FullDebug,
|
||||||
enums: !2, retainedTypes: !3, subprograms: !4,
|
enums: !2, retainedTypes: !3,
|
||||||
globals: !5, imports: !6, macros: !7, dwoId: 42)
|
globals: !5, imports: !6, macros: !7, dwoId: 42)
|
||||||
|
|
||||||
; CHECK: !9 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: NoDebug)
|
; CHECK: !9 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: NoDebug)
|
||||||
|
@ -1,30 +1,29 @@
|
|||||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1, !2, !3, !3}
|
; CHECK: !named = !{!0, !3, !4, !5, !5}
|
||||||
!named = !{!0, !1, !2, !3, !4}
|
!named = !{!0, !3, !4, !5, !6}
|
||||||
|
|
||||||
!llvm.module.flags = !{!7}
|
!llvm.module.flags = !{!7}
|
||||||
!llvm.dbg.cu = !{!5}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
; CHECK: !0 = distinct !DISubprogram({{.*}})
|
; CHECK: !0 = distinct !DISubprogram({{.*}})
|
||||||
; CHECK-NEXT: !1 = !DICompositeType({{.*}})
|
!0 = distinct !DISubprogram(name: "foo", isDefinition: true, unit: !1)
|
||||||
!0 = distinct !DISubprogram(name: "foo")
|
|
||||||
!1 = !DICompositeType(tag: DW_TAG_structure_type, name: "Class", size: 32, align: 32)
|
|
||||||
|
|
||||||
; CHECK-NEXT: !2 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "foo", scope: !0, entity: !1, line: 7)
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
!2 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "foo", scope: !0,
|
file: !2,
|
||||||
|
isOptimized: true, flags: "-O2",
|
||||||
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
|
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
|
; CHECK: !3 = !DICompositeType({{.*}})
|
||||||
|
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "Class", size: 32, align: 32)
|
||||||
|
|
||||||
|
; CHECK-NEXT: !4 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "foo", scope: !0, entity: !1, line: 7)
|
||||||
|
!4 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "foo", scope: !0,
|
||||||
entity: !1, line: 7)
|
entity: !1, line: 7)
|
||||||
|
|
||||||
; CHECK-NEXT: !3 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0)
|
; CHECK-NEXT: !5 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0)
|
||||||
!3 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0)
|
!5 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0)
|
||||||
!4 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "", scope: !0, entity: null,
|
!6 = !DIImportedEntity(tag: DW_TAG_imported_module, name: "", scope: !0, entity: null,
|
||||||
line: 0)
|
line: 0)
|
||||||
|
|
||||||
!5 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !6,
|
|
||||||
isOptimized: true, flags: "-O2",
|
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
|
||||||
subprograms: !{!0})
|
|
||||||
!6 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
|
||||||
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -1,35 +1,34 @@
|
|||||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1, !2, !3, !4, !4, !5, !6, !7, !7}
|
; CHECK: !named = !{!0, !1, !2, !3, !4, !4, !5, !6, !7, !7, !8}
|
||||||
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
|
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10}
|
||||||
|
|
||||||
!llvm.module.flags = !{!11}
|
!llvm.module.flags = !{!11}
|
||||||
!llvm.dbg.cu = !{!10}
|
!llvm.dbg.cu = !{!0}
|
||||||
|
|
||||||
!0 = distinct !{}
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
!1 = distinct !DISubprogram(name: "foo", scope: !2)
|
file: !1,
|
||||||
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
isOptimized: true, flags: "-O2",
|
||||||
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
|
!1 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
|
!2 = distinct !DISubprogram(name: "foo", scope: !1, unit: !0)
|
||||||
|
|
||||||
; CHECK: !3 = !DILexicalBlock(scope: !1, file: !2, line: 7, column: 35)
|
; CHECK: !3 = !DILexicalBlock(scope: !2, file: !1, line: 7, column: 35)
|
||||||
!3 = !DILexicalBlock(scope: !1, file: !2, line: 7, column: 35)
|
!3 = !DILexicalBlock(scope: !2, file: !1, line: 7, column: 35)
|
||||||
|
|
||||||
; CHECK: !4 = !DILexicalBlock(scope: !1)
|
; CHECK: !4 = !DILexicalBlock(scope: !2)
|
||||||
!4 = !DILexicalBlock(scope: !1)
|
!4 = !DILexicalBlock(scope: !2)
|
||||||
!5 = !DILexicalBlock(scope: !1, file: null, line: 0, column: 0)
|
!5 = !DILexicalBlock(scope: !2, file: null, line: 0, column: 0)
|
||||||
|
|
||||||
; CHECK: !5 = !DILexicalBlockFile(scope: !3, file: !2, discriminator: 0)
|
; CHECK: !5 = !DILexicalBlockFile(scope: !3, file: !1, discriminator: 0)
|
||||||
; CHECK: !6 = !DILexicalBlockFile(scope: !3, file: !2, discriminator: 1)
|
; CHECK: !6 = !DILexicalBlockFile(scope: !3, file: !1, discriminator: 1)
|
||||||
!6 = !DILexicalBlockFile(scope: !3, file: !2, discriminator: 0)
|
!6 = !DILexicalBlockFile(scope: !3, file: !1, discriminator: 0)
|
||||||
!7 = !DILexicalBlockFile(scope: !3, file: !2, discriminator: 1)
|
!7 = !DILexicalBlockFile(scope: !3, file: !1, discriminator: 1)
|
||||||
|
|
||||||
; CHECK: !7 = !DILexicalBlockFile(scope: !3, discriminator: 7)
|
; CHECK: !7 = !DILexicalBlockFile(scope: !3, discriminator: 7)
|
||||||
!8 = !DILexicalBlockFile(scope: !3, discriminator: 7)
|
!8 = !DILexicalBlockFile(scope: !3, discriminator: 7)
|
||||||
!9 = !DILexicalBlockFile(scope: !3, file: null, discriminator: 7)
|
!9 = !DILexicalBlockFile(scope: !3, file: null, discriminator: 7)
|
||||||
|
!10 = distinct !{}
|
||||||
|
|
||||||
!10 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !2,
|
|
||||||
isOptimized: true, flags: "-O2",
|
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
|
||||||
subprograms: !{!1})
|
|
||||||
!11 = !{i32 2, !"Debug Info Version", i32 3}
|
!11 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1}
|
; CHECK: !named = !{!0, !3}
|
||||||
!named = !{!0, !1}
|
!named = !{!0, !3}
|
||||||
|
|
||||||
!llvm.module.flags = !{!4}
|
!llvm.module.flags = !{!4}
|
||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram()
|
!0 = distinct !DISubprogram(unit: !1)
|
||||||
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
; CHECK: !1 = !DILocalVariable(name: "foo", arg: 65535, scope: !0)
|
file: !2,
|
||||||
!1 = !DILocalVariable(name: "foo", arg: 65535, scope: !0)
|
|
||||||
|
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !3,
|
|
||||||
isOptimized: true, flags: "-O2",
|
isOptimized: true, flags: "-O2",
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
subprograms: !{!0})
|
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
!3 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
|
||||||
|
; CHECK: !3 = !DILocalVariable(name: "foo", arg: 65535, scope: !0)
|
||||||
|
!3 = !DILocalVariable(name: "foo", arg: 65535, scope: !0)
|
||||||
|
|
||||||
!4 = !{i32 2, !"Debug Info Version", i32 3}
|
!4 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -3,14 +3,17 @@
|
|||||||
|
|
||||||
@foo = global i32 0
|
@foo = global i32 0
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8}
|
; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
|
||||||
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8}
|
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9}
|
||||||
|
|
||||||
!llvm.module.flags = !{!10}
|
!llvm.module.flags = !{!10}
|
||||||
!llvm.dbg.cu = !{!9}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram()
|
!0 = distinct !DISubprogram(unit: !1)
|
||||||
!1 = distinct !{}
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
|
file: !2,
|
||||||
|
isOptimized: true, flags: "-O2",
|
||||||
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
!3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!4 = !DILocation(scope: !0)
|
!4 = !DILocation(scope: !0)
|
||||||
@ -27,10 +30,6 @@
|
|||||||
; CHECK: !8 = !DILocalVariable(scope: !0)
|
; CHECK: !8 = !DILocalVariable(scope: !0)
|
||||||
!7 = !DILocalVariable(scope: !0, arg: 1)
|
!7 = !DILocalVariable(scope: !0, arg: 1)
|
||||||
!8 = !DILocalVariable(scope: !0)
|
!8 = !DILocalVariable(scope: !0)
|
||||||
|
!9 = distinct !{}
|
||||||
|
|
||||||
!9 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !2,
|
|
||||||
isOptimized: true, flags: "-O2",
|
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
|
||||||
subprograms: !{!0})
|
|
||||||
!10 = !{i32 2, !"Debug Info Version", i32 3}
|
!10 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -1,34 +1,35 @@
|
|||||||
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
|
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
|
||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1, !1, !2, !2, !3, !3, !4}
|
; CHECK: !named = !{!0, !2, !3, !3, !4, !4, !5, !5, !6}
|
||||||
!named = !{!0, !1, !2, !3, !4, !5, !6, !7}
|
!named = !{!0, !2, !3, !4, !5, !6, !7, !8, !9}
|
||||||
|
|
||||||
!llvm.module.flags = !{!10}
|
!llvm.module.flags = !{!10}
|
||||||
!llvm.dbg.cu = !{!8}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
; CHECK: !0 = distinct !DISubprogram(
|
; CHECK: !0 = distinct !DISubprogram(
|
||||||
!0 = distinct !DISubprogram()
|
!0 = distinct !DISubprogram(unit: !1)
|
||||||
|
; CHECK: !1 = distinct !DICompileUnit
|
||||||
; CHECK-NEXT: !1 = !DILocation(line: 3, column: 7, scope: !0)
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
!1 = !DILocation(line: 3, column: 7, scope: !0)
|
file: !2,
|
||||||
!2 = !DILocation(scope: !0, column: 7, line: 3)
|
|
||||||
|
|
||||||
; CHECK-NEXT: !2 = !DILocation(line: 3, column: 7, scope: !0, inlinedAt: !1)
|
|
||||||
!3 = !DILocation(scope: !0, inlinedAt: !1, column: 7, line: 3)
|
|
||||||
!4 = !DILocation(column: 7, line: 3, scope: !0, inlinedAt: !1)
|
|
||||||
|
|
||||||
; CHECK-NEXT: !3 = !DILocation(line: 0, scope: !0)
|
|
||||||
!5 = !DILocation(scope: !0)
|
|
||||||
!6 = !DILocation(scope: !0, column: 0, line: 0)
|
|
||||||
|
|
||||||
; CHECK-NEXT: !4 = !DILocation(line: 4294967295, column: 65535, scope: !0)
|
|
||||||
!7 = !DILocation(line: 4294967295, column: 65535, scope: !0)
|
|
||||||
|
|
||||||
!8 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !9,
|
|
||||||
isOptimized: true, flags: "-O2",
|
isOptimized: true, flags: "-O2",
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
subprograms: !{!0})
|
; CHECK: !2 = !DIFile
|
||||||
!9 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
|
|
||||||
|
; CHECK-NEXT: !3 = !DILocation(line: 3, column: 7, scope: !0)
|
||||||
|
!3 = !DILocation(line: 3, column: 7, scope: !0)
|
||||||
|
!4 = !DILocation(scope: !0, column: 7, line: 3)
|
||||||
|
|
||||||
|
; CHECK-NEXT: !4 = !DILocation(line: 3, column: 7, scope: !0, inlinedAt: !3)
|
||||||
|
!5 = !DILocation(scope: !0, inlinedAt: !3, column: 7, line: 3)
|
||||||
|
!6 = !DILocation(column: 7, line: 3, scope: !0, inlinedAt: !3)
|
||||||
|
|
||||||
|
; CHECK-NEXT: !5 = !DILocation(line: 0, scope: !0)
|
||||||
|
!7 = !DILocation(scope: !0)
|
||||||
|
!8 = !DILocation(scope: !0, column: 0, line: 0)
|
||||||
|
|
||||||
|
; CHECK-NEXT: !6 = !DILocation(line: 4294967295, column: 65535, scope: !0)
|
||||||
|
!9 = !DILocation(line: 4294967295, column: 65535, scope: !0)
|
||||||
|
|
||||||
!10 = !{i32 2, !"Debug Info Version", i32 3}
|
!10 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -6,8 +6,8 @@ define void @_Z3foov() !dbg !9 {
|
|||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11}
|
; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12}
|
||||||
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11}
|
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12}
|
||||||
|
|
||||||
!0 = !{null}
|
!0 = !{null}
|
||||||
!1 = distinct !DICompositeType(tag: DW_TAG_structure_type)
|
!1 = distinct !DICompositeType(tag: DW_TAG_structure_type)
|
||||||
@ -17,44 +17,50 @@ define void @_Z3foov() !dbg !9 {
|
|||||||
!5 = distinct !{}
|
!5 = distinct !{}
|
||||||
!6 = distinct !{}
|
!6 = distinct !{}
|
||||||
|
|
||||||
; CHECK: !7 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
|
; CHECK: !7 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !8)
|
||||||
!7 = distinct !DISubprogram()
|
!7 = distinct !DISubprogram(unit: !8)
|
||||||
|
|
||||||
; CHECK: !8 = !DISubprogram(scope: null, isLocal: false, isDefinition: false, isOptimized: false)
|
!8 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
!8 = !DISubprogram(isDefinition: false)
|
|
||||||
|
|
||||||
; CHECK: !9 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1, file: !2, line: 7, type: !3, isLocal: true, isDefinition: true, scopeLine: 8, containingType: !4, virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10, flags: DIFlagPrototyped, isOptimized: true, templateParams: !5, declaration: !8, variables: !6)
|
|
||||||
!9 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
|
||||||
file: !2, line: 7, type: !3, isLocal: true,
|
|
||||||
isDefinition: true, scopeLine: 8, containingType: !4,
|
|
||||||
virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10,
|
|
||||||
flags: DIFlagPrototyped, isOptimized: true,
|
|
||||||
templateParams: !5, declaration: !8, variables: !6)
|
|
||||||
|
|
||||||
; CHECK: !10 = distinct !DISubprogram
|
|
||||||
; CHECK-SAME: virtualIndex: 0,
|
|
||||||
!10 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
|
||||||
file: !2, line: 7, type: !3, isLocal: true,
|
|
||||||
isDefinition: true, scopeLine: 8, containingType: !4,
|
|
||||||
virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 0,
|
|
||||||
flags: DIFlagPrototyped, isOptimized: true,
|
|
||||||
templateParams: !5, declaration: !8, variables: !6)
|
|
||||||
|
|
||||||
; CHECK: !11 = distinct !DISubprogram
|
|
||||||
; CHECK-NOT: virtualIndex
|
|
||||||
!11 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
|
||||||
file: !2, line: 7, type: !3, isLocal: true,
|
|
||||||
isDefinition: true, scopeLine: 8, containingType: !4,
|
|
||||||
virtuality: DW_VIRTUALITY_none,
|
|
||||||
flags: DIFlagPrototyped, isOptimized: true,
|
|
||||||
templateParams: !5, declaration: !8, variables: !6)
|
|
||||||
|
|
||||||
!12 = !{i32 1, !"Debug Info Version", i32 3}
|
|
||||||
!llvm.module.flags = !{!12}
|
|
||||||
!llvm.dbg.cu = !{!13}
|
|
||||||
|
|
||||||
!13 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
|
||||||
file: !2,
|
file: !2,
|
||||||
isOptimized: true, flags: "-O2",
|
isOptimized: true, flags: "-O2",
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
subprograms: !{!7, !9, !10, !11})
|
|
||||||
|
; CHECK: !9 = !DISubprogram(scope: null, isLocal: false, isDefinition: false, isOptimized: false)
|
||||||
|
!9 = !DISubprogram(isDefinition: false)
|
||||||
|
|
||||||
|
; CHECK: !10 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1, file: !2, line: 7, type: !3, isLocal: true, isDefinition: true, scopeLine: 8, containingType: !4, virtuality: DW_VIRTUALITY_pure_virtual, virtualIndex: 10, flags: DIFlagPrototyped, isOptimized: true, unit: !8, templateParams: !5, declaration: !9, variables: !6)
|
||||||
|
!10 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
||||||
|
file: !2, line: 7, type: !3, isLocal: true,
|
||||||
|
isDefinition: true, scopeLine: 8,
|
||||||
|
containingType: !4,
|
||||||
|
virtuality: DW_VIRTUALITY_pure_virtual,
|
||||||
|
virtualIndex: 10, flags: DIFlagPrototyped,
|
||||||
|
isOptimized: true, unit: !8, templateParams: !5,
|
||||||
|
declaration: !9, variables: !6)
|
||||||
|
|
||||||
|
; CHECK: !11 = distinct !DISubprogram
|
||||||
|
; CHECK-SAME: virtualIndex: 0,
|
||||||
|
!11 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
||||||
|
file: !2, line: 7, type: !3, isLocal: true,
|
||||||
|
isDefinition: true, scopeLine: 8,
|
||||||
|
containingType: !4,
|
||||||
|
virtuality: DW_VIRTUALITY_pure_virtual,
|
||||||
|
virtualIndex: 0,
|
||||||
|
flags: DIFlagPrototyped, isOptimized: true,
|
||||||
|
unit: !8, templateParams: !5, declaration: !9,
|
||||||
|
variables: !6)
|
||||||
|
|
||||||
|
; CHECK: !12 = distinct !DISubprogram
|
||||||
|
; CHECK-NOT: virtualIndex
|
||||||
|
!12 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
|
||||||
|
file: !2, line: 7, type: !3, isLocal: true,
|
||||||
|
isDefinition: true, scopeLine: 8,
|
||||||
|
containingType: !4,
|
||||||
|
virtuality: DW_VIRTUALITY_none,
|
||||||
|
flags: DIFlagPrototyped, isOptimized: true,
|
||||||
|
unit: !8,
|
||||||
|
templateParams: !5, declaration: !9, variables: !6)
|
||||||
|
|
||||||
|
!13 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
!llvm.module.flags = !{!13}
|
||||||
|
!llvm.dbg.cu = !{!8}
|
||||||
|
@ -12,11 +12,10 @@ entry:
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!9}
|
!llvm.module.flags = !{!9}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release")
|
!1 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release")
|
||||||
!2 = !{i32 0}
|
!2 = !{i32 0}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "main", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 3, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "main", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 3, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release")
|
!5 = !DIFile(filename: "../llvm/tools/clang/test/CodeGen/debug-info-version.c", directory: "/Users/manmanren/llvm_gmail/release")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8}
|
!7 = !{!8}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
; RUN: verify-uselistorder %s
|
; RUN: verify-uselistorder %s
|
||||||
|
|
||||||
; CHECK-LABEL: @test
|
; CHECK-LABEL: @test
|
||||||
; CHECK: ret void, !bar !4, !foo !5
|
; CHECK: ret void, !bar !4, !foo !3
|
||||||
define void @test() {
|
define void @test() !dbg !1 {
|
||||||
add i32 2, 1, !bar !0
|
add i32 2, 1, !bar !0
|
||||||
add i32 1, 2, !foo !1
|
add i32 1, 2, !foo !1
|
||||||
call void @llvm.dbg.func.start(metadata !"foo")
|
call void @llvm.dbg.func.start(metadata !"foo")
|
||||||
@ -11,19 +11,19 @@ define void @test() {
|
|||||||
ret void, !foo !0, !bar !1
|
ret void, !foo !0, !bar !1
|
||||||
}
|
}
|
||||||
|
|
||||||
; CHECK-LABEL: define void @test2() !foo !6 !baz !7
|
; CHECK-LABEL: define void @test2() !foo !5 !baz !6
|
||||||
define void @test2() !foo !2 !baz !3 {
|
define void @test2() !foo !2 !baz !3 {
|
||||||
unreachable
|
unreachable
|
||||||
}
|
}
|
||||||
|
|
||||||
; CHECK-LABEL: define void @test3() !bar !7
|
; CHECK-LABEL: define void @test3() !bar !6
|
||||||
; CHECK: unreachable, !bar !8
|
; CHECK: unreachable, !bar !7
|
||||||
define void @test3() !bar !3 {
|
define void @test3() !bar !3 {
|
||||||
unreachable, !bar !4
|
unreachable, !bar !4
|
||||||
}
|
}
|
||||||
|
|
||||||
; CHECK-LABEL: define void @test_attachment_name() {
|
; CHECK-LABEL: define void @test_attachment_name() {
|
||||||
; CHECK: unreachable, !\342abc !8
|
; CHECK: unreachable, !\342abc !7
|
||||||
define void @test_attachment_name() {
|
define void @test_attachment_name() {
|
||||||
;; Escape the first character when printing text IR, since it's a digit
|
;; Escape the first character when printing text IR, since it's a digit
|
||||||
unreachable, !\34\32abc !4
|
unreachable, !\34\32abc !4
|
||||||
@ -32,15 +32,14 @@ define void @test_attachment_name() {
|
|||||||
!llvm.module.flags = !{!7}
|
!llvm.module.flags = !{!7}
|
||||||
!llvm.dbg.cu = !{!5}
|
!llvm.dbg.cu = !{!5}
|
||||||
!0 = !DILocation(line: 662302, column: 26, scope: !1)
|
!0 = !DILocation(line: 662302, column: 26, scope: !1)
|
||||||
!1 = distinct !DISubprogram(name: "foo")
|
!1 = distinct !DISubprogram(name: "foo", isDefinition: true, unit: !5)
|
||||||
!2 = distinct !{}
|
!2 = distinct !{}
|
||||||
!3 = distinct !{}
|
!3 = distinct !{}
|
||||||
!4 = distinct !{}
|
!4 = distinct !{}
|
||||||
!5 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
!5 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
|
||||||
file: !6,
|
file: !6,
|
||||||
isOptimized: true, flags: "-O2",
|
isOptimized: true, flags: "-O2",
|
||||||
splitDebugFilename: "abc.debug", emissionKind: 2,
|
splitDebugFilename: "abc.debug", emissionKind: 2)
|
||||||
subprograms: !{!1})
|
|
||||||
!6 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
!6 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
; RUN: llvm-dis < %s.bc | FileCheck %s
|
; RUN: llvm-dis < %s.bc | FileCheck %s
|
||||||
; Check that subprogram definitions are correctly upgraded to 'distinct'.
|
; Check that subprogram definitions are correctly upgraded to 'distinct'.
|
||||||
; Bitcode compiled from r245235 of the 3.7 release branch.
|
; Bitcode compiled with llvm-as version 3.7.
|
||||||
|
|
||||||
!named = !{!0}
|
define void @f() !dbg !3 { ret void }
|
||||||
!0 = distinct !DICompileUnit(language: 12, file: !1, subprograms: !2)
|
|
||||||
|
!llvm.module.flags = !{!4}
|
||||||
|
!llvm.dbg.cu = !{!0}
|
||||||
|
!0 = distinct !DICompileUnit(language: 12, file: !1, subprograms: !{!3})
|
||||||
!1 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
!1 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
|
||||||
!2 = !{!3}
|
|
||||||
|
|
||||||
; CHECK: = distinct !DISubprogram({{.*}}, isDefinition: true
|
; CHECK: = distinct !DISubprogram({{.*}}, isDefinition: true
|
||||||
!3 = !DISubprogram(name: "foo", isDefinition: true)
|
!3 = !DISubprogram(name: "foo", isDefinition: true)
|
||||||
|
!4 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
Binary file not shown.
@ -30,8 +30,7 @@ entry:
|
|||||||
!llvm.dbg.cu = !{!1}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !DIFile(filename: "f", directory: "/d"),
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !DIFile(filename: "f", directory: "/d"))
|
||||||
subprograms: !{!2})
|
!2 = distinct !DISubprogram(name: "foo", unit: !1)
|
||||||
!2 = distinct !DISubprogram(name: "foo")
|
|
||||||
!3 = !DILocation(line: 1, scope: !2)
|
!3 = !DILocation(line: 1, scope: !2)
|
||||||
!4 = !DILocation(line: 2, scope: !2)
|
!4 = !DILocation(line: 2, scope: !2)
|
||||||
|
@ -10,7 +10,7 @@ define void @foo() {
|
|||||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
|
||||||
!llvm.dbg.cu = !{!1}
|
!llvm.dbg.cu = !{!1}
|
||||||
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, subprograms: !{!3}, emissionKind: FullDebug)
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, emissionKind: FullDebug)
|
||||||
!2 = !DIFile(filename: "foo.c", directory: "/path/to/dir")
|
!2 = !DIFile(filename: "foo.c", directory: "/path/to/dir")
|
||||||
; CHECK: [[SP]] = distinct !DISubprogram
|
; CHECK: [[SP]] = distinct !DISubprogram
|
||||||
!3 = distinct !DISubprogram(file: !2, scope: !2, line: 51, name: "foo", function: void ()* @foo, type: !4)
|
!3 = distinct !DISubprogram(file: !2, scope: !2, line: 51, name: "foo", function: void ()* @foo, type: !4)
|
||||||
|
@ -31,8 +31,8 @@ declare void @foo()
|
|||||||
!3 = !{!"noise"}
|
!3 = !{!"noise"}
|
||||||
!4 = !{!"filler"}
|
!4 = !{!"filler"}
|
||||||
|
|
||||||
!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !15, subprograms: !{!9})
|
!8 = distinct !DICompileUnit(language: DW_LANG_C99, file: !15)
|
||||||
!9 = distinct !DISubprogram(name: "test", file: !15)
|
!9 = distinct !DISubprogram(name: "test", file: !15, unit: !8)
|
||||||
!10 = !DILocation(line: 100, column: 101, scope: !9)
|
!10 = !DILocation(line: 100, column: 101, scope: !9)
|
||||||
!11 = !DILocation(line: 102, column: 103, scope: !9)
|
!11 = !DILocation(line: 102, column: 103, scope: !9)
|
||||||
!12 = !DILocation(line: 104, column: 105, scope: !9)
|
!12 = !DILocation(line: 104, column: 105, scope: !9)
|
||||||
|
@ -44,11 +44,10 @@ attributes #1 = { nounwind readnone }
|
|||||||
!llvm.module.flags = !{!36, !37}
|
!llvm.module.flags = !{!36, !37}
|
||||||
!llvm.ident = !{!38}
|
!llvm.ident = !{!38}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.6.0 ", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.6.0 ", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.c", directory: "")
|
!1 = !DIFile(filename: "test.c", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "", line: 140, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 141, file: !1, scope: !1, type: !6, variables: !12)
|
||||||
!4 = distinct !DISubprogram(name: "", line: 140, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 141, file: !1, scope: !1, type: !6, variables: !12)
|
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null, !8}
|
!7 = !{null, !8}
|
||||||
!8 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !9)
|
!8 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !9)
|
||||||
|
@ -21,18 +21,18 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
|
|
||||||
!0 = !DIGlobalVariable(name: "vsplive", line: 617, isLocal: true, isDefinition: true, scope: !1, file: !2, type: !6)
|
!0 = !DIGlobalVariable(name: "vsplive", line: 617, isLocal: true, isDefinition: true, scope: !1, file: !2, type: !6)
|
||||||
!1 = distinct !DISubprogram(name: "drt_vsprintf", line: 616, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !20, scope: !2, type: !4)
|
!1 = distinct !DISubprogram(name: "drt_vsprintf", line: 616, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !3, file: !20, scope: !2, type: !4)
|
||||||
!2 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
|
!2 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)", isOptimized: true, emissionKind: FullDebug, file: !20, subprograms: !22, enums: !21, retainedTypes: !21, globals: !{!0})
|
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)", isOptimized: true, emissionKind: FullDebug, file: !20, enums: !21, retainedTypes: !21, globals: !{!0})
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{!6}
|
!5 = !{!6}
|
||||||
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!7 = distinct !DISubprogram(name: "putc_mem", line: 30, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !20, scope: !2, type: !8)
|
!7 = distinct !DISubprogram(name: "putc_mem", line: 30, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !3, file: !20, scope: !2, type: !8)
|
||||||
!8 = !DISubroutineType(types: !9)
|
!8 = !DISubroutineType(types: !9)
|
||||||
!9 = !{null}
|
!9 = !{null}
|
||||||
!10 = distinct !DISubprogram(name: "print_double", line: 203, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !20, scope: !2, type: !4)
|
!10 = distinct !DISubprogram(name: "print_double", line: 203, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !3, file: !20, scope: !2, type: !4)
|
||||||
!11 = distinct !DISubprogram(name: "print_number", line: 75, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !20, scope: !2, type: !4)
|
!11 = distinct !DISubprogram(name: "print_number", line: 75, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !3, file: !20, scope: !2, type: !4)
|
||||||
!12 = distinct !DISubprogram(name: "get_flags", line: 508, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !20, scope: !2, type: !8)
|
!12 = distinct !DISubprogram(name: "get_flags", line: 508, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !3, file: !20, scope: !2, type: !8)
|
||||||
!13 = !DILocation(line: 653, column: 5, scope: !14)
|
!13 = !DILocation(line: 653, column: 5, scope: !14)
|
||||||
!14 = distinct !DILexicalBlock(line: 652, column: 35, file: !20, scope: !15)
|
!14 = distinct !DILexicalBlock(line: 652, column: 35, file: !20, scope: !15)
|
||||||
!15 = distinct !DILexicalBlock(line: 616, column: 1, file: !20, scope: !1)
|
!15 = distinct !DILexicalBlock(line: 616, column: 1, file: !20, scope: !1)
|
||||||
@ -42,4 +42,3 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
|||||||
!19 = !DILocation(line: 853, column: 29, scope: !17)
|
!19 = !DILocation(line: 853, column: 29, scope: !17)
|
||||||
!20 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
|
!20 = !DIFile(filename: "print.i", directory: "/Volumes/Ebi/echeng/radars/r9146594")
|
||||||
!21 = !{i32 0}
|
!21 = !{i32 0}
|
||||||
!22 = !{!1, !7, !10, !11, !12}
|
|
||||||
|
@ -20,11 +20,10 @@ attributes #1 = { nounwind readnone }
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!11, !12}
|
!llvm.module.flags = !{!11, !12}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (trunk 244715) (llvm/trunk 244718)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (trunk 244715) (llvm/trunk 244718)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
||||||
!1 = !DIFile(filename: "/tmp/test_debug_value.cl", directory: "/Users/matt/src/llvm/build_debug")
|
!1 = !DIFile(filename: "/tmp/test_debug_value.cl", directory: "/Users/matt/src/llvm/build_debug")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test_debug_value", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !9)
|
||||||
!4 = distinct !DISubprogram(name: "test_debug_value", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, variables: !9)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{null, !7}
|
!6 = !{null, !7}
|
||||||
!7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 32)
|
!7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 32)
|
||||||
|
@ -25,7 +25,7 @@ declare i32 @foo(i32) ssp
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!0 = !DILocation(line: 5, column: 2, scope: !1)
|
!0 = !DILocation(line: 5, column: 2, scope: !1)
|
||||||
!1 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !2)
|
!1 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !2)
|
||||||
!2 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scope: !3)
|
!2 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scope: !3)
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 1.1", isOptimized: true, emissionKind: FullDebug, file: !8, retainedTypes: !9)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 1.1", isOptimized: true, emissionKind: FullDebug, file: !8, retainedTypes: !9)
|
||||||
!4 = !DILocalVariable(name: "count_", line: 5, scope: !5, file: !3, type: !6)
|
!4 = !DILocalVariable(name: "count_", line: 5, scope: !5, file: !3, type: !6)
|
||||||
!5 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !1)
|
!5 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !1)
|
||||||
|
@ -15,10 +15,10 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!3}
|
!llvm.dbg.cu = !{!3}
|
||||||
!llvm.module.flags = !{!15}
|
!llvm.module.flags = !{!15}
|
||||||
!0 = !DILocalVariable(name: "b", line: 93, arg: 2, scope: !1, file: !2, type: !6)
|
!0 = !DILocalVariable(name: "b", line: 93, arg: 2, scope: !1, file: !2, type: !6)
|
||||||
!1 = distinct !DISubprogram(name: "__addvsi3", linkageName: "__addvsi3", line: 94, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !12, scope: null, type: !4)
|
!1 = distinct !DISubprogram(name: "__addvsi3", linkageName: "__addvsi3", line: 94, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, file: !12, scope: null, type: !4)
|
||||||
!2 = !DIFile(filename: "libgcc2.c", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc")
|
!2 = !DIFile(filename: "libgcc2.c", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc")
|
||||||
!12 = !DIFile(filename: "libgcc2.c", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc")
|
!12 = !DIFile(filename: "libgcc2.c", directory: "/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !12, enums: !13, retainedTypes: !13, subprograms: !14)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !12, enums: !13, retainedTypes: !13)
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{!6, !6, !6}
|
!5 = !{!6, !6, !6}
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_typedef, name: "SItype", line: 152, file: !12, baseType: !8)
|
!6 = !DIDerivedType(tag: DW_TAG_typedef, name: "SItype", line: 152, file: !12, baseType: !8)
|
||||||
@ -28,5 +28,4 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!10 = distinct !DILexicalBlock(line: 94, column: 0, file: !12, scope: !1)
|
!10 = distinct !DILexicalBlock(line: 94, column: 0, file: !12, scope: !1)
|
||||||
!11 = !DILocation(line: 100, scope: !10)
|
!11 = !DILocation(line: 100, scope: !10)
|
||||||
!13 = !{}
|
!13 = !{}
|
||||||
!14 = !{!1}
|
|
||||||
!15 = !{i32 1, !"Debug Info Version", i32 3}
|
!15 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -47,9 +47,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!3}
|
!llvm.dbg.cu = !{!3}
|
||||||
|
|
||||||
!0 = !DILocalVariable(name: "buf", line: 4, arg: 1, scope: !1, file: !2, type: !6)
|
!0 = !DILocalVariable(name: "buf", line: 4, arg: 1, scope: !1, file: !2, type: !6)
|
||||||
!1 = distinct !DISubprogram(name: "x0", linkageName: "x0", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !26, scope: null, type: !4)
|
!1 = distinct !DISubprogram(name: "x0", linkageName: "x0", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, file: !26, scope: null, type: !4)
|
||||||
!2 = !DIFile(filename: "t.c", directory: "/private/tmp")
|
!2 = !DIFile(filename: "t.c", directory: "/private/tmp")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 2.0", isOptimized: true, file: !26, subprograms: !{!0, !8, !10, !12}, globals: !{!14})
|
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 2.0", isOptimized: true, file: !26, globals: !{!14})
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{null}
|
!5 = !{null}
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !26, scope: !2, baseType: !7)
|
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !26, scope: !2, baseType: !7)
|
||||||
|
@ -83,7 +83,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!0 = !DISubprogram(name: "SVal", line: 11, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !48, scope: !1, type: !14)
|
!0 = !DISubprogram(name: "SVal", line: 11, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !48, scope: !1, type: !14)
|
||||||
!1 = !DICompositeType(tag: DW_TAG_structure_type, name: "SVal", line: 1, size: 64, align: 64, file: !48, elements: !4)
|
!1 = !DICompositeType(tag: DW_TAG_structure_type, name: "SVal", line: 1, size: 64, align: 64, file: !48, elements: !4)
|
||||||
!2 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
!2 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !48, enums: !47, retainedTypes: !47, subprograms: !46, globals: !47, imports: !47)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !48, enums: !47, retainedTypes: !47, globals: !47, imports: !47)
|
||||||
!4 = !{!5, !7, !0, !9}
|
!4 = !{!5, !7, !0, !9}
|
||||||
!5 = !DIDerivedType(tag: DW_TAG_member, name: "Data", line: 7, size: 64, align: 64, file: !48, scope: !1, baseType: !6)
|
!5 = !DIDerivedType(tag: DW_TAG_member, name: "Data", line: 7, size: 64, align: 64, file: !48, scope: !1, baseType: !6)
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !48, baseType: null)
|
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !48, baseType: null)
|
||||||
@ -96,11 +96,11 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!14 = !DISubroutineType(types: !15)
|
!14 = !DISubroutineType(types: !15)
|
||||||
!15 = !{null, !12}
|
!15 = !{null, !12}
|
||||||
!16 = distinct !DISubprogram(name: "SVal", linkageName: "_ZN4SValC1Ev", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !48, scope: !1, type: !14)
|
!16 = distinct !DISubprogram(name: "SVal", linkageName: "_ZN4SValC1Ev", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, file: !48, scope: !1, type: !14)
|
||||||
!17 = distinct !DISubprogram(name: "foo", linkageName: "_Z3fooi4SVal", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !48, scope: !2, type: !18)
|
!17 = distinct !DISubprogram(name: "foo", linkageName: "_Z3fooi4SVal", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, file: !48, scope: !2, type: !18)
|
||||||
!18 = !DISubroutineType(types: !19)
|
!18 = !DISubroutineType(types: !19)
|
||||||
!19 = !{!13, !13, !1}
|
!19 = !{!13, !13, !1}
|
||||||
!20 = distinct !DISubprogram(name: "main", linkageName: "main", line: 23, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !48, scope: !2, type: !21)
|
!20 = distinct !DISubprogram(name: "main", linkageName: "main", line: 23, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, file: !48, scope: !2, type: !21)
|
||||||
!21 = !DISubroutineType(types: !22)
|
!21 = !DISubroutineType(types: !22)
|
||||||
!22 = !{!13}
|
!22 = !{!13}
|
||||||
!23 = !DILocalVariable(name: "i", line: 16, arg: 1, scope: !17, file: !2, type: !13)
|
!23 = !DILocalVariable(name: "i", line: 16, arg: 1, scope: !17, file: !2, type: !13)
|
||||||
@ -126,7 +126,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!43 = !DILocation(line: 26, scope: !39)
|
!43 = !DILocation(line: 26, scope: !39)
|
||||||
!44 = !DILocalVariable(name: "k", line: 26, scope: !39, file: !2, type: !13)
|
!44 = !DILocalVariable(name: "k", line: 26, scope: !39, file: !2, type: !13)
|
||||||
!45 = !DILocation(line: 27, scope: !39)
|
!45 = !DILocation(line: 27, scope: !39)
|
||||||
!46 = !{!16, !17, !20}
|
|
||||||
!47 = !{}
|
!47 = !{}
|
||||||
!48 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
!48 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
||||||
!49 = !{i32 1, !"Debug Info Version", i32 3}
|
!49 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -78,16 +78,16 @@ entry:
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!49}
|
!llvm.module.flags = !{!49}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "get1", linkageName: "get1", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 4, file: !47, scope: !1, type: !3, variables: !42)
|
!0 = distinct !DISubprogram(name: "get1", linkageName: "get1", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 4, file: !47, scope: !1, type: !3, variables: !42)
|
||||||
!1 = !DIFile(filename: "foo.c", directory: "/tmp/")
|
!1 = !DIFile(filename: "foo.c", directory: "/tmp/")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)", isOptimized: true, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, subprograms: !40, globals: !41, imports: !48)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)", isOptimized: true, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, globals: !41, imports: !48)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5, !5}
|
!4 = !{!5, !5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "_Bool", size: 8, align: 8, encoding: DW_ATE_boolean)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "_Bool", size: 8, align: 8, encoding: DW_ATE_boolean)
|
||||||
!6 = distinct !DISubprogram(name: "get2", linkageName: "get2", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 7, file: !47, scope: !1, type: !3, variables: !43)
|
!6 = distinct !DISubprogram(name: "get2", linkageName: "get2", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 7, file: !47, scope: !1, type: !3, variables: !43)
|
||||||
!7 = distinct !DISubprogram(name: "get3", linkageName: "get3", line: 10, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 10, file: !47, scope: !1, type: !3, variables: !44)
|
!7 = distinct !DISubprogram(name: "get3", linkageName: "get3", line: 10, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 10, file: !47, scope: !1, type: !3, variables: !44)
|
||||||
!8 = distinct !DISubprogram(name: "get4", linkageName: "get4", line: 13, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 13, file: !47, scope: !1, type: !3, variables: !45)
|
!8 = distinct !DISubprogram(name: "get4", linkageName: "get4", line: 13, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 13, file: !47, scope: !1, type: !3, variables: !45)
|
||||||
!9 = distinct !DISubprogram(name: "get5", linkageName: "get5", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 16, file: !47, scope: !1, type: !3, variables: !46)
|
!9 = distinct !DISubprogram(name: "get5", linkageName: "get5", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 16, file: !47, scope: !1, type: !3, variables: !46)
|
||||||
!10 = !DILocalVariable(name: "a", line: 4, arg: 1, scope: !0, file: !1, type: !5)
|
!10 = !DILocalVariable(name: "a", line: 4, arg: 1, scope: !0, file: !1, type: !5)
|
||||||
!11 = !DILocalVariable(name: "b", line: 4, scope: !12, file: !1, type: !5)
|
!11 = !DILocalVariable(name: "b", line: 4, scope: !12, file: !1, type: !5)
|
||||||
!12 = distinct !DILexicalBlock(line: 4, column: 0, file: !47, scope: !0)
|
!12 = distinct !DILexicalBlock(line: 4, column: 0, file: !47, scope: !0)
|
||||||
@ -118,7 +118,6 @@ entry:
|
|||||||
!37 = !DILocation(line: 13, scope: !26)
|
!37 = !DILocation(line: 13, scope: !26)
|
||||||
!38 = !DILocation(line: 16, scope: !9)
|
!38 = !DILocation(line: 16, scope: !9)
|
||||||
!39 = !DILocation(line: 16, scope: !29)
|
!39 = !DILocation(line: 16, scope: !29)
|
||||||
!40 = !{!0, !6, !7, !8, !9}
|
|
||||||
!41 = !{!13, !14, !15, !16, !17}
|
!41 = !{!13, !14, !15, !16, !17}
|
||||||
!42 = !{!10, !11}
|
!42 = !{!10, !11}
|
||||||
!43 = !{!18, !19}
|
!43 = !{!18, !19}
|
||||||
|
@ -73,16 +73,16 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!49}
|
!llvm.module.flags = !{!49}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang", isOptimized: true, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, subprograms: !40, globals: !41, imports: !48)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang", isOptimized: true, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, globals: !41, imports: !48)
|
||||||
!1 = distinct !DISubprogram(name: "get1", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 5, file: !47, scope: !2, type: !3, variables: !42)
|
!1 = distinct !DISubprogram(name: "get1", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 5, file: !47, scope: !2, type: !3, variables: !42)
|
||||||
!2 = !DIFile(filename: "ss3.c", directory: "/private/tmp")
|
!2 = !DIFile(filename: "ss3.c", directory: "/private/tmp")
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!6 = distinct !DISubprogram(name: "get2", line: 8, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 8, file: !47, scope: !2, type: !3, variables: !43)
|
!6 = distinct !DISubprogram(name: "get2", line: 8, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 8, file: !47, scope: !2, type: !3, variables: !43)
|
||||||
!7 = distinct !DISubprogram(name: "get3", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 11, file: !47, scope: !2, type: !3, variables: !44)
|
!7 = distinct !DISubprogram(name: "get3", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 11, file: !47, scope: !2, type: !3, variables: !44)
|
||||||
!8 = distinct !DISubprogram(name: "get4", line: 14, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 14, file: !47, scope: !2, type: !3, variables: !45)
|
!8 = distinct !DISubprogram(name: "get4", line: 14, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 14, file: !47, scope: !2, type: !3, variables: !45)
|
||||||
!9 = distinct !DISubprogram(name: "get5", line: 17, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 17, file: !47, scope: !2, type: !3, variables: !46)
|
!9 = distinct !DISubprogram(name: "get5", line: 17, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 17, file: !47, scope: !2, type: !3, variables: !46)
|
||||||
!10 = !DILocalVariable(name: "a", line: 5, arg: 1, scope: !1, file: !2, type: !5)
|
!10 = !DILocalVariable(name: "a", line: 5, arg: 1, scope: !1, file: !2, type: !5)
|
||||||
!11 = !DILocalVariable(name: "b", line: 5, scope: !12, file: !2, type: !5)
|
!11 = !DILocalVariable(name: "b", line: 5, scope: !12, file: !2, type: !5)
|
||||||
!12 = distinct !DILexicalBlock(line: 5, column: 19, file: !47, scope: !1)
|
!12 = distinct !DILexicalBlock(line: 5, column: 19, file: !47, scope: !1)
|
||||||
@ -110,7 +110,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!37 = !DILocation(line: 14, column: 32, scope: !21)
|
!37 = !DILocation(line: 14, column: 32, scope: !21)
|
||||||
!38 = !DILocation(line: 17, column: 16, scope: !9)
|
!38 = !DILocation(line: 17, column: 16, scope: !9)
|
||||||
!39 = !DILocation(line: 17, column: 32, scope: !29)
|
!39 = !DILocation(line: 17, column: 32, scope: !29)
|
||||||
!40 = !{!1, !6, !7, !8, !9}
|
|
||||||
!41 = !{!25, !26}
|
!41 = !{!25, !26}
|
||||||
!42 = !{!10, !11}
|
!42 = !{!10, !11}
|
||||||
!43 = !{!13, !14}
|
!43 = !{!13, !14}
|
||||||
|
@ -677,7 +677,7 @@ bb13: ; preds = %bb3, %bb
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!3}
|
!llvm.module.flags = !{!3}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "LLVM", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "LLVM", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "a.cpp", directory: "b")
|
!1 = !DIFile(filename: "a.cpp", directory: "b")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{i32 2, !"Debug Info Version", i32 3}
|
!3 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -79,11 +79,10 @@ attributes #3 = { nounwind }
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!33}
|
!llvm.module.flags = !{!33}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (trunk 182024) (llvm/trunk 182023)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !15, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (trunk 182024) (llvm/trunk 182023)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !15, imports: !2)
|
||||||
!1 = !DIFile(filename: "pr16110.c", directory: "/d/b")
|
!1 = !DIFile(filename: "pr16110.c", directory: "/d/b")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "pr16110", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !0, scopeLine: 7, file: !1, scope: !5, type: !6, variables: !9)
|
||||||
!4 = distinct !DISubprogram(name: "pr16110", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 7, file: !1, scope: !5, type: !6, variables: !9)
|
|
||||||
!5 = !DIFile(filename: "pr16110.c", directory: "/d/b")
|
!5 = !DIFile(filename: "pr16110.c", directory: "/d/b")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8}
|
!7 = !{!8}
|
||||||
|
@ -25,11 +25,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "var.c", directory: "/tmp")
|
!1 = !DIFile(filename: "var.c", directory: "/tmp")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "sum", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "sum", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "var.c", directory: "/tmp")
|
!5 = !DIFile(filename: "var.c", directory: "/tmp")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
|
@ -125,11 +125,10 @@ declare void @_ZSt9terminatev()
|
|||||||
!llvm.module.flags = !{!10, !11}
|
!llvm.module.flags = !{!10, !11}
|
||||||
!llvm.ident = !{!12}
|
!llvm.ident = !{!12}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "exp.cpp", directory: "/tmp")
|
!1 = !DIFile(filename: "exp.cpp", directory: "/tmp")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", linkageName: "_Z4testiiiiiddddd", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", linkageName: "_Z4testiiiiiddddd", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "exp.cpp", directory: "/tmp")
|
!5 = !DIFile(filename: "exp.cpp", directory: "/tmp")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null, !8, !8, !8, !8, !8, !9, !9, !9, !9, !9}
|
!7 = !{null, !8, !8, !8, !8, !8, !9, !9, !9, !9, !9}
|
||||||
|
@ -32,8 +32,8 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!33}
|
!llvm.module.flags = !{!33}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", isOptimized: true, emissionKind: FullDebug, file: !32, enums: !{}, retainedTypes: !{}, subprograms: !30, imports: null)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", isOptimized: true, emissionKind: FullDebug, file: !32, enums: !{}, retainedTypes: !{}, imports: null)
|
||||||
!1 = distinct !DISubprogram(name: "foo", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 11, file: !2, scope: !2, type: !3, variables: !31)
|
!1 = distinct !DISubprogram(name: "foo", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 11, file: !2, scope: !2, type: !3, variables: !31)
|
||||||
!2 = !DIFile(filename: "one.c", directory: "/Volumes/Athwagate/R10048772")
|
!2 = !DIFile(filename: "one.c", directory: "/Volumes/Athwagate/R10048772")
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{null}
|
!4 = !{null}
|
||||||
@ -62,7 +62,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!27 = distinct !DILexicalBlock(line: 11, column: 107, file: !2, scope: !1)
|
!27 = distinct !DILexicalBlock(line: 11, column: 107, file: !2, scope: !1)
|
||||||
!28 = !DILocation(line: 13, column: 5, scope: !27)
|
!28 = !DILocation(line: 13, column: 5, scope: !27)
|
||||||
!29 = !DILocation(line: 14, column: 1, scope: !27)
|
!29 = !DILocation(line: 14, column: 1, scope: !27)
|
||||||
!30 = !{!1}
|
|
||||||
!31 = !{!5, !13, !14, !17, !18, !19}
|
!31 = !{!5, !13, !14, !17, !18, !19}
|
||||||
!32 = !DIFile(filename: "one.c", directory: "/Volumes/Athwagate/R10048772")
|
!32 = !DIFile(filename: "one.c", directory: "/Volumes/Athwagate/R10048772")
|
||||||
!33 = !{i32 1, !"Debug Info Version", i32 3}
|
!33 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -111,7 +111,7 @@ define hidden void @foobar_func_block_invoke_0(i8* %.block_descriptor, %0* %load
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!162}
|
!llvm.module.flags = !{!162}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_ObjC, producer: "Apple clang version 2.1", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, file: !153, enums: !147, retainedTypes: !{}, subprograms: !148)
|
!0 = distinct !DICompileUnit(language: DW_LANG_ObjC, producer: "Apple clang version 2.1", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, file: !153, enums: !147, retainedTypes: !{})
|
||||||
!1 = !DICompositeType(tag: DW_TAG_enumeration_type, line: 248, size: 32, align: 32, file: !160, scope: !0, elements: !3)
|
!1 = !DICompositeType(tag: DW_TAG_enumeration_type, line: 248, size: 32, align: 32, file: !160, scope: !0, elements: !3)
|
||||||
!2 = !DIFile(filename: "header.h", directory: "/Volumes/Sandbox/llvm")
|
!2 = !DIFile(filename: "header.h", directory: "/Volumes/Sandbox/llvm")
|
||||||
!3 = !{!4}
|
!3 = !{!4}
|
||||||
@ -134,7 +134,7 @@ define hidden void @foobar_func_block_invoke_0(i8* %.block_descriptor, %0* %load
|
|||||||
!20 = !DIFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm")
|
!20 = !DIFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm")
|
||||||
!21 = !{!22}
|
!21 = !{!22}
|
||||||
!22 = !DIEnumerator(name: "Eleven", value: 0) ; [ DW_TAG_enumerator ]
|
!22 = !DIEnumerator(name: "Eleven", value: 0) ; [ DW_TAG_enumerator ]
|
||||||
!23 = distinct !DISubprogram(name: "foobar_func_block_invoke_0", line: 609, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 609, file: !152, scope: !24, type: !25)
|
!23 = distinct !DISubprogram(name: "foobar_func_block_invoke_0", line: 609, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 609, file: !152, scope: !24, type: !25)
|
||||||
!24 = !DIFile(filename: "MyLibrary.m", directory: "/Volumes/Sandbox/llvm")
|
!24 = !DIFile(filename: "MyLibrary.m", directory: "/Volumes/Sandbox/llvm")
|
||||||
!25 = !DISubroutineType(types: !26)
|
!25 = !DISubroutineType(types: !26)
|
||||||
!26 = !{null}
|
!26 = !{null}
|
||||||
@ -259,7 +259,6 @@ define hidden void @foobar_func_block_invoke_0(i8* %.block_descriptor, %0* %load
|
|||||||
!145 = !DILocation(line: 613, column: 17, scope: !142)
|
!145 = !DILocation(line: 613, column: 17, scope: !142)
|
||||||
!146 = !DILocation(line: 615, column: 13, scope: !142)
|
!146 = !DILocation(line: 615, column: 13, scope: !142)
|
||||||
!147 = !{!1, !1, !5, !5, !9, !14, !19, !19, !14, !14, !14, !19, !19, !19}
|
!147 = !{!1, !1, !5, !5, !9, !14, !19, !19, !14, !14, !14, !19, !19, !19}
|
||||||
!148 = !{!23}
|
|
||||||
!149 = !DIFile(filename: "header3.h", directory: "/Volumes/Sandbox/llvm")
|
!149 = !DIFile(filename: "header3.h", directory: "/Volumes/Sandbox/llvm")
|
||||||
!150 = !DIFile(filename: "Private.h", directory: "/Volumes/Sandbox/llvm")
|
!150 = !DIFile(filename: "Private.h", directory: "/Volumes/Sandbox/llvm")
|
||||||
!151 = !DIFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm")
|
!151 = !DIFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm")
|
||||||
|
@ -42,9 +42,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.module.flags = !{!56}
|
!llvm.module.flags = !{!56}
|
||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "test0001", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !54, scope: null, type: !3, variables: !51)
|
!0 = distinct !DISubprogram(name: "test0001", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, file: !54, scope: null, type: !3, variables: !51)
|
||||||
!1 = !DIFile(filename: "build2.c", directory: "/private/tmp")
|
!1 = !DIFile(filename: "build2.c", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !54, enums: !{}, retainedTypes: !{}, subprograms: !50, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !54, enums: !{}, retainedTypes: !{}, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIDerivedType(tag: DW_TAG_typedef, name: "v4f32", line: 14, file: !54, scope: !2, baseType: !6)
|
!5 = !DIDerivedType(tag: DW_TAG_typedef, name: "v4f32", line: 14, file: !54, scope: !2, baseType: !6)
|
||||||
@ -52,11 +52,11 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
||||||
!8 = !{!9}
|
!8 = !{!9}
|
||||||
!9 = !DISubrange(count: 4)
|
!9 = !DISubrange(count: 4)
|
||||||
!10 = distinct !DISubprogram(name: "main", line: 59, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !54, scope: null, type: !11, variables: !52)
|
!10 = distinct !DISubprogram(name: "main", line: 59, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, file: !54, scope: null, type: !11, variables: !52)
|
||||||
!11 = !DISubroutineType(types: !12)
|
!11 = !DISubroutineType(types: !12)
|
||||||
!12 = !{!13}
|
!12 = !{!13}
|
||||||
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!14 = distinct !DISubprogram(name: "printFV", line: 41, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !55, scope: null, type: !16, variables: !53)
|
!14 = distinct !DISubprogram(name: "printFV", line: 41, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, file: !55, scope: null, type: !16, variables: !53)
|
||||||
!15 = !DIFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/UnitTests/Vector/helpers.h", directory: "/private/tmp")
|
!15 = !DIFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/UnitTests/Vector/helpers.h", directory: "/private/tmp")
|
||||||
!16 = !DISubroutineType(types: !17)
|
!16 = !DISubroutineType(types: !17)
|
||||||
!17 = !{null}
|
!17 = !{null}
|
||||||
@ -92,7 +92,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!47 = distinct !DILexicalBlock(line: 41, column: 28, file: !15, scope: !14)
|
!47 = distinct !DILexicalBlock(line: 41, column: 28, file: !15, scope: !14)
|
||||||
!48 = !DILocation(line: 95, column: 3, scope: !25)
|
!48 = !DILocation(line: 95, column: 3, scope: !25)
|
||||||
!49 = !DILocation(line: 99, column: 3, scope: !25)
|
!49 = !DILocation(line: 99, column: 3, scope: !25)
|
||||||
!50 = !{!0, !10, !14}
|
|
||||||
!51 = !{!18}
|
!51 = !{!18}
|
||||||
!52 = !{!19, !20, !24, !26, !27, !28, !29}
|
!52 = !{!19, !20, !24, !26, !27, !28, !29}
|
||||||
!53 = !{!30}
|
!53 = !{!30}
|
||||||
|
@ -59,17 +59,17 @@ declare i32 @puts(i8* nocapture) nounwind
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!48}
|
!llvm.module.flags = !{!48}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "printer", linkageName: "printer", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 12, file: !46, scope: !1, type: !3, variables: !43)
|
!0 = distinct !DISubprogram(name: "printer", linkageName: "printer", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 12, file: !46, scope: !1, type: !3, variables: !43)
|
||||||
!1 = !DIFile(filename: "a.c", directory: "/tmp/")
|
!1 = !DIFile(filename: "a.c", directory: "/tmp/")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "(LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !46, enums: !47, retainedTypes: !47, subprograms: !42, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "(LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !46, enums: !47, retainedTypes: !47, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5, !6, !7, !8}
|
!4 = !{!5, !6, !7, !8}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !46, scope: !1, baseType: null)
|
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !46, scope: !1, baseType: null)
|
||||||
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 32, encoding: DW_ATE_float)
|
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 32, encoding: DW_ATE_float)
|
||||||
!8 = !DIBasicType(tag: DW_TAG_base_type, name: "unsigned char", size: 8, align: 8, encoding: DW_ATE_unsigned_char)
|
!8 = !DIBasicType(tag: DW_TAG_base_type, name: "unsigned char", size: 8, align: 8, encoding: DW_ATE_unsigned_char)
|
||||||
!9 = distinct !DISubprogram(name: "inlineprinter", linkageName: "inlineprinter", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 5, file: !46, scope: !1, type: !3, variables: !44)
|
!9 = distinct !DISubprogram(name: "inlineprinter", linkageName: "inlineprinter", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 5, file: !46, scope: !1, type: !3, variables: !44)
|
||||||
!10 = distinct !DISubprogram(name: "main", linkageName: "main", line: 18, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 18, file: !46, scope: !1, type: !11, variables: !45)
|
!10 = distinct !DISubprogram(name: "main", linkageName: "main", line: 18, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 18, file: !46, scope: !1, type: !11, variables: !45)
|
||||||
!11 = !DISubroutineType(types: !12)
|
!11 = !DISubroutineType(types: !12)
|
||||||
!12 = !{!5, !5, !13}
|
!12 = !{!5, !5, !13}
|
||||||
!13 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !46, scope: !1, baseType: !14)
|
!13 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, file: !46, scope: !1, baseType: !14)
|
||||||
@ -106,7 +106,6 @@ declare i32 @puts(i8* nocapture) nounwind
|
|||||||
!39 = !DILocation(line: 6, scope: !28, inlinedAt: !37)
|
!39 = !DILocation(line: 6, scope: !28, inlinedAt: !37)
|
||||||
!40 = !DILocation(line: 22, scope: !25)
|
!40 = !DILocation(line: 22, scope: !25)
|
||||||
!41 = !DILocation(line: 23, scope: !25)
|
!41 = !DILocation(line: 23, scope: !25)
|
||||||
!42 = !{!0, !9, !10}
|
|
||||||
!43 = !{!16, !17, !18}
|
!43 = !{!16, !17, !18}
|
||||||
!44 = !{!19, !20, !21}
|
!44 = !{!19, !20, !21}
|
||||||
!45 = !{!22, !23, !24}
|
!45 = !{!22, !23, !24}
|
||||||
|
@ -21,10 +21,10 @@ attributes #1 = { nounwind readnone }
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!7, !8}
|
!llvm.module.flags = !{!7, !8}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "", isOptimized: false, subprograms: !{!3}, emissionKind: FullDebug)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "", isOptimized: false, emissionKind: FullDebug)
|
||||||
!1 = !DIFile(filename: "file.c", directory: "/dir")
|
!1 = !DIFile(filename: "file.c", directory: "/dir")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = distinct !DISubprogram(name: "need_cfi_def_cfa_offset", scope: !1, file: !1, line: 1, type: !4, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, variables: !2)
|
!3 = distinct !DISubprogram(name: "need_cfi_def_cfa_offset", scope: !1, file: !1, line: 1, type: !4, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{null}
|
!5 = !{null}
|
||||||
!6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -38,9 +38,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!56}
|
!llvm.module.flags = !{!56}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "test0001", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3, file: !54, scope: !1, type: !3, variables: !51)
|
!0 = distinct !DISubprogram(name: "test0001", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 3, file: !54, scope: !1, type: !3, variables: !51)
|
||||||
!1 = !DIFile(filename: "build2.c", directory: "/private/tmp")
|
!1 = !DIFile(filename: "build2.c", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !54, enums: !{}, retainedTypes: !{}, subprograms: !50, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !54, enums: !{}, retainedTypes: !{}, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIDerivedType(tag: DW_TAG_typedef, name: "v4f32", line: 14, file: !54, scope: !2, baseType: !6)
|
!5 = !DIDerivedType(tag: DW_TAG_typedef, name: "v4f32", line: 14, file: !54, scope: !2, baseType: !6)
|
||||||
@ -48,11 +48,11 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
||||||
!8 = !{!9}
|
!8 = !{!9}
|
||||||
!9 = !DISubrange(count: 4)
|
!9 = !DISubrange(count: 4)
|
||||||
!10 = distinct !DISubprogram(name: "main", line: 59, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 59, file: !54, scope: !1, type: !11, variables: !52)
|
!10 = distinct !DISubprogram(name: "main", line: 59, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 59, file: !54, scope: !1, type: !11, variables: !52)
|
||||||
!11 = !DISubroutineType(types: !12)
|
!11 = !DISubroutineType(types: !12)
|
||||||
!12 = !{!13}
|
!12 = !{!13}
|
||||||
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!14 = distinct !DISubprogram(name: "printFV", line: 41, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 41, file: !55, scope: !15, type: !16, variables: !53)
|
!14 = distinct !DISubprogram(name: "printFV", line: 41, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 41, file: !55, scope: !15, type: !16, variables: !53)
|
||||||
!15 = !DIFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/UnitTests/Vector/helpers.h", directory: "/private/tmp")
|
!15 = !DIFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/UnitTests/Vector/helpers.h", directory: "/private/tmp")
|
||||||
!16 = !DISubroutineType(types: !17)
|
!16 = !DISubroutineType(types: !17)
|
||||||
!17 = !{null}
|
!17 = !{null}
|
||||||
@ -88,7 +88,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!47 = distinct !DILexicalBlock(line: 41, column: 28, file: !55, scope: !14)
|
!47 = distinct !DILexicalBlock(line: 41, column: 28, file: !55, scope: !14)
|
||||||
!48 = !DILocation(line: 95, column: 3, scope: !25)
|
!48 = !DILocation(line: 95, column: 3, scope: !25)
|
||||||
!49 = !DILocation(line: 99, column: 3, scope: !25)
|
!49 = !DILocation(line: 99, column: 3, scope: !25)
|
||||||
!50 = !{!0, !10, !14}
|
|
||||||
!51 = !{!18}
|
!51 = !{!18}
|
||||||
!52 = !{!19, !20, !24, !26, !27, !28, !29}
|
!52 = !{!19, !20, !24, !26, !27, !28, !29}
|
||||||
!53 = !{!30}
|
!53 = !{!30}
|
||||||
|
@ -65,14 +65,14 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!53}
|
!llvm.module.flags = !{!53}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "inlineprinter", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 5, file: !51, scope: !1, type: !3, variables: !48)
|
!0 = distinct !DISubprogram(name: "inlineprinter", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 5, file: !51, scope: !1, type: !3, variables: !48)
|
||||||
!1 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
!1 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !51, enums: !52, retainedTypes: !52, subprograms: !47, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 129915)", isOptimized: true, emissionKind: FullDebug, file: !51, enums: !52, retainedTypes: !52, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!6 = distinct !DISubprogram(name: "printer", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 12, file: !51, scope: !1, type: !3, variables: !49)
|
!6 = distinct !DISubprogram(name: "printer", line: 12, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 12, file: !51, scope: !1, type: !3, variables: !49)
|
||||||
!7 = distinct !DISubprogram(name: "main", line: 18, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 18, file: !51, scope: !1, type: !3, variables: !50)
|
!7 = distinct !DISubprogram(name: "main", line: 18, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 18, file: !51, scope: !1, type: !3, variables: !50)
|
||||||
!8 = !DILocalVariable(name: "ptr", line: 4, arg: 1, scope: !0, file: !1, type: !9)
|
!8 = !DILocalVariable(name: "ptr", line: 4, arg: 1, scope: !0, file: !1, type: !9)
|
||||||
!9 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !2, baseType: null)
|
!9 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !2, baseType: null)
|
||||||
!10 = !DILocalVariable(name: "val", line: 4, arg: 2, scope: !0, file: !1, type: !11)
|
!10 = !DILocalVariable(name: "val", line: 4, arg: 2, scope: !0, file: !1, type: !11)
|
||||||
@ -117,7 +117,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!44 = !DILocation(line: 6, column: 3, scope: !28, inlinedAt: !40)
|
!44 = !DILocation(line: 6, column: 3, scope: !28, inlinedAt: !40)
|
||||||
!45 = !DILocation(line: 22, column: 3, scope: !23)
|
!45 = !DILocation(line: 22, column: 3, scope: !23)
|
||||||
!46 = !DILocation(line: 23, column: 1, scope: !23)
|
!46 = !DILocation(line: 23, column: 1, scope: !23)
|
||||||
!47 = !{!0, !6, !7}
|
|
||||||
!48 = !{!8, !10, !12}
|
!48 = !{!8, !10, !12}
|
||||||
!49 = !{!14, !15, !16}
|
!49 = !{!14, !15, !16}
|
||||||
!50 = !{!17, !18, !22}
|
!50 = !{!17, !18, !22}
|
||||||
|
@ -43,8 +43,8 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!20}
|
!llvm.module.flags = !{!20}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.0 (trunk 130845)", isOptimized: true, emissionKind: FullDebug, file: !18, enums: !19, retainedTypes: !19, subprograms: !16, imports: null)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.0 (trunk 130845)", isOptimized: true, emissionKind: FullDebug, file: !18, enums: !19, retainedTypes: !19, imports: null)
|
||||||
!1 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 5, file: !18, scope: !2, type: !3, variables: !17)
|
!1 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 5, file: !18, scope: !2, type: !3, variables: !17)
|
||||||
!2 = !DIFile(filename: "k.cc", directory: "/private/tmp")
|
!2 = !DIFile(filename: "k.cc", directory: "/private/tmp")
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{null}
|
!4 = !{null}
|
||||||
@ -59,7 +59,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!13 = !DILocation(line: 8, column: 20, scope: !9)
|
!13 = !DILocation(line: 8, column: 20, scope: !9)
|
||||||
!14 = !DILocation(line: 7, column: 20, scope: !10)
|
!14 = !DILocation(line: 7, column: 20, scope: !10)
|
||||||
!15 = !DILocation(line: 10, column: 1, scope: !6)
|
!15 = !DILocation(line: 10, column: 1, scope: !6)
|
||||||
!16 = !{!1}
|
|
||||||
!17 = !{!5, !8}
|
!17 = !{!5, !8}
|
||||||
!18 = !DIFile(filename: "k.cc", directory: "/private/tmp")
|
!18 = !DIFile(filename: "k.cc", directory: "/private/tmp")
|
||||||
!19 = !{}
|
!19 = !{}
|
||||||
|
@ -39,11 +39,10 @@ define void @test_basic() #0 !dbg !4 {
|
|||||||
; ARM-linux .cfi_same_value r5
|
; ARM-linux .cfi_same_value r5
|
||||||
}
|
}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "var.c", directory: "/tmp")
|
!1 = !DIFile(filename: "var.c", directory: "/tmp")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test_basic", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test_basic", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 5, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "var.c", directory: "/tmp")
|
!5 = !DIFile(filename: "var.c", directory: "/tmp")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
|
@ -31,11 +31,10 @@ define void @stack_offsets() !dbg !4 {
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!8, !9}
|
!llvm.module.flags = !{!8, !9}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "tmp.c", directory: "/Users/tim/llvm/build")
|
!1 = !DIFile(filename: "tmp.c", directory: "/Users/tim/llvm/build")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "bar", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !0, scopeLine: 1, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "bar", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "tmp.c", directory: "/Users/tim/llvm/build")
|
!5 = !DIFile(filename: "tmp.c", directory: "/Users/tim/llvm/build")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null}
|
!7 = !{null}
|
||||||
|
@ -41,11 +41,10 @@ attributes #3 = { nounwind }
|
|||||||
!llvm.module.flags = !{!11, !12}
|
!llvm.module.flags = !{!11, !12}
|
||||||
!llvm.ident = !{!13}
|
!llvm.ident = !{!13}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (http://llvm.org/git/clang.git 15506a21305e212c406f980ed9b6b1bac785df56)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (http://llvm.org/git/clang.git 15506a21305e212c406f980ed9b6b1bac785df56)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
||||||
!1 = !DIFile(filename: "cfi-late.c", directory: "/test")
|
!1 = !DIFile(filename: "cfi-late.c", directory: "/test")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !8)
|
||||||
!4 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, variables: !8)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{!7, !7, !7}
|
!6 = !{!7, !7, !7}
|
||||||
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -37,10 +37,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!29}
|
!llvm.module.flags = !{!29}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "QuIC LLVM Hexagon Clang version 6.1-pre-unknown, (git://git-hexagon-aus.quicinc.com/llvm/clang-mainline.git e9382867661454cdf44addb39430741578e9765c) (llvm/llvm-mainline.git 36412bb1fcf03ed426d4437b41198bae066675ac)", isOptimized: true, emissionKind: FullDebug, file: !28, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "QuIC LLVM Hexagon Clang version 6.1-pre-unknown, (git://git-hexagon-aus.quicinc.com/llvm/clang-mainline.git e9382867661454cdf44addb39430741578e9765c) (llvm/llvm-mainline.git 36412bb1fcf03ed426d4437b41198bae066675ac)", isOptimized: true, emissionKind: FullDebug, file: !28, enums: !2, retainedTypes: !2, globals: !2)
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!5}
|
!5 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1, file: !28, scope: null, type: !7, variables: !11)
|
||||||
!5 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1, file: !28, scope: null, type: !7, variables: !11)
|
|
||||||
!6 = !DIFile(filename: "hwloop-dbg.c", directory: "/usr2/kparzysz/s.hex/t")
|
!6 = !DIFile(filename: "hwloop-dbg.c", directory: "/usr2/kparzysz/s.hex/t")
|
||||||
!7 = !DISubroutineType(types: !8)
|
!7 = !DISubroutineType(types: !8)
|
||||||
!8 = !{null, !9, !9}
|
!8 = !{null, !9, !9}
|
||||||
|
@ -14,9 +14,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!13}
|
!llvm.module.flags = !{!13}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "main", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !12, scope: !1, type: !3)
|
!0 = distinct !DISubprogram(name: "main", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2, file: !12, scope: !1, type: !3)
|
||||||
!1 = !DIFile(filename: "/tmp/x.c", directory: "/Users/manav")
|
!1 = !DIFile(filename: "/tmp/x.c", directory: "/Users/manav")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 120996)", isOptimized: false, emissionKind: FullDebug, file: !12, enums: !6, retainedTypes: !6, subprograms: !11)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 120996)", isOptimized: false, emissionKind: FullDebug, file: !12, enums: !6, retainedTypes: !6)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
@ -25,6 +25,5 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!8 = distinct !DILexicalBlock(line: 2, column: 12, file: !12, scope: !0)
|
!8 = distinct !DILexicalBlock(line: 2, column: 12, file: !12, scope: !0)
|
||||||
!9 = !DILocation(line: 3, column: 11, scope: !8)
|
!9 = !DILocation(line: 3, column: 11, scope: !8)
|
||||||
!10 = !DILocation(line: 4, column: 2, scope: !8)
|
!10 = !DILocation(line: 4, column: 2, scope: !8)
|
||||||
!11 = !{!0}
|
|
||||||
!12 = !DIFile(filename: "/tmp/x.c", directory: "/Users/manav")
|
!12 = !DIFile(filename: "/tmp/x.c", directory: "/Users/manav")
|
||||||
!13 = !{i32 1, !"Debug Info Version", i32 3}
|
!13 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -39,11 +39,10 @@
|
|||||||
!llvm.module.flags = !{!22, !23, !24, !25}
|
!llvm.module.flags = !{!22, !23, !24, !25}
|
||||||
!llvm.ident = !{!26}
|
!llvm.ident = !{!26}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (llvm/trunk 237059)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (llvm/trunk 237059)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "<stdin>", directory: "/Users/compnerd/Source/llvm")
|
!1 = !DIFile(filename: "<stdin>", directory: "/Users/compnerd/Source/llvm")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !17)
|
||||||
!4 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, variables: !17)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{!7, !8, !11, !12, !16}
|
!6 = !{!7, !8, !11, !12, !16}
|
||||||
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -50,11 +50,10 @@
|
|||||||
!llvm.module.flags = !{!22, !23, !24, !25}
|
!llvm.module.flags = !{!22, !23, !24, !25}
|
||||||
!llvm.ident = !{!26}
|
!llvm.ident = !{!26}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (llvm/trunk 237059)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0 (llvm/trunk 237059)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "<stdin>", directory: "/Users/compnerd/Source/llvm")
|
!1 = !DIFile(filename: "<stdin>", directory: "/Users/compnerd/Source/llvm")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !17)
|
||||||
!4 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, variables: !17)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{!7, !8, !11, !12, !16}
|
!6 = !{!7, !8, !11, !12, !16}
|
||||||
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -20,11 +20,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.ll", directory: "")
|
!1 = !DIFile(filename: "test.ll", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "test.c", directory: "")
|
!5 = !DIFile(filename: "test.c", directory: "")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
|
@ -20,11 +20,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.ll", directory: "")
|
!1 = !DIFile(filename: "test.ll", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "test.c", directory: "")
|
!5 = !DIFile(filename: "test.c", directory: "")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
|
@ -31,11 +31,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.ll", directory: "")
|
!1 = !DIFile(filename: "test.ll", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "test.c", directory: "")
|
!5 = !DIFile(filename: "test.c", directory: "")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
@ -62,9 +61,9 @@ stack:
|
|||||||
body: |
|
body: |
|
||||||
bb.0.entry:
|
bb.0.entry:
|
||||||
liveins: %edi
|
liveins: %edi
|
||||||
; CHECK: DBG_VALUE debug-use _, 0, !12, !13, debug-location !14
|
; CHECK: DBG_VALUE debug-use _, 0, !11, !12, debug-location !13
|
||||||
; CHECK: %eax = COPY %0, debug-location !15
|
; CHECK: %eax = COPY %0, debug-location !14
|
||||||
; CHECK: RETQ %eax, debug-location !15
|
; CHECK: RETQ %eax, debug-location !14
|
||||||
%0 = COPY %edi
|
%0 = COPY %edi
|
||||||
DBG_VALUE debug-use _, 0, !12, !13, debug-location !14
|
DBG_VALUE debug-use _, 0, !12, !13, debug-location !14
|
||||||
MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
|
MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
|
||||||
@ -86,9 +85,9 @@ body: |
|
|||||||
liveins: %edi
|
liveins: %edi
|
||||||
|
|
||||||
%0 = COPY %edi
|
%0 = COPY %edi
|
||||||
; CHECK: DBG_VALUE _, i32 0, !12, !13
|
; CHECK: DBG_VALUE _, i32 0, !11, !12
|
||||||
; CHECK-NEXT: DBG_VALUE _, i64 -22, !12, !13
|
; CHECK-NEXT: DBG_VALUE _, i64 -22, !11, !12
|
||||||
; CHECK-NEXT: DBG_VALUE _, i128 123492148938512984928424384934328985928, !12, !13
|
; CHECK-NEXT: DBG_VALUE _, i128 123492148938512984928424384934328985928, !11, !12
|
||||||
DBG_VALUE _, i32 0, !12, !13
|
DBG_VALUE _, i32 0, !12, !13
|
||||||
DBG_VALUE _, i64 -22, !12, !13
|
DBG_VALUE _, i64 -22, !12, !13
|
||||||
DBG_VALUE _, i128 123492148938512984928424384934328985928, !12, !13
|
DBG_VALUE _, i128 123492148938512984928424384934328985928, !12, !13
|
||||||
|
@ -22,12 +22,12 @@
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!3}
|
!llvm.module.flags = !{!3}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !{!5})
|
!0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2)
|
||||||
!1 = !DIFile(filename: "t.c", directory: "")
|
!1 = !DIFile(filename: "t.c", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{i32 1, !"Debug Info Version", i32 3}
|
!3 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
!4 = !DILocalVariable(name: "x", scope: !5, file: !1, line: 16, type: !6)
|
!4 = !DILocalVariable(name: "x", scope: !5, file: !1, line: 16, type: !6)
|
||||||
!5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
|
!5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0)
|
||||||
!6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
!6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
||||||
!7 = !DIExpression()
|
!7 = !DIExpression()
|
||||||
!8 = !DILocation(line: 0, scope: !5)
|
!8 = !DILocation(line: 0, scope: !5)
|
||||||
|
@ -22,11 +22,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.ll", directory: "")
|
!1 = !DIFile(filename: "test.ll", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "test.c", directory: "")
|
!5 = !DIFile(filename: "test.c", directory: "")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
@ -54,7 +53,7 @@ body: |
|
|||||||
bb.0.entry:
|
bb.0.entry:
|
||||||
liveins: %edi
|
liveins: %edi
|
||||||
; CHECK: %0 = COPY %edi
|
; CHECK: %0 = COPY %edi
|
||||||
; CHECK-NEXT: DBG_VALUE _, 0, !12, !13
|
; CHECK-NEXT: DBG_VALUE _, 0, !11, !12
|
||||||
%0 = COPY %edi
|
%0 = COPY %edi
|
||||||
DBG_VALUE _, 0, !12, ! 13
|
DBG_VALUE _, 0, !12, ! 13
|
||||||
MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
|
MOV32mr %stack.0.x.addr, 1, _, 0, _, %0
|
||||||
|
@ -31,13 +31,12 @@
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!3}
|
!llvm.module.flags = !{!3}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2,
|
!0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2)
|
||||||
subprograms: !{!5})
|
|
||||||
!1 = !DIFile(filename: "t.c", directory: "")
|
!1 = !DIFile(filename: "t.c", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{i32 1, !"Debug Info Version", i32 3}
|
!3 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
!4 = !DILocalVariable(name: "x", scope: !5, file: !1, line: 16, type: !9)
|
!4 = !DILocalVariable(name: "x", scope: !5, file: !1, line: 16, type: !9)
|
||||||
!5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
|
!5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0)
|
||||||
!6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
!6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
||||||
!7 = !DIExpression()
|
!7 = !DIExpression()
|
||||||
!8 = !DILocation(line: 0, scope: !5)
|
!8 = !DILocation(line: 0, scope: !5)
|
||||||
@ -53,8 +52,8 @@ frameInfo:
|
|||||||
maxAlignment: 16
|
maxAlignment: 16
|
||||||
# CHECK-LABEL: foo
|
# CHECK-LABEL: foo
|
||||||
# CHECK: stack:
|
# CHECK: stack:
|
||||||
# CHECK: - { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!6',
|
# CHECK: - { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!4',
|
||||||
# CHECK-NEXT: di-expression: '!11', di-location: '!12' }
|
# CHECK-NEXT: di-expression: '!10', di-location: '!11' }
|
||||||
stack:
|
stack:
|
||||||
- { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!4',
|
- { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!4',
|
||||||
di-expression: '!7', di-location: '!8' }
|
di-expression: '!7', di-location: '!8' }
|
||||||
|
@ -20,11 +20,10 @@
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.7.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "test.ll", directory: "")
|
!1 = !DIFile(filename: "test.ll", directory: "")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "test", scope: !5, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "test.c", directory: "")
|
!5 = !DIFile(filename: "test.c", directory: "")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8}
|
!7 = !{!8, !8}
|
||||||
|
@ -30,14 +30,13 @@ bb:
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!8, !9}
|
!llvm.module.flags = !{!8, !9}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2)
|
||||||
!1 = !DIFile(filename: "bar.cu", directory: "/source/dir")
|
!1 = !DIFile(filename: "bar.cu", directory: "/source/dir")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4, !7}
|
!4 = distinct !DISubprogram(name: "foo", scope: !5, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "foo", scope: !5, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "foo.h", directory: "/source/dir")
|
!5 = !DIFile(filename: "foo.h", directory: "/source/dir")
|
||||||
!6 = !DISubroutineType(types: !2)
|
!6 = !DISubroutineType(types: !2)
|
||||||
!7 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 2, type: !6, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, variables: !2)
|
!7 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 2, type: !6, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
|
||||||
!8 = !{i32 2, !"Dwarf Version", i32 4}
|
!8 = !{i32 2, !"Dwarf Version", i32 4}
|
||||||
!9 = !{i32 2, !"Debug Info Version", i32 3}
|
!9 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
!10 = !DILocation(line: 1, column: 31, scope: !4)
|
!10 = !DILocation(line: 1, column: 31, scope: !4)
|
||||||
|
@ -17,10 +17,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!22}
|
!llvm.module.flags = !{!22}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1", isOptimized: true, emissionKind: FullDebug, file: !21, enums: !1, retainedTypes: !1, subprograms: !3, globals: !1, imports: !1)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1", isOptimized: true, emissionKind: FullDebug, file: !21, enums: !1, retainedTypes: !1, globals: !1, imports: !1)
|
||||||
!1 = !{}
|
!1 = !{}
|
||||||
!3 = !{!5}
|
!5 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, file: !21, scope: null, type: !7, variables: !13)
|
||||||
!5 = distinct !DISubprogram(name: "main", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !21, scope: null, type: !7, variables: !13)
|
|
||||||
!6 = !DIFile(filename: "dbg.c", directory: "/src")
|
!6 = !DIFile(filename: "dbg.c", directory: "/src")
|
||||||
!7 = !DISubroutineType(types: !8)
|
!7 = !DISubroutineType(types: !8)
|
||||||
!8 = !{!9, !9, !10}
|
!8 = !{!9, !9, !10}
|
||||||
|
@ -54,11 +54,10 @@ attributes #1 = { nounwind readnone }
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!438, !464}
|
!llvm.module.flags = !{!438, !464}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (trunk 190311)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !298, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (trunk 190311)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !298, imports: !2)
|
||||||
!1 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
|
!1 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4, !82, !102, !114, !132, !145, !154, !155, !162, !183, !200, !201, !207, !208, !215, !221, !230, !238, !246, !255, !260, !261, !268, !274, !279, !280, !287, !293}
|
!4 = distinct !DISubprogram(name: "main", line: 74, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 74, file: !1, scope: !5, type: !6, variables: !12)
|
||||||
!4 = distinct !DISubprogram(name: "main", line: 74, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 74, file: !1, scope: !5, type: !6, variables: !12)
|
|
||||||
!5 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
|
!5 = !DIFile(filename: "bt.c", directory: "/home/hfinkel/src/NPB2.3-omp-C/BT")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !8, !9}
|
!7 = !{!8, !8, !9}
|
||||||
@ -136,7 +135,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!79 = !DICompositeType(tag: DW_TAG_array_type, size: 160, align: 8, baseType: !11, elements: !80)
|
!79 = !DICompositeType(tag: DW_TAG_array_type, size: 160, align: 8, baseType: !11, elements: !80)
|
||||||
!80 = !{!81}
|
!80 = !{!81}
|
||||||
!81 = !DISubrange(count: 20)
|
!81 = !DISubrange(count: 20)
|
||||||
!82 = distinct !DISubprogram(name: "verify", line: 2388, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2388, file: !1, scope: !5, type: !83, variables: !86)
|
!82 = distinct !DISubprogram(name: "verify", line: 2388, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2388, file: !1, scope: !5, type: !83, variables: !86)
|
||||||
!83 = !DISubroutineType(types: !84)
|
!83 = !DISubroutineType(types: !84)
|
||||||
!84 = !{null, !8, !10, !85}
|
!84 = !{null, !8, !10, !85}
|
||||||
!85 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !24)
|
!85 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !24)
|
||||||
@ -156,7 +155,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!99 = !DILocalVariable(name: "xcr", line: 2398, scope: !82, file: !5, type: !91)
|
!99 = !DILocalVariable(name: "xcr", line: 2398, scope: !82, file: !5, type: !91)
|
||||||
!100 = !DILocalVariable(name: "dtref", line: 2398, scope: !82, file: !5, type: !20)
|
!100 = !DILocalVariable(name: "dtref", line: 2398, scope: !82, file: !5, type: !20)
|
||||||
!101 = !DILocalVariable(name: "m", line: 2399, scope: !82, file: !5, type: !8)
|
!101 = !DILocalVariable(name: "m", line: 2399, scope: !82, file: !5, type: !8)
|
||||||
!102 = distinct !DISubprogram(name: "rhs_norm", line: 266, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 266, file: !1, scope: !5, type: !103, variables: !106)
|
!102 = distinct !DISubprogram(name: "rhs_norm", line: 266, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 266, file: !1, scope: !5, type: !103, variables: !106)
|
||||||
!103 = !DISubroutineType(types: !104)
|
!103 = !DISubroutineType(types: !104)
|
||||||
!104 = !{null, !105}
|
!104 = !{null, !105}
|
||||||
!105 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !20)
|
!105 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !20)
|
||||||
@ -168,7 +167,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!111 = !DILocalVariable(name: "d", line: 271, scope: !102, file: !5, type: !8)
|
!111 = !DILocalVariable(name: "d", line: 271, scope: !102, file: !5, type: !8)
|
||||||
!112 = !DILocalVariable(name: "m", line: 271, scope: !102, file: !5, type: !8)
|
!112 = !DILocalVariable(name: "m", line: 271, scope: !102, file: !5, type: !8)
|
||||||
!113 = !DILocalVariable(name: "add", line: 272, scope: !102, file: !5, type: !20)
|
!113 = !DILocalVariable(name: "add", line: 272, scope: !102, file: !5, type: !20)
|
||||||
!114 = distinct !DISubprogram(name: "compute_rhs", line: 1767, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1767, file: !1, scope: !5, type: !115, variables: !117)
|
!114 = distinct !DISubprogram(name: "compute_rhs", line: 1767, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1767, file: !1, scope: !5, type: !115, variables: !117)
|
||||||
!115 = !DISubroutineType(types: !116)
|
!115 = !DISubroutineType(types: !116)
|
||||||
!116 = !{null}
|
!116 = !{null}
|
||||||
!117 = !{!118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131}
|
!117 = !{!118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131}
|
||||||
@ -186,7 +185,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!129 = !DILocalVariable(name: "wijk", line: 1770, scope: !114, file: !5, type: !20)
|
!129 = !DILocalVariable(name: "wijk", line: 1770, scope: !114, file: !5, type: !20)
|
||||||
!130 = !DILocalVariable(name: "wp1", line: 1770, scope: !114, file: !5, type: !20)
|
!130 = !DILocalVariable(name: "wp1", line: 1770, scope: !114, file: !5, type: !20)
|
||||||
!131 = !DILocalVariable(name: "wm1", line: 1770, scope: !114, file: !5, type: !20)
|
!131 = !DILocalVariable(name: "wm1", line: 1770, scope: !114, file: !5, type: !20)
|
||||||
!132 = distinct !DISubprogram(name: "error_norm", line: 225, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 225, file: !1, scope: !5, type: !103, variables: !133)
|
!132 = distinct !DISubprogram(name: "error_norm", line: 225, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 225, file: !1, scope: !5, type: !103, variables: !133)
|
||||||
!133 = !{!134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144}
|
!133 = !{!134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144}
|
||||||
!134 = !DILocalVariable(name: "rms", line: 225, arg: 1, scope: !132, file: !5, type: !105)
|
!134 = !DILocalVariable(name: "rms", line: 225, arg: 1, scope: !132, file: !5, type: !105)
|
||||||
!135 = !DILocalVariable(name: "i", line: 232, scope: !132, file: !5, type: !8)
|
!135 = !DILocalVariable(name: "i", line: 232, scope: !132, file: !5, type: !8)
|
||||||
@ -199,7 +198,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!142 = !DILocalVariable(name: "zeta", line: 233, scope: !132, file: !5, type: !20)
|
!142 = !DILocalVariable(name: "zeta", line: 233, scope: !132, file: !5, type: !20)
|
||||||
!143 = !DILocalVariable(name: "u_exact", line: 233, scope: !132, file: !5, type: !91)
|
!143 = !DILocalVariable(name: "u_exact", line: 233, scope: !132, file: !5, type: !91)
|
||||||
!144 = !DILocalVariable(name: "add", line: 233, scope: !132, file: !5, type: !20)
|
!144 = !DILocalVariable(name: "add", line: 233, scope: !132, file: !5, type: !20)
|
||||||
!145 = distinct !DISubprogram(name: "exact_solution", line: 643, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 644, file: !1, scope: !5, type: !146, variables: !148)
|
!145 = distinct !DISubprogram(name: "exact_solution", line: 643, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 644, file: !1, scope: !5, type: !146, variables: !148)
|
||||||
!146 = !DISubroutineType(types: !147)
|
!146 = !DISubroutineType(types: !147)
|
||||||
!147 = !{null, !20, !20, !20, !105}
|
!147 = !{null, !20, !20, !20, !105}
|
||||||
!148 = !{!149, !150, !151, !152, !153}
|
!148 = !{!149, !150, !151, !152, !153}
|
||||||
@ -208,15 +207,15 @@ attributes #1 = { nounwind readnone }
|
|||||||
!151 = !DILocalVariable(name: "zeta", line: 643, arg: 3, scope: !145, file: !5, type: !20)
|
!151 = !DILocalVariable(name: "zeta", line: 643, arg: 3, scope: !145, file: !5, type: !20)
|
||||||
!152 = !DILocalVariable(name: "dtemp", line: 644, arg: 4, scope: !145, file: !5, type: !105)
|
!152 = !DILocalVariable(name: "dtemp", line: 644, arg: 4, scope: !145, file: !5, type: !105)
|
||||||
!153 = !DILocalVariable(name: "m", line: 653, scope: !145, file: !5, type: !8)
|
!153 = !DILocalVariable(name: "m", line: 653, scope: !145, file: !5, type: !8)
|
||||||
!154 = distinct !DISubprogram(name: "set_constants", line: 2191, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2191, file: !1, scope: !5, type: !115, variables: !2)
|
!154 = distinct !DISubprogram(name: "set_constants", line: 2191, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2191, file: !1, scope: !5, type: !115, variables: !2)
|
||||||
!155 = distinct !DISubprogram(name: "lhsinit", line: 855, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 855, file: !1, scope: !5, type: !115, variables: !156)
|
!155 = distinct !DISubprogram(name: "lhsinit", line: 855, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 855, file: !1, scope: !5, type: !115, variables: !156)
|
||||||
!156 = !{!157, !158, !159, !160, !161}
|
!156 = !{!157, !158, !159, !160, !161}
|
||||||
!157 = !DILocalVariable(name: "i", line: 857, scope: !155, file: !5, type: !8)
|
!157 = !DILocalVariable(name: "i", line: 857, scope: !155, file: !5, type: !8)
|
||||||
!158 = !DILocalVariable(name: "j", line: 857, scope: !155, file: !5, type: !8)
|
!158 = !DILocalVariable(name: "j", line: 857, scope: !155, file: !5, type: !8)
|
||||||
!159 = !DILocalVariable(name: "k", line: 857, scope: !155, file: !5, type: !8)
|
!159 = !DILocalVariable(name: "k", line: 857, scope: !155, file: !5, type: !8)
|
||||||
!160 = !DILocalVariable(name: "m", line: 857, scope: !155, file: !5, type: !8)
|
!160 = !DILocalVariable(name: "m", line: 857, scope: !155, file: !5, type: !8)
|
||||||
!161 = !DILocalVariable(name: "n", line: 857, scope: !155, file: !5, type: !8)
|
!161 = !DILocalVariable(name: "n", line: 857, scope: !155, file: !5, type: !8)
|
||||||
!162 = distinct !DISubprogram(name: "initialize", line: 669, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 669, file: !1, scope: !5, type: !115, variables: !163)
|
!162 = distinct !DISubprogram(name: "initialize", line: 669, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 669, file: !1, scope: !5, type: !115, variables: !163)
|
||||||
!163 = !{!164, !165, !166, !167, !168, !169, !170, !171, !172, !173, !174, !179, !180, !181, !182}
|
!163 = !{!164, !165, !166, !167, !168, !169, !170, !171, !172, !173, !174, !179, !180, !181, !182}
|
||||||
!164 = !DILocalVariable(name: "i", line: 679, scope: !162, file: !5, type: !8)
|
!164 = !DILocalVariable(name: "i", line: 679, scope: !162, file: !5, type: !8)
|
||||||
!165 = !DILocalVariable(name: "j", line: 679, scope: !162, file: !5, type: !8)
|
!165 = !DILocalVariable(name: "j", line: 679, scope: !162, file: !5, type: !8)
|
||||||
@ -237,7 +236,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!180 = !DILocalVariable(name: "Peta", line: 680, scope: !162, file: !5, type: !20)
|
!180 = !DILocalVariable(name: "Peta", line: 680, scope: !162, file: !5, type: !20)
|
||||||
!181 = !DILocalVariable(name: "Pzeta", line: 680, scope: !162, file: !5, type: !20)
|
!181 = !DILocalVariable(name: "Pzeta", line: 680, scope: !162, file: !5, type: !20)
|
||||||
!182 = !DILocalVariable(name: "temp", line: 680, scope: !162, file: !5, type: !91)
|
!182 = !DILocalVariable(name: "temp", line: 680, scope: !162, file: !5, type: !91)
|
||||||
!183 = distinct !DISubprogram(name: "exact_rhs", line: 301, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 301, file: !1, scope: !5, type: !115, variables: !184)
|
!183 = distinct !DISubprogram(name: "exact_rhs", line: 301, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 301, file: !1, scope: !5, type: !115, variables: !184)
|
||||||
!184 = !{!185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199}
|
!184 = !{!185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199}
|
||||||
!185 = !DILocalVariable(name: "dtemp", line: 310, scope: !183, file: !5, type: !91)
|
!185 = !DILocalVariable(name: "dtemp", line: 310, scope: !183, file: !5, type: !91)
|
||||||
!186 = !DILocalVariable(name: "xi", line: 310, scope: !183, file: !5, type: !20)
|
!186 = !DILocalVariable(name: "xi", line: 310, scope: !183, file: !5, type: !20)
|
||||||
@ -254,28 +253,28 @@ attributes #1 = { nounwind readnone }
|
|||||||
!197 = !DILocalVariable(name: "jm1", line: 311, scope: !183, file: !5, type: !8)
|
!197 = !DILocalVariable(name: "jm1", line: 311, scope: !183, file: !5, type: !8)
|
||||||
!198 = !DILocalVariable(name: "km1", line: 311, scope: !183, file: !5, type: !8)
|
!198 = !DILocalVariable(name: "km1", line: 311, scope: !183, file: !5, type: !8)
|
||||||
!199 = !DILocalVariable(name: "kp1", line: 311, scope: !183, file: !5, type: !8)
|
!199 = !DILocalVariable(name: "kp1", line: 311, scope: !183, file: !5, type: !8)
|
||||||
!200 = distinct !DISubprogram(name: "adi", line: 210, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 210, file: !1, scope: !5, type: !115, variables: !2)
|
!200 = distinct !DISubprogram(name: "adi", line: 210, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 210, file: !1, scope: !5, type: !115, variables: !2)
|
||||||
!201 = distinct !DISubprogram(name: "add", line: 187, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 187, file: !1, scope: !5, type: !115, variables: !202)
|
!201 = distinct !DISubprogram(name: "add", line: 187, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 187, file: !1, scope: !5, type: !115, variables: !202)
|
||||||
!202 = !{!203, !204, !205, !206}
|
!202 = !{!203, !204, !205, !206}
|
||||||
!203 = !DILocalVariable(name: "i", line: 193, scope: !201, file: !5, type: !8)
|
!203 = !DILocalVariable(name: "i", line: 193, scope: !201, file: !5, type: !8)
|
||||||
!204 = !DILocalVariable(name: "j", line: 193, scope: !201, file: !5, type: !8)
|
!204 = !DILocalVariable(name: "j", line: 193, scope: !201, file: !5, type: !8)
|
||||||
!205 = !DILocalVariable(name: "k", line: 193, scope: !201, file: !5, type: !8)
|
!205 = !DILocalVariable(name: "k", line: 193, scope: !201, file: !5, type: !8)
|
||||||
!206 = !DILocalVariable(name: "m", line: 193, scope: !201, file: !5, type: !8)
|
!206 = !DILocalVariable(name: "m", line: 193, scope: !201, file: !5, type: !8)
|
||||||
!207 = distinct !DISubprogram(name: "z_solve", line: 3457, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3457, file: !1, scope: !5, type: !115, variables: !2)
|
!207 = distinct !DISubprogram(name: "z_solve", line: 3457, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3457, file: !1, scope: !5, type: !115, variables: !2)
|
||||||
!208 = distinct !DISubprogram(name: "z_backsubstitute", line: 3480, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3480, file: !1, scope: !5, type: !115, variables: !209)
|
!208 = distinct !DISubprogram(name: "z_backsubstitute", line: 3480, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3480, file: !1, scope: !5, type: !115, variables: !209)
|
||||||
!209 = !{!210, !211, !212, !213, !214}
|
!209 = !{!210, !211, !212, !213, !214}
|
||||||
!210 = !DILocalVariable(name: "i", line: 3492, scope: !208, file: !5, type: !8)
|
!210 = !DILocalVariable(name: "i", line: 3492, scope: !208, file: !5, type: !8)
|
||||||
!211 = !DILocalVariable(name: "j", line: 3492, scope: !208, file: !5, type: !8)
|
!211 = !DILocalVariable(name: "j", line: 3492, scope: !208, file: !5, type: !8)
|
||||||
!212 = !DILocalVariable(name: "k", line: 3492, scope: !208, file: !5, type: !8)
|
!212 = !DILocalVariable(name: "k", line: 3492, scope: !208, file: !5, type: !8)
|
||||||
!213 = !DILocalVariable(name: "m", line: 3492, scope: !208, file: !5, type: !8)
|
!213 = !DILocalVariable(name: "m", line: 3492, scope: !208, file: !5, type: !8)
|
||||||
!214 = !DILocalVariable(name: "n", line: 3492, scope: !208, file: !5, type: !8)
|
!214 = !DILocalVariable(name: "n", line: 3492, scope: !208, file: !5, type: !8)
|
||||||
!215 = distinct !DISubprogram(name: "z_solve_cell", line: 3512, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3512, file: !1, scope: !5, type: !115, variables: !216)
|
!215 = distinct !DISubprogram(name: "z_solve_cell", line: 3512, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3512, file: !1, scope: !5, type: !115, variables: !216)
|
||||||
!216 = !{!217, !218, !219, !220}
|
!216 = !{!217, !218, !219, !220}
|
||||||
!217 = !DILocalVariable(name: "i", line: 3527, scope: !215, file: !5, type: !8)
|
!217 = !DILocalVariable(name: "i", line: 3527, scope: !215, file: !5, type: !8)
|
||||||
!218 = !DILocalVariable(name: "j", line: 3527, scope: !215, file: !5, type: !8)
|
!218 = !DILocalVariable(name: "j", line: 3527, scope: !215, file: !5, type: !8)
|
||||||
!219 = !DILocalVariable(name: "k", line: 3527, scope: !215, file: !5, type: !8)
|
!219 = !DILocalVariable(name: "k", line: 3527, scope: !215, file: !5, type: !8)
|
||||||
!220 = !DILocalVariable(name: "ksize", line: 3527, scope: !215, file: !5, type: !8)
|
!220 = !DILocalVariable(name: "ksize", line: 3527, scope: !215, file: !5, type: !8)
|
||||||
!221 = distinct !DISubprogram(name: "binvrhs", line: 3154, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3154, file: !1, scope: !5, type: !222, variables: !225)
|
!221 = distinct !DISubprogram(name: "binvrhs", line: 3154, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3154, file: !1, scope: !5, type: !222, variables: !225)
|
||||||
!222 = !DISubroutineType(types: !223)
|
!222 = !DISubroutineType(types: !223)
|
||||||
!223 = !{null, !224, !105}
|
!223 = !{null, !224, !105}
|
||||||
!224 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !91)
|
!224 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !91)
|
||||||
@ -284,7 +283,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!227 = !DILocalVariable(name: "r", line: 3154, arg: 2, scope: !221, file: !5, type: !105)
|
!227 = !DILocalVariable(name: "r", line: 3154, arg: 2, scope: !221, file: !5, type: !105)
|
||||||
!228 = !DILocalVariable(name: "pivot", line: 3159, scope: !221, file: !5, type: !20)
|
!228 = !DILocalVariable(name: "pivot", line: 3159, scope: !221, file: !5, type: !20)
|
||||||
!229 = !DILocalVariable(name: "coeff", line: 3159, scope: !221, file: !5, type: !20)
|
!229 = !DILocalVariable(name: "coeff", line: 3159, scope: !221, file: !5, type: !20)
|
||||||
!230 = distinct !DISubprogram(name: "matmul_sub", line: 2841, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2842, file: !1, scope: !5, type: !231, variables: !233)
|
!230 = distinct !DISubprogram(name: "matmul_sub", line: 2841, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2842, file: !1, scope: !5, type: !231, variables: !233)
|
||||||
!231 = !DISubroutineType(types: !232)
|
!231 = !DISubroutineType(types: !232)
|
||||||
!232 = !{null, !224, !224, !224}
|
!232 = !{null, !224, !224, !224}
|
||||||
!233 = !{!234, !235, !236, !237}
|
!233 = !{!234, !235, !236, !237}
|
||||||
@ -292,7 +291,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!235 = !DILocalVariable(name: "bblock", line: 2841, arg: 2, scope: !230, file: !5, type: !224)
|
!235 = !DILocalVariable(name: "bblock", line: 2841, arg: 2, scope: !230, file: !5, type: !224)
|
||||||
!236 = !DILocalVariable(name: "cblock", line: 2842, arg: 3, scope: !230, file: !5, type: !224)
|
!236 = !DILocalVariable(name: "cblock", line: 2842, arg: 3, scope: !230, file: !5, type: !224)
|
||||||
!237 = !DILocalVariable(name: "j", line: 2851, scope: !230, file: !5, type: !8)
|
!237 = !DILocalVariable(name: "j", line: 2851, scope: !230, file: !5, type: !8)
|
||||||
!238 = distinct !DISubprogram(name: "matvec_sub", line: 2814, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2814, file: !1, scope: !5, type: !239, variables: !241)
|
!238 = distinct !DISubprogram(name: "matvec_sub", line: 2814, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2814, file: !1, scope: !5, type: !239, variables: !241)
|
||||||
!239 = !DISubroutineType(types: !240)
|
!239 = !DISubroutineType(types: !240)
|
||||||
!240 = !{null, !224, !105, !105}
|
!240 = !{null, !224, !105, !105}
|
||||||
!241 = !{!242, !243, !244, !245}
|
!241 = !{!242, !243, !244, !245}
|
||||||
@ -300,7 +299,7 @@ attributes #1 = { nounwind readnone }
|
|||||||
!243 = !DILocalVariable(name: "avec", line: 2814, arg: 2, scope: !238, file: !5, type: !105)
|
!243 = !DILocalVariable(name: "avec", line: 2814, arg: 2, scope: !238, file: !5, type: !105)
|
||||||
!244 = !DILocalVariable(name: "bvec", line: 2814, arg: 3, scope: !238, file: !5, type: !105)
|
!244 = !DILocalVariable(name: "bvec", line: 2814, arg: 3, scope: !238, file: !5, type: !105)
|
||||||
!245 = !DILocalVariable(name: "i", line: 2823, scope: !238, file: !5, type: !8)
|
!245 = !DILocalVariable(name: "i", line: 2823, scope: !238, file: !5, type: !8)
|
||||||
!246 = distinct !DISubprogram(name: "binvcrhs", line: 2885, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2885, file: !1, scope: !5, type: !247, variables: !249)
|
!246 = distinct !DISubprogram(name: "binvcrhs", line: 2885, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2885, file: !1, scope: !5, type: !247, variables: !249)
|
||||||
!247 = !DISubroutineType(types: !248)
|
!247 = !DISubroutineType(types: !248)
|
||||||
!248 = !{null, !224, !224, !105}
|
!248 = !{null, !224, !224, !105}
|
||||||
!249 = !{!250, !251, !252, !253, !254}
|
!249 = !{!250, !251, !252, !253, !254}
|
||||||
@ -309,45 +308,45 @@ attributes #1 = { nounwind readnone }
|
|||||||
!252 = !DILocalVariable(name: "r", line: 2885, arg: 3, scope: !246, file: !5, type: !105)
|
!252 = !DILocalVariable(name: "r", line: 2885, arg: 3, scope: !246, file: !5, type: !105)
|
||||||
!253 = !DILocalVariable(name: "pivot", line: 2890, scope: !246, file: !5, type: !20)
|
!253 = !DILocalVariable(name: "pivot", line: 2890, scope: !246, file: !5, type: !20)
|
||||||
!254 = !DILocalVariable(name: "coeff", line: 2890, scope: !246, file: !5, type: !20)
|
!254 = !DILocalVariable(name: "coeff", line: 2890, scope: !246, file: !5, type: !20)
|
||||||
!255 = distinct !DISubprogram(name: "lhsz", line: 1475, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1475, file: !1, scope: !5, type: !115, variables: !256)
|
!255 = distinct !DISubprogram(name: "lhsz", line: 1475, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1475, file: !1, scope: !5, type: !115, variables: !256)
|
||||||
!256 = !{!257, !258, !259}
|
!256 = !{!257, !258, !259}
|
||||||
!257 = !DILocalVariable(name: "i", line: 1484, scope: !255, file: !5, type: !8)
|
!257 = !DILocalVariable(name: "i", line: 1484, scope: !255, file: !5, type: !8)
|
||||||
!258 = !DILocalVariable(name: "j", line: 1484, scope: !255, file: !5, type: !8)
|
!258 = !DILocalVariable(name: "j", line: 1484, scope: !255, file: !5, type: !8)
|
||||||
!259 = !DILocalVariable(name: "k", line: 1484, scope: !255, file: !5, type: !8)
|
!259 = !DILocalVariable(name: "k", line: 1484, scope: !255, file: !5, type: !8)
|
||||||
!260 = distinct !DISubprogram(name: "y_solve", line: 3299, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3299, file: !1, scope: !5, type: !115, variables: !2)
|
!260 = distinct !DISubprogram(name: "y_solve", line: 3299, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3299, file: !1, scope: !5, type: !115, variables: !2)
|
||||||
!261 = distinct !DISubprogram(name: "y_backsubstitute", line: 3323, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3323, file: !1, scope: !5, type: !115, variables: !262)
|
!261 = distinct !DISubprogram(name: "y_backsubstitute", line: 3323, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3323, file: !1, scope: !5, type: !115, variables: !262)
|
||||||
!262 = !{!263, !264, !265, !266, !267}
|
!262 = !{!263, !264, !265, !266, !267}
|
||||||
!263 = !DILocalVariable(name: "i", line: 3335, scope: !261, file: !5, type: !8)
|
!263 = !DILocalVariable(name: "i", line: 3335, scope: !261, file: !5, type: !8)
|
||||||
!264 = !DILocalVariable(name: "j", line: 3335, scope: !261, file: !5, type: !8)
|
!264 = !DILocalVariable(name: "j", line: 3335, scope: !261, file: !5, type: !8)
|
||||||
!265 = !DILocalVariable(name: "k", line: 3335, scope: !261, file: !5, type: !8)
|
!265 = !DILocalVariable(name: "k", line: 3335, scope: !261, file: !5, type: !8)
|
||||||
!266 = !DILocalVariable(name: "m", line: 3335, scope: !261, file: !5, type: !8)
|
!266 = !DILocalVariable(name: "m", line: 3335, scope: !261, file: !5, type: !8)
|
||||||
!267 = !DILocalVariable(name: "n", line: 3335, scope: !261, file: !5, type: !8)
|
!267 = !DILocalVariable(name: "n", line: 3335, scope: !261, file: !5, type: !8)
|
||||||
!268 = distinct !DISubprogram(name: "y_solve_cell", line: 3355, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3355, file: !1, scope: !5, type: !115, variables: !269)
|
!268 = distinct !DISubprogram(name: "y_solve_cell", line: 3355, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 3355, file: !1, scope: !5, type: !115, variables: !269)
|
||||||
!269 = !{!270, !271, !272, !273}
|
!269 = !{!270, !271, !272, !273}
|
||||||
!270 = !DILocalVariable(name: "i", line: 3370, scope: !268, file: !5, type: !8)
|
!270 = !DILocalVariable(name: "i", line: 3370, scope: !268, file: !5, type: !8)
|
||||||
!271 = !DILocalVariable(name: "j", line: 3370, scope: !268, file: !5, type: !8)
|
!271 = !DILocalVariable(name: "j", line: 3370, scope: !268, file: !5, type: !8)
|
||||||
!272 = !DILocalVariable(name: "k", line: 3370, scope: !268, file: !5, type: !8)
|
!272 = !DILocalVariable(name: "k", line: 3370, scope: !268, file: !5, type: !8)
|
||||||
!273 = !DILocalVariable(name: "jsize", line: 3370, scope: !268, file: !5, type: !8)
|
!273 = !DILocalVariable(name: "jsize", line: 3370, scope: !268, file: !5, type: !8)
|
||||||
!274 = distinct !DISubprogram(name: "lhsy", line: 1181, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1181, file: !1, scope: !5, type: !115, variables: !275)
|
!274 = distinct !DISubprogram(name: "lhsy", line: 1181, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1181, file: !1, scope: !5, type: !115, variables: !275)
|
||||||
!275 = !{!276, !277, !278}
|
!275 = !{!276, !277, !278}
|
||||||
!276 = !DILocalVariable(name: "i", line: 1190, scope: !274, file: !5, type: !8)
|
!276 = !DILocalVariable(name: "i", line: 1190, scope: !274, file: !5, type: !8)
|
||||||
!277 = !DILocalVariable(name: "j", line: 1190, scope: !274, file: !5, type: !8)
|
!277 = !DILocalVariable(name: "j", line: 1190, scope: !274, file: !5, type: !8)
|
||||||
!278 = !DILocalVariable(name: "k", line: 1190, scope: !274, file: !5, type: !8)
|
!278 = !DILocalVariable(name: "k", line: 1190, scope: !274, file: !5, type: !8)
|
||||||
!279 = distinct !DISubprogram(name: "x_solve", line: 2658, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2658, file: !1, scope: !5, type: !115, variables: !2)
|
!279 = distinct !DISubprogram(name: "x_solve", line: 2658, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2658, file: !1, scope: !5, type: !115, variables: !2)
|
||||||
!280 = distinct !DISubprogram(name: "x_backsubstitute", line: 2684, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2684, file: !1, scope: !5, type: !115, variables: !281)
|
!280 = distinct !DISubprogram(name: "x_backsubstitute", line: 2684, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2684, file: !1, scope: !5, type: !115, variables: !281)
|
||||||
!281 = !{!282, !283, !284, !285, !286}
|
!281 = !{!282, !283, !284, !285, !286}
|
||||||
!282 = !DILocalVariable(name: "i", line: 2696, scope: !280, file: !5, type: !8)
|
!282 = !DILocalVariable(name: "i", line: 2696, scope: !280, file: !5, type: !8)
|
||||||
!283 = !DILocalVariable(name: "j", line: 2696, scope: !280, file: !5, type: !8)
|
!283 = !DILocalVariable(name: "j", line: 2696, scope: !280, file: !5, type: !8)
|
||||||
!284 = !DILocalVariable(name: "k", line: 2696, scope: !280, file: !5, type: !8)
|
!284 = !DILocalVariable(name: "k", line: 2696, scope: !280, file: !5, type: !8)
|
||||||
!285 = !DILocalVariable(name: "m", line: 2696, scope: !280, file: !5, type: !8)
|
!285 = !DILocalVariable(name: "m", line: 2696, scope: !280, file: !5, type: !8)
|
||||||
!286 = !DILocalVariable(name: "n", line: 2696, scope: !280, file: !5, type: !8)
|
!286 = !DILocalVariable(name: "n", line: 2696, scope: !280, file: !5, type: !8)
|
||||||
!287 = distinct !DISubprogram(name: "x_solve_cell", line: 2716, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 2716, file: !1, scope: !5, type: !115, variables: !288)
|
!287 = distinct !DISubprogram(name: "x_solve_cell", line: 2716, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 2716, file: !1, scope: !5, type: !115, variables: !288)
|
||||||
!288 = !{!289, !290, !291, !292}
|
!288 = !{!289, !290, !291, !292}
|
||||||
!289 = !DILocalVariable(name: "i", line: 2728, scope: !287, file: !5, type: !8)
|
!289 = !DILocalVariable(name: "i", line: 2728, scope: !287, file: !5, type: !8)
|
||||||
!290 = !DILocalVariable(name: "j", line: 2728, scope: !287, file: !5, type: !8)
|
!290 = !DILocalVariable(name: "j", line: 2728, scope: !287, file: !5, type: !8)
|
||||||
!291 = !DILocalVariable(name: "k", line: 2728, scope: !287, file: !5, type: !8)
|
!291 = !DILocalVariable(name: "k", line: 2728, scope: !287, file: !5, type: !8)
|
||||||
!292 = !DILocalVariable(name: "isize", line: 2728, scope: !287, file: !5, type: !8)
|
!292 = !DILocalVariable(name: "isize", line: 2728, scope: !287, file: !5, type: !8)
|
||||||
!293 = distinct !DISubprogram(name: "lhsx", line: 898, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 898, file: !1, scope: !5, type: !115, variables: !294)
|
!293 = distinct !DISubprogram(name: "lhsx", line: 898, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 898, file: !1, scope: !5, type: !115, variables: !294)
|
||||||
!294 = !{!295, !296, !297}
|
!294 = !{!295, !296, !297}
|
||||||
!295 = !DILocalVariable(name: "i", line: 907, scope: !293, file: !5, type: !8)
|
!295 = !DILocalVariable(name: "i", line: 907, scope: !293, file: !5, type: !8)
|
||||||
!296 = !DILocalVariable(name: "j", line: 907, scope: !293, file: !5, type: !8)
|
!296 = !DILocalVariable(name: "j", line: 907, scope: !293, file: !5, type: !8)
|
||||||
|
@ -56,13 +56,12 @@ attributes #3 = { nounwind }
|
|||||||
!llvm.module.flags = !{!29, !30}
|
!llvm.module.flags = !{!29, !30}
|
||||||
!llvm.ident = !{!31}
|
!llvm.ident = !{!31}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (git://github.com/llvm-mirror/clang.git e0848b6353721eb1b278a5bbea257bbf6316251e) (git://github.com/llvm-mirror/llvm.git 8724a428dfd5e78d7865bb01783708e83f9ed128)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, subprograms: !5, globals: !23)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.0 (git://github.com/llvm-mirror/clang.git e0848b6353721eb1b278a5bbea257bbf6316251e) (git://github.com/llvm-mirror/llvm.git 8724a428dfd5e78d7865bb01783708e83f9ed128)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, globals: !23)
|
||||||
!1 = !DIFile(filename: "testcase.i", directory: "/tmp/glibc.build")
|
!1 = !DIFile(filename: "testcase.i", directory: "/tmp/glibc.build")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!3 = !{!4}
|
||||||
!4 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float)
|
!4 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float)
|
||||||
!5 = !{!6, !18}
|
!6 = distinct !DISubprogram(name: "_php_math_round", scope: !1, file: !1, line: 15, type: !7, isLocal: false, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !10)
|
||||||
!6 = distinct !DISubprogram(name: "_php_math_round", scope: !1, file: !1, line: 15, type: !7, isLocal: false, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: true, variables: !10)
|
|
||||||
!7 = !DISubroutineType(types: !8)
|
!7 = !DISubroutineType(types: !8)
|
||||||
!8 = !{!4, !4, !9, !9}
|
!8 = !{!4, !4, !9, !9}
|
||||||
!9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!9 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
@ -74,7 +73,7 @@ attributes #3 = { nounwind }
|
|||||||
!15 = !DILocalVariable(name: "f2", scope: !6, file: !1, line: 17, type: !4)
|
!15 = !DILocalVariable(name: "f2", scope: !6, file: !1, line: 17, type: !4)
|
||||||
!16 = !DILocalVariable(name: "tmp_value", scope: !6, file: !1, line: 18, type: !4)
|
!16 = !DILocalVariable(name: "tmp_value", scope: !6, file: !1, line: 18, type: !4)
|
||||||
!17 = !DILocalVariable(name: "precision_places", scope: !6, file: !1, line: 19, type: !9)
|
!17 = !DILocalVariable(name: "precision_places", scope: !6, file: !1, line: 19, type: !9)
|
||||||
!18 = distinct !DISubprogram(name: "php_intpow10", scope: !1, file: !1, line: 1, type: !19, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, variables: !21)
|
!18 = distinct !DISubprogram(name: "php_intpow10", scope: !1, file: !1, line: 1, type: !19, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !21)
|
||||||
!19 = !DISubroutineType(types: !20)
|
!19 = !DISubroutineType(types: !20)
|
||||||
!20 = !{!4, !9}
|
!20 = !{!4, !9}
|
||||||
!21 = !{!22}
|
!21 = !{!22}
|
||||||
|
@ -21,11 +21,10 @@ attributes #0 = { nounwind }
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!8, !11}
|
!llvm.module.flags = !{!8, !11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp")
|
!1 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !0, scopeLine: 1, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp")
|
!5 = !DIFile(filename: "/tmp/unwind-dw2.c", directory: "/tmp")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null}
|
!7 = !{null}
|
||||||
|
@ -51,9 +51,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!0 = !DILocation(line: 46, scope: !1)
|
!0 = !DILocation(line: 46, scope: !1)
|
||||||
!1 = distinct !DILexicalBlock(line: 44, column: 0, file: !101, scope: !2)
|
!1 = distinct !DILexicalBlock(line: 44, column: 0, file: !101, scope: !2)
|
||||||
!2 = distinct !DILexicalBlock(line: 44, column: 0, file: !101, scope: !3)
|
!2 = distinct !DILexicalBlock(line: 44, column: 0, file: !101, scope: !3)
|
||||||
!3 = distinct !DISubprogram(name: "getClosestDiagonal3", linkageName: "_Z19getClosestDiagonal3ii", line: 44, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !101, scope: null, type: !6)
|
!3 = distinct !DISubprogram(name: "getClosestDiagonal3", linkageName: "_Z19getClosestDiagonal3ii", line: 44, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !5, file: !101, scope: null, type: !6)
|
||||||
!4 = !DIFile(filename: "ggEdgeDiscrepancy.cc", directory: "/Volumes/Home/grosbaj/sources/llvm-externals/speccpu2000/benchspec/CINT2000/252.eon/src")
|
!4 = !DIFile(filename: "ggEdgeDiscrepancy.cc", directory: "/Volumes/Home/grosbaj/sources/llvm-externals/speccpu2000/benchspec/CINT2000/252.eon/src")
|
||||||
!5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !101, enums: !102, retainedTypes: !102, subprograms: !{!3, !37, !41, !42, !77})
|
!5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)", isOptimized: true, emissionKind: FullDebug, file: !101, enums: !102, retainedTypes: !102)
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8, !22, !22}
|
!7 = !{!8, !22, !22}
|
||||||
!8 = !DICompositeType(tag: DW_TAG_structure_type, name: "ggVector3", line: 66, size: 192, align: 32, file: !99, elements: !10)
|
!8 = !DICompositeType(tag: DW_TAG_structure_type, name: "ggVector3", line: 66, size: 192, align: 32, file: !99, elements: !10)
|
||||||
@ -87,12 +87,12 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!34 = !DIDerivedType(tag: DW_TAG_const_type, size: 192, align: 32, file: !101, scope: !4, baseType: !8)
|
!34 = !DIDerivedType(tag: DW_TAG_const_type, size: 192, align: 32, file: !101, scope: !4, baseType: !8)
|
||||||
!35 = !DISubprogram(name: "y", linkageName: "_ZNK9ggVector31yEv", line: 83, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
!35 = !DISubprogram(name: "y", linkageName: "_ZNK9ggVector31yEv", line: 83, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
||||||
!36 = !DISubprogram(name: "z", linkageName: "_ZNK9ggVector31zEv", line: 84, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
!36 = !DISubprogram(name: "z", linkageName: "_ZNK9ggVector31zEv", line: 84, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
||||||
!37 = distinct !DISubprogram(name: "x", linkageName: "_ZN9ggVector31xEv", line: 85, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !38)
|
!37 = distinct !DISubprogram(name: "x", linkageName: "_ZN9ggVector31xEv", line: 85, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !5, file: !9, scope: !8, type: !38)
|
||||||
!38 = !DISubroutineType(types: !39)
|
!38 = !DISubroutineType(types: !39)
|
||||||
!39 = !{!40, !19}
|
!39 = !{!40, !19}
|
||||||
!40 = !DIDerivedType(tag: DW_TAG_reference_type, name: "double", size: 32, align: 32, file: !101, scope: !4, baseType: !13)
|
!40 = !DIDerivedType(tag: DW_TAG_reference_type, name: "double", size: 32, align: 32, file: !101, scope: !4, baseType: !13)
|
||||||
!41 = distinct !DISubprogram(name: "y", linkageName: "_ZN9ggVector31yEv", line: 86, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !38)
|
!41 = distinct !DISubprogram(name: "y", linkageName: "_ZN9ggVector31yEv", line: 86, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !5, file: !9, scope: !8, type: !38)
|
||||||
!42 = distinct !DISubprogram(name: "z", linkageName: "_ZN9ggVector31zEv", line: 87, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !38)
|
!42 = distinct !DISubprogram(name: "z", linkageName: "_ZN9ggVector31zEv", line: 87, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !5, file: !9, scope: !8, type: !38)
|
||||||
!43 = !DISubprogram(name: "SetX", linkageName: "_ZN9ggVector34SetXEd", line: 88, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !44)
|
!43 = !DISubprogram(name: "SetX", linkageName: "_ZN9ggVector34SetXEd", line: 88, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !44)
|
||||||
!44 = !DISubroutineType(types: !45)
|
!44 = !DISubroutineType(types: !45)
|
||||||
!45 = !{null, !19, !13}
|
!45 = !{null, !19, !13}
|
||||||
@ -127,7 +127,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!74 = !DISubprogram(name: "operator/=", linkageName: "_ZN9ggVector3dVEd", line: 324, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !72)
|
!74 = !DISubprogram(name: "operator/=", linkageName: "_ZN9ggVector3dVEd", line: 324, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !72)
|
||||||
!75 = !DISubprogram(name: "length", linkageName: "_ZNK9ggVector36lengthEv", line: 121, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
!75 = !DISubprogram(name: "length", linkageName: "_ZNK9ggVector36lengthEv", line: 121, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
||||||
!76 = !DISubprogram(name: "squaredLength", linkageName: "_ZNK9ggVector313squaredLengthEv", line: 122, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
!76 = !DISubprogram(name: "squaredLength", linkageName: "_ZNK9ggVector313squaredLengthEv", line: 122, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !31)
|
||||||
!77 = distinct !DISubprogram(name: "MakeUnitVector", linkageName: "_ZN9ggVector314MakeUnitVectorEv", line: 217, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !24)
|
!77 = distinct !DISubprogram(name: "MakeUnitVector", linkageName: "_ZN9ggVector314MakeUnitVectorEv", line: 217, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !5, file: !9, scope: !8, type: !24)
|
||||||
!78 = !DISubprogram(name: "Perturb", linkageName: "_ZNK9ggVector37PerturbEdd", line: 126, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !79)
|
!78 = !DISubprogram(name: "Perturb", linkageName: "_ZNK9ggVector37PerturbEdd", line: 126, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, file: !9, scope: !8, type: !79)
|
||||||
!79 = !DISubroutineType(types: !80)
|
!79 = !DISubroutineType(types: !80)
|
||||||
!80 = !{!8, !33, !13, !13}
|
!80 = !{!8, !33, !13, !13}
|
||||||
|
@ -383,11 +383,10 @@ exit:
|
|||||||
!llvm.dbg.cu = !{!1}
|
!llvm.dbg.cu = !{!1}
|
||||||
|
|
||||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
!1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, subprograms: !4)
|
!1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "compiler", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3)
|
||||||
!2 = !DIFile(filename: "test.cpp", directory: ".")
|
!2 = !DIFile(filename: "test.cpp", directory: ".")
|
||||||
!3 = !{}
|
!3 = !{}
|
||||||
!4 = !{!5}
|
!5 = distinct !DISubprogram(name: "test12", scope: !2, file: !2, type: !6, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !1, variables: !3)
|
||||||
!5 = distinct !DISubprogram(name: "test12", scope: !2, file: !2, type: !6, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, variables: !3)
|
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null}
|
!7 = !{null}
|
||||||
!8 = !DILocation(line: 1, scope: !5)
|
!8 = !DILocation(line: 1, scope: !5)
|
||||||
|
@ -78,7 +78,7 @@ declare void @llvm.stackrestore(i8*) nounwind
|
|||||||
|
|
||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!0 = !DILocalVariable(name: "s1", line: 2, arg: 1, scope: !1, file: !2, type: !6)
|
!0 = !DILocalVariable(name: "s1", line: 2, arg: 1, scope: !1, file: !2, type: !6)
|
||||||
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scope: !2, type: !3)
|
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2, scope: !2, type: !3)
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !17, enums: !18, retainedTypes: !18)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !17, enums: !18, retainedTypes: !18)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5, !6}
|
!4 = !{!5, !6}
|
||||||
|
@ -25,7 +25,7 @@ declare i32 @foo(i32) ssp
|
|||||||
!llvm.dbg.cu = !{!3}
|
!llvm.dbg.cu = !{!3}
|
||||||
!0 = !DILocation(line: 5, column: 2, scope: !1)
|
!0 = !DILocation(line: 5, column: 2, scope: !1)
|
||||||
!1 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !2)
|
!1 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !2)
|
||||||
!2 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scope: !3)
|
!2 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scope: !3)
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 1.1", isOptimized: true, emissionKind: FullDebug, file: !8, retainedTypes: !9)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang 1.1", isOptimized: true, emissionKind: FullDebug, file: !8, retainedTypes: !9)
|
||||||
!4 = !DILocalVariable(name: "count_", line: 5, scope: !5, file: !3, type: !6)
|
!4 = !DILocalVariable(name: "count_", line: 5, scope: !5, file: !3, type: !6)
|
||||||
!5 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !1)
|
!5 = distinct !DILexicalBlock(line: 1, column: 1, file: null, scope: !1)
|
||||||
|
@ -32,9 +32,9 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
|||||||
!llvm.module.flags = !{!21}
|
!llvm.module.flags = !{!21}
|
||||||
|
|
||||||
!0 = !DILocalVariable(name: "my_r0", line: 11, arg: 1, scope: !1, file: !2, type: !7)
|
!0 = !DILocalVariable(name: "my_r0", line: 11, arg: 1, scope: !1, file: !2, type: !7)
|
||||||
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 11, file: !19, scope: !2, type: !4)
|
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scopeLine: 11, file: !19, scope: !2, type: !4)
|
||||||
!2 = !DIFile(filename: "b2.c", directory: "/tmp/")
|
!2 = !DIFile(filename: "b2.c", directory: "/tmp/")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !19, enums: !20, retainedTypes: !20, subprograms: !18)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !19, enums: !20, retainedTypes: !20)
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{!6, !7}
|
!5 = !{!6, !7}
|
||||||
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 64, encoding: DW_ATE_float)
|
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 64, encoding: DW_ATE_float)
|
||||||
@ -49,7 +49,6 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
|
|||||||
!15 = !DILocation(line: 11, scope: !1)
|
!15 = !DILocation(line: 11, scope: !1)
|
||||||
!16 = !DILocation(line: 12, scope: !17)
|
!16 = !DILocation(line: 12, scope: !17)
|
||||||
!17 = distinct !DILexicalBlock(line: 11, column: 0, file: !19, scope: !1)
|
!17 = distinct !DILexicalBlock(line: 11, column: 0, file: !19, scope: !1)
|
||||||
!18 = !{!1}
|
|
||||||
!19 = !DIFile(filename: "b2.c", directory: "/tmp/")
|
!19 = !DIFile(filename: "b2.c", directory: "/tmp/")
|
||||||
!20 = !{}
|
!20 = !{}
|
||||||
!21 = !{i32 1, !"Debug Info Version", i32 3}
|
!21 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -29,7 +29,7 @@ declare void @"tart.reflect.ComplexType.create->tart.core.Object"(%tart.reflect.
|
|||||||
!7 = !DIDerivedType(tag: DW_TAG_member, name: "z", line: 1, size: 64, align: 64, offset: 128, file: !15, scope: !2, baseType: !5)
|
!7 = !DIDerivedType(tag: DW_TAG_member, name: "z", line: 1, size: 64, align: 64, offset: 128, file: !15, scope: !2, baseType: !5)
|
||||||
!8 = !DILocalVariable(name: "t", line: 5, scope: !9, file: !0, type: !2)
|
!8 = !DILocalVariable(name: "t", line: 5, scope: !9, file: !0, type: !2)
|
||||||
!9 = distinct !DILexicalBlock(line: 0, column: 0, file: null, scope: !10)
|
!9 = distinct !DILexicalBlock(line: 0, column: 0, file: null, scope: !10)
|
||||||
!10 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scope: !0, type: !11)
|
!10 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !0, scope: !0, type: !11)
|
||||||
!11 = !DISubroutineType(types: !12)
|
!11 = !DISubroutineType(types: !12)
|
||||||
!12 = !{!13}
|
!12 = !{!13}
|
||||||
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -200,9 +200,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.module.flags = !{!48}
|
!llvm.module.flags = !{!48}
|
||||||
|
|
||||||
!0 = !DILocalVariable(name: "a", line: 1921, arg: 1, scope: !1, file: !2, type: !9)
|
!0 = !DILocalVariable(name: "a", line: 1921, arg: 1, scope: !1, file: !2, type: !9)
|
||||||
!1 = distinct !DISubprogram(name: "__divsc3", linkageName: "__divsc3", line: 1922, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 1922, file: !45, scope: !2, type: !4, variables: !43)
|
!1 = distinct !DISubprogram(name: "__divsc3", linkageName: "__divsc3", line: 1922, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !3, scopeLine: 1922, file: !45, scope: !2, type: !4, variables: !43)
|
||||||
!2 = !DIFile(filename: "libgcc2.c", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
!2 = !DIFile(filename: "libgcc2.c", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !45, enums: !47, retainedTypes: !47, subprograms: !44, imports: null)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !45, enums: !47, retainedTypes: !47, imports: null)
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{!6, !9, !9, !9, !9}
|
!5 = !{!6, !9, !9, !9, !9}
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_typedef, name: "SCtype", line: 170, file: !46, scope: !7, baseType: !8)
|
!6 = !DIDerivedType(tag: DW_TAG_typedef, name: "SCtype", line: 170, file: !46, scope: !7, baseType: !8)
|
||||||
@ -243,7 +243,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!41 = !DILocation(line: 1965, scope: !15)
|
!41 = !DILocation(line: 1965, scope: !15)
|
||||||
!42 = !DILocation(line: 1969, scope: !15)
|
!42 = !DILocation(line: 1969, scope: !15)
|
||||||
!43 = !{!0, !11, !12, !13, !14, !16, !17, !18}
|
!43 = !{!0, !11, !12, !13, !14, !16, !17, !18}
|
||||||
!44 = !{!1}
|
|
||||||
!45 = !DIFile(filename: "libgcc2.c", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
!45 = !DIFile(filename: "libgcc2.c", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
||||||
!46 = !DIFile(filename: "libgcc2.h", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
!46 = !DIFile(filename: "libgcc2.h", directory: "/Users/yash/clean/LG.D/gcc/../../llvmgcc/gcc")
|
||||||
!47 = !{}
|
!47 = !{}
|
||||||
|
@ -26,14 +26,14 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
|
|
||||||
!0 = !DIGlobalVariable(name: "ret", line: 7, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !3)
|
!0 = !DIGlobalVariable(name: "ret", line: 7, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !3)
|
||||||
!1 = !DIFile(filename: "foo.c", directory: "/tmp/")
|
!1 = !DIFile(filename: "foo.c", directory: "/tmp/")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !36, enums: !37, retainedTypes: !37, subprograms: !32, globals: !31, imports: !37)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !36, enums: !37, retainedTypes: !37, globals: !31, imports: !37)
|
||||||
!3 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!3 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!4 = !DILocalVariable(name: "x", line: 12, arg: 1, scope: !5, file: !1, type: !3)
|
!4 = !DILocalVariable(name: "x", line: 12, arg: 1, scope: !5, file: !1, type: !3)
|
||||||
!5 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 13, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 13, file: !36, scope: !1, type: !6, variables: !33)
|
!5 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 13, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2, scopeLine: 13, file: !36, scope: !1, type: !6, variables: !33)
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{null, !3}
|
!7 = !{null, !3}
|
||||||
!8 = !DILocalVariable(name: "myvar", line: 17, arg: 1, scope: !9, file: !1, type: !13)
|
!8 = !DILocalVariable(name: "myvar", line: 17, arg: 1, scope: !9, file: !1, type: !13)
|
||||||
!9 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 17, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 17, file: !36, scope: !1, type: !10, variables: !34)
|
!9 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 17, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2, scopeLine: 17, file: !36, scope: !1, type: !10, variables: !34)
|
||||||
!10 = !DISubroutineType(types: !11)
|
!10 = !DISubroutineType(types: !11)
|
||||||
!11 = !{!12, !13}
|
!11 = !{!12, !13}
|
||||||
!12 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !36, scope: !1, baseType: null)
|
!12 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !36, scope: !1, baseType: null)
|
||||||
@ -43,7 +43,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!16 = !DIDerivedType(tag: DW_TAG_member, name: "c", line: 3, size: 32, align: 32, file: !36, scope: !14, baseType: !3)
|
!16 = !DIDerivedType(tag: DW_TAG_member, name: "c", line: 3, size: 32, align: 32, file: !36, scope: !14, baseType: !3)
|
||||||
!17 = !DIDerivedType(tag: DW_TAG_member, name: "d", line: 4, size: 64, align: 64, offset: 64, file: !36, scope: !14, baseType: !13)
|
!17 = !DIDerivedType(tag: DW_TAG_member, name: "d", line: 4, size: 64, align: 64, offset: 64, file: !36, scope: !14, baseType: !13)
|
||||||
!18 = !DILocalVariable(name: "argc", line: 22, arg: 1, scope: !19, file: !1, type: !3)
|
!18 = !DILocalVariable(name: "argc", line: 22, arg: 1, scope: !19, file: !1, type: !3)
|
||||||
!19 = distinct !DISubprogram(name: "main", linkageName: "main", line: 22, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 22, file: !36, scope: !1, type: !20, variables: !35)
|
!19 = distinct !DISubprogram(name: "main", linkageName: "main", line: 22, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2, scopeLine: 22, file: !36, scope: !1, type: !20, variables: !35)
|
||||||
!20 = !DISubroutineType(types: !21)
|
!20 = !DISubroutineType(types: !21)
|
||||||
!21 = !{!3, !3, !22}
|
!21 = !{!3, !3, !22}
|
||||||
!22 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !36, scope: !1, baseType: !23)
|
!22 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !36, scope: !1, baseType: !23)
|
||||||
@ -56,7 +56,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!29 = distinct !DILexicalBlock(line: 17, column: 0, file: !36, scope: !9)
|
!29 = distinct !DILexicalBlock(line: 17, column: 0, file: !36, scope: !9)
|
||||||
!30 = !DILocation(line: 19, scope: !29)
|
!30 = !DILocation(line: 19, scope: !29)
|
||||||
!31 = !{!0}
|
!31 = !{!0}
|
||||||
!32 = !{!5, !9, !19}
|
|
||||||
!33 = !{!4}
|
!33 = !{!4}
|
||||||
!34 = !{!8}
|
!34 = !{!8}
|
||||||
!35 = !{!18, !25, !26}
|
!35 = !{!18, !25, !26}
|
||||||
|
@ -26,14 +26,14 @@ entry:
|
|||||||
!llvm.module.flags = !{!20}
|
!llvm.module.flags = !{!20}
|
||||||
|
|
||||||
!0 = !DILocalVariable(name: "y", line: 2, arg: 1, scope: !1, file: !2, type: !6)
|
!0 = !DILocalVariable(name: "y", line: 2, arg: 1, scope: !1, file: !2, type: !6)
|
||||||
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 2, file: !18, scope: !2, type: !4, variables: !15)
|
!1 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !3, scopeLine: 2, file: !18, scope: !2, type: !4, variables: !15)
|
||||||
!2 = !DIFile(filename: "f.c", directory: "/tmp")
|
!2 = !DIFile(filename: "f.c", directory: "/tmp")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !18, enums: !19, retainedTypes: !19, subprograms: !17, imports: null)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !18, enums: !19, retainedTypes: !19, imports: null)
|
||||||
!4 = !DISubroutineType(types: !5)
|
!4 = !DISubroutineType(types: !5)
|
||||||
!5 = !{!6, !6}
|
!5 = !{!6, !6}
|
||||||
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!7 = !DILocalVariable(name: "x", line: 6, arg: 1, scope: !8, file: !2, type: !6)
|
!7 = !DILocalVariable(name: "x", line: 6, arg: 1, scope: !8, file: !2, type: !6)
|
||||||
!8 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 6, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 6, file: !18, scope: !2, type: !4, variables: !16)
|
!8 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 6, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !3, scopeLine: 6, file: !18, scope: !2, type: !4, variables: !16)
|
||||||
!9 = !DILocation(line: 3, scope: !10)
|
!9 = !DILocation(line: 3, scope: !10)
|
||||||
!10 = distinct !DILexicalBlock(line: 2, column: 0, file: !18, scope: !1)
|
!10 = distinct !DILexicalBlock(line: 2, column: 0, file: !18, scope: !1)
|
||||||
!11 = !{i32 1}
|
!11 = !{i32 1}
|
||||||
@ -42,7 +42,6 @@ entry:
|
|||||||
!14 = distinct !DILexicalBlock(line: 6, column: 0, file: !18, scope: !8)
|
!14 = distinct !DILexicalBlock(line: 6, column: 0, file: !18, scope: !8)
|
||||||
!15 = !{!0}
|
!15 = !{!0}
|
||||||
!16 = !{!7}
|
!16 = !{!7}
|
||||||
!17 = !{!1, !8}
|
|
||||||
!18 = !DIFile(filename: "f.c", directory: "/tmp")
|
!18 = !DIFile(filename: "f.c", directory: "/tmp")
|
||||||
!19 = !{}
|
!19 = !{}
|
||||||
|
|
||||||
|
@ -24,14 +24,14 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.lv = !{!0, !14, !15, !16, !17, !24, !25, !28}
|
!llvm.dbg.lv = !{!0, !14, !15, !16, !17, !24, !25, !28}
|
||||||
|
|
||||||
!0 = !DILocalVariable(name: "this", line: 11, arg: 1, scope: !1, file: !3, type: !12)
|
!0 = !DILocalVariable(name: "this", line: 11, arg: 1, scope: !1, file: !3, type: !12)
|
||||||
!1 = distinct !DISubprogram(name: "bar", linkageName: "_ZN3foo3barEi", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 11, file: !31, scope: !2, type: !9)
|
!1 = distinct !DISubprogram(name: "bar", linkageName: "_ZN3foo3barEi", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !4, scopeLine: 11, file: !31, scope: !2, type: !9)
|
||||||
!2 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", line: 3, size: 32, align: 32, file: !31, scope: !3, elements: !5)
|
!2 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", line: 3, size: 32, align: 32, file: !31, scope: !3, elements: !5)
|
||||||
!3 = !DIFile(filename: "foo.cp", directory: "/tmp/")
|
!3 = !DIFile(filename: "foo.cp", directory: "/tmp/")
|
||||||
!4 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 LLVM build", isOptimized: true, emissionKind: FullDebug, file: !31, enums: !32, retainedTypes: !32, subprograms: !33)
|
!4 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 LLVM build", isOptimized: true, emissionKind: FullDebug, file: !31, enums: !32, retainedTypes: !32)
|
||||||
!5 = !{!6, !1, !8}
|
!5 = !{!6, !1, !8}
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_member, name: "y", line: 8, size: 32, align: 32, file: !31, scope: !2, baseType: !7)
|
!6 = !DIDerivedType(tag: DW_TAG_member, name: "y", line: 8, size: 32, align: 32, file: !31, scope: !2, baseType: !7)
|
||||||
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!8 = distinct !DISubprogram(name: "baz", linkageName: "_ZN3foo3bazEi", line: 15, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 15, file: !31, scope: !2, type: !9)
|
!8 = distinct !DISubprogram(name: "baz", linkageName: "_ZN3foo3bazEi", line: 15, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !4, scopeLine: 15, file: !31, scope: !2, type: !9)
|
||||||
!9 = !DISubroutineType(types: !10)
|
!9 = !DISubroutineType(types: !10)
|
||||||
!10 = !{!7, !11, !7}
|
!10 = !{!7, !11, !7}
|
||||||
!11 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, flags: DIFlagArtificial, file: !31, scope: !3, baseType: !2)
|
!11 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, flags: DIFlagArtificial, file: !31, scope: !3, baseType: !2)
|
||||||
@ -41,7 +41,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!15 = !DILocalVariable(name: "this", line: 15, arg: 1, scope: !8, file: !3, type: !12)
|
!15 = !DILocalVariable(name: "this", line: 15, arg: 1, scope: !8, file: !3, type: !12)
|
||||||
!16 = !DILocalVariable(name: "x", line: 15, arg: 2, scope: !8, file: !3, type: !7)
|
!16 = !DILocalVariable(name: "x", line: 15, arg: 2, scope: !8, file: !3, type: !7)
|
||||||
!17 = !DILocalVariable(name: "argc", line: 19, arg: 1, scope: !18, file: !3, type: !7)
|
!17 = !DILocalVariable(name: "argc", line: 19, arg: 1, scope: !18, file: !3, type: !7)
|
||||||
!18 = distinct !DISubprogram(name: "main", linkageName: "main", line: 19, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, scopeLine: 19, file: !31, scope: !3, type: !19)
|
!18 = distinct !DISubprogram(name: "main", linkageName: "main", line: 19, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !4, scopeLine: 19, file: !31, scope: !3, type: !19)
|
||||||
!19 = !DISubroutineType(types: !20)
|
!19 = !DISubroutineType(types: !20)
|
||||||
!20 = !{!7, !7, !21}
|
!20 = !{!7, !7, !21}
|
||||||
!21 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !31, scope: !3, baseType: !22)
|
!21 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !31, scope: !3, baseType: !22)
|
||||||
@ -56,5 +56,4 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!30 = distinct !DILexicalBlock(line: 15, column: 0, file: !31, scope: !8)
|
!30 = distinct !DILexicalBlock(line: 15, column: 0, file: !31, scope: !8)
|
||||||
!31 = !DIFile(filename: "foo.cp", directory: "/tmp/")
|
!31 = !DIFile(filename: "foo.cp", directory: "/tmp/")
|
||||||
!32 = !{}
|
!32 = !{}
|
||||||
!33 = !{!1, !8, !18}
|
|
||||||
!34 = !{i32 1, !"Debug Info Version", i32 3}
|
!34 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
!39 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)", isOptimized: true, emissionKind: FullDebug, file: !109, enums: !108, retainedTypes: !108)
|
!39 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build 9999)", isOptimized: true, emissionKind: FullDebug, file: !109, enums: !108, retainedTypes: !108)
|
||||||
!46 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !109, baseType: !47)
|
!46 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !109, baseType: !47)
|
||||||
!47 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
!47 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
||||||
!97 = distinct !DISubprogram(name: "main", linkageName: "main", line: 73, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scope: !39, type: !98)
|
!97 = distinct !DISubprogram(name: "main", linkageName: "main", line: 73, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !39, scope: !39, type: !98)
|
||||||
!98 = !DISubroutineType(types: !99)
|
!98 = !DISubroutineType(types: !99)
|
||||||
!99 = !{!100}
|
!99 = !{!100}
|
||||||
!100 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!100 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
|
@ -81,7 +81,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!0 = !DISubprogram(name: "SVal", line: 11, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, scopeLine: 11, file: !47, scope: !1, type: !14)
|
!0 = !DISubprogram(name: "SVal", line: 11, isLocal: false, isDefinition: false, virtualIndex: 6, isOptimized: false, scopeLine: 11, file: !47, scope: !1, type: !14)
|
||||||
!1 = !DICompositeType(tag: DW_TAG_structure_type, name: "SVal", line: 1, size: 128, align: 64, file: !47, scope: !2, elements: !4)
|
!1 = !DICompositeType(tag: DW_TAG_structure_type, name: "SVal", line: 1, size: 128, align: 64, file: !47, scope: !2, elements: !4)
|
||||||
!2 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
!2 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
|
||||||
!3 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, subprograms: !46, imports: null)
|
!3 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: false, emissionKind: FullDebug, file: !47, enums: !48, retainedTypes: !48, imports: null)
|
||||||
!4 = !{!5, !7, !0, !9}
|
!4 = !{!5, !7, !0, !9}
|
||||||
!5 = !DIDerivedType(tag: DW_TAG_member, name: "Data", line: 7, size: 64, align: 64, file: !47, scope: !1, baseType: !6)
|
!5 = !DIDerivedType(tag: DW_TAG_member, name: "Data", line: 7, size: 64, align: 64, file: !47, scope: !1, baseType: !6)
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !47, scope: !2, baseType: null)
|
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, file: !47, scope: !2, baseType: null)
|
||||||
@ -94,11 +94,11 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!14 = !DISubroutineType(types: !15)
|
!14 = !DISubroutineType(types: !15)
|
||||||
!15 = !{null, !12}
|
!15 = !{null, !12}
|
||||||
!16 = distinct !DISubprogram(name: "SVal", linkageName: "_ZN4SValC1Ev", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 11, file: !47, scope: !1, type: !14)
|
!16 = distinct !DISubprogram(name: "SVal", linkageName: "_ZN4SValC1Ev", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scopeLine: 11, file: !47, scope: !1, type: !14)
|
||||||
!17 = distinct !DISubprogram(name: "foo", linkageName: "_Z3fooi4SVal", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 16, file: !47, scope: !2, type: !18)
|
!17 = distinct !DISubprogram(name: "foo", linkageName: "_Z3fooi4SVal", line: 16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scopeLine: 16, file: !47, scope: !2, type: !18)
|
||||||
!18 = !DISubroutineType(types: !19)
|
!18 = !DISubroutineType(types: !19)
|
||||||
!19 = !{!13, !13, !1}
|
!19 = !{!13, !13, !1}
|
||||||
!20 = distinct !DISubprogram(name: "main", linkageName: "main", line: 23, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 23, file: !47, scope: !2, type: !21)
|
!20 = distinct !DISubprogram(name: "main", linkageName: "main", line: 23, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !3, scopeLine: 23, file: !47, scope: !2, type: !21)
|
||||||
!21 = !DISubroutineType(types: !22)
|
!21 = !DISubroutineType(types: !22)
|
||||||
!22 = !{!13}
|
!22 = !{!13}
|
||||||
!23 = !DILocalVariable(name: "i", line: 16, arg: 1, scope: !17, file: !2, type: !13)
|
!23 = !DILocalVariable(name: "i", line: 16, arg: 1, scope: !17, file: !2, type: !13)
|
||||||
|
@ -15,20 +15,19 @@ entry:
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!17}
|
!llvm.module.flags = !{!17}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 53, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !14, scope: !1, type: !3)
|
!0 = distinct !DISubprogram(name: "foo", linkageName: "foo", line: 53, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2, file: !14, scope: !1, type: !3)
|
||||||
!1 = !DIFile(filename: "", directory: "/private/tmp")
|
!1 = !DIFile(filename: "", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 114084)", isOptimized: false, emissionKind: FullDebug, file: !15, enums: !16, retainedTypes: !16, subprograms: !13)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 114084)", isOptimized: false, emissionKind: FullDebug, file: !15, enums: !16, retainedTypes: !16)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
!6 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, file: !15, scope: !7, type: !3)
|
!6 = distinct !DISubprogram(name: "bar", linkageName: "bar", line: 4, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !2, file: !15, scope: !7, type: !3)
|
||||||
!7 = !DIFile(filename: "bug.c", directory: "/private/tmp")
|
!7 = !DIFile(filename: "bug.c", directory: "/private/tmp")
|
||||||
!8 = !DILocation(line: 53, column: 13, scope: !9)
|
!8 = !DILocation(line: 53, column: 13, scope: !9)
|
||||||
!9 = distinct !DILexicalBlock(line: 53, column: 11, file: !14, scope: !0)
|
!9 = distinct !DILexicalBlock(line: 53, column: 11, file: !14, scope: !0)
|
||||||
!10 = !DILocation(line: 4, column: 13, scope: !11)
|
!10 = !DILocation(line: 4, column: 13, scope: !11)
|
||||||
!11 = distinct !DILexicalBlock(line: 4, column: 13, file: !15, scope: !12)
|
!11 = distinct !DILexicalBlock(line: 4, column: 13, file: !15, scope: !12)
|
||||||
!12 = distinct !DILexicalBlock(line: 4, column: 11, file: !15, scope: !6)
|
!12 = distinct !DILexicalBlock(line: 4, column: 11, file: !15, scope: !6)
|
||||||
!13 = !{!0, !6}
|
|
||||||
!14 = !DIFile(filename: "", directory: "/private/tmp")
|
!14 = !DIFile(filename: "", directory: "/private/tmp")
|
||||||
!15 = !DIFile(filename: "bug.c", directory: "/private/tmp")
|
!15 = !DIFile(filename: "bug.c", directory: "/private/tmp")
|
||||||
!16 = !{}
|
!16 = !{}
|
||||||
|
@ -18,9 +18,9 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!19}
|
!llvm.module.flags = !{!19}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "foo", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 3, file: !17, scope: !1, type: !3, variables: !16)
|
!0 = distinct !DISubprogram(name: "foo", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, scopeLine: 3, file: !17, scope: !1, type: !3, variables: !16)
|
||||||
!1 = !DIFile(filename: "one.c", directory: "/private/tmp")
|
!1 = !DIFile(filename: "one.c", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 117922)", isOptimized: true, emissionKind: FullDebug, file: !17, enums: !18, retainedTypes: !18, subprograms: !15, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 117922)", isOptimized: true, emissionKind: FullDebug, file: !17, enums: !18, retainedTypes: !18, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
@ -33,7 +33,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!12 = !DILocation(line: 3, column: 47, scope: !0)
|
!12 = !DILocation(line: 3, column: 47, scope: !0)
|
||||||
!13 = !DILocation(line: 4, column: 2, scope: !14)
|
!13 = !DILocation(line: 4, column: 2, scope: !14)
|
||||||
!14 = distinct !DILexicalBlock(line: 3, column: 50, file: !17, scope: !0)
|
!14 = distinct !DILexicalBlock(line: 3, column: 50, file: !17, scope: !0)
|
||||||
!15 = !{!0}
|
|
||||||
!16 = !{!6}
|
!16 = !{!6}
|
||||||
!17 = !DIFile(filename: "one.c", directory: "/private/tmp")
|
!17 = !DIFile(filename: "one.c", directory: "/private/tmp")
|
||||||
!18 = !{}
|
!18 = !{}
|
||||||
|
@ -78,13 +78,13 @@ declare i32 @puts(i8* nocapture) nounwind
|
|||||||
!llvm.dbg.cu = !{!2}
|
!llvm.dbg.cu = !{!2}
|
||||||
!llvm.module.flags = !{!33}
|
!llvm.module.flags = !{!33}
|
||||||
|
|
||||||
!0 = distinct !DISubprogram(name: "gcd", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !31, scope: !1, type: !3, variables: !29)
|
!0 = distinct !DISubprogram(name: "gcd", line: 5, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, file: !31, scope: !1, type: !3, variables: !29)
|
||||||
!1 = !DIFile(filename: "rem_small.c", directory: "/private/tmp")
|
!1 = !DIFile(filename: "rem_small.c", directory: "/private/tmp")
|
||||||
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 124117)", isOptimized: true, emissionKind: FullDebug, file: !31, enums: !32, retainedTypes: !32, subprograms: !28, imports: null)
|
!2 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 124117)", isOptimized: true, emissionKind: FullDebug, file: !31, enums: !32, retainedTypes: !32, imports: null)
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "long int", size: 64, align: 64, encoding: DW_ATE_signed)
|
!5 = !DIBasicType(tag: DW_TAG_base_type, name: "long int", size: 64, align: 64, encoding: DW_ATE_signed)
|
||||||
!6 = distinct !DISubprogram(name: "main", line: 25, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, file: !31, scope: !1, type: !7, variables: !30)
|
!6 = distinct !DISubprogram(name: "main", line: 25, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2, file: !31, scope: !1, type: !7, variables: !30)
|
||||||
!7 = !DISubroutineType(types: !8)
|
!7 = !DISubroutineType(types: !8)
|
||||||
!8 = !{!9}
|
!8 = !{!9}
|
||||||
!9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
@ -106,7 +106,6 @@ declare i32 @puts(i8* nocapture) nounwind
|
|||||||
!25 = !DILocation(line: 27, column: 38, scope: !15)
|
!25 = !DILocation(line: 27, column: 38, scope: !15)
|
||||||
!26 = !DILocation(line: 28, column: 9, scope: !15)
|
!26 = !DILocation(line: 28, column: 9, scope: !15)
|
||||||
!27 = !DILocation(line: 30, column: 1, scope: !15)
|
!27 = !DILocation(line: 30, column: 1, scope: !15)
|
||||||
!28 = !{!0, !6}
|
|
||||||
!29 = !{!10, !11, !12}
|
!29 = !{!10, !11, !12}
|
||||||
!30 = !{!14, !17}
|
!30 = !{!14, !17}
|
||||||
!31 = !DIFile(filename: "rem_small.c", directory: "/private/tmp")
|
!31 = !DIFile(filename: "rem_small.c", directory: "/private/tmp")
|
||||||
|
@ -38,7 +38,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!12}
|
!llvm.module.flags = !{!12}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 168918) (llvm/trunk 168920)", isOptimized: true, emissionKind: FullDebug, file: !11, enums: !2, retainedTypes: !2, subprograms: !13, globals: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 168918) (llvm/trunk 168920)", isOptimized: true, emissionKind: FullDebug, file: !11, enums: !2, retainedTypes: !2, globals: !2)
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!4 = !DILocalVariable(name: "hg", line: 725, arg: 4, scope: !14, file: !5, type: !6)
|
!4 = !DILocalVariable(name: "hg", line: 725, arg: 4, scope: !14, file: !5, type: !6)
|
||||||
!5 = !DIFile(filename: "MultiSource/Benchmarks/Olden/bh/newbh.c", directory: "MultiSource/Benchmarks/Olden/bh")
|
!5 = !DIFile(filename: "MultiSource/Benchmarks/Olden/bh/newbh.c", directory: "MultiSource/Benchmarks/Olden/bh")
|
||||||
@ -46,7 +46,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!7 = !DICompositeType(tag: DW_TAG_structure_type, line: 487, size: 512, align: 64, file: !11)
|
!7 = !DICompositeType(tag: DW_TAG_structure_type, line: 487, size: 512, align: 64, file: !11)
|
||||||
!11 = !DIFile(filename: "MultiSource/Benchmarks/Olden/bh/newbh.c", directory: "MultiSource/Benchmarks/Olden/bh")
|
!11 = !DIFile(filename: "MultiSource/Benchmarks/Olden/bh/newbh.c", directory: "MultiSource/Benchmarks/Olden/bh")
|
||||||
!12 = !{i32 1, !"Debug Info Version", i32 3}
|
!12 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
!13 = !{!14}
|
!14 = distinct !DISubprogram(name: "subdivp", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1, file: !11, scope: !5, type: !15)
|
||||||
!14 = distinct !DISubprogram(name: "subdivp", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1, file: !11, scope: !5, type: !15)
|
|
||||||
!15 = !DISubroutineType(types: !16)
|
!15 = !DISubroutineType(types: !16)
|
||||||
!16 = !{null}
|
!16 = !{null}
|
||||||
|
@ -65,7 +65,7 @@ declare i32 @__sprintf_chk(i8*, i32, i64, i8*, ...)
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!35}
|
!llvm.module.flags = !{!35}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 168918) (llvm/trunk 168920)", isOptimized: true, emissionKind: FullDebug, file: !19, enums: !2, retainedTypes: !2, subprograms: !20, globals: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 168918) (llvm/trunk 168920)", isOptimized: true, emissionKind: FullDebug, file: !19, enums: !2, retainedTypes: !2, globals: !2)
|
||||||
!1 = !{!2}
|
!1 = !{!2}
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!4 = !DILocalVariable(name: "num1", line: 815, scope: !5, file: !14, type: !15)
|
!4 = !DILocalVariable(name: "num1", line: 815, scope: !5, file: !14, type: !15)
|
||||||
@ -85,8 +85,7 @@ declare i32 @__sprintf_chk(i8*, i32, i64, i8*, ...)
|
|||||||
!18 = !DISubrange(count: 20)
|
!18 = !DISubrange(count: 20)
|
||||||
!19 = !DIFile(filename: "MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c", directory: "MultiSource/Benchmarks/MiBench/consumer-typeset")
|
!19 = !DIFile(filename: "MultiSource/Benchmarks/MiBench/consumer-typeset/z19.c", directory: "MultiSource/Benchmarks/MiBench/consumer-typeset")
|
||||||
|
|
||||||
!20 = !{!21}
|
!21 = distinct !DISubprogram(name: "AttachGalley", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1, file: !19, scope: !14, type: !22)
|
||||||
!21 = distinct !DISubprogram(name: "AttachGalley", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1, file: !19, scope: !14, type: !22)
|
|
||||||
!22 = !DISubroutineType(types: !23)
|
!22 = !DISubroutineType(types: !23)
|
||||||
!23 = !{null}
|
!23 = !{null}
|
||||||
|
|
||||||
@ -134,11 +133,10 @@ declare void @_Znwm()
|
|||||||
|
|
||||||
!llvm.dbg.cu = !{!30}
|
!llvm.dbg.cu = !{!30}
|
||||||
|
|
||||||
!30 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 169129) (llvm/trunk 169135)", isOptimized: true, emissionKind: FullDebug, file: !34, enums: !2, retainedTypes: !2, subprograms: !36)
|
!30 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 169129) (llvm/trunk 169135)", isOptimized: true, emissionKind: FullDebug, file: !34, enums: !2, retainedTypes: !2)
|
||||||
!31 = !DILocalVariable(name: "X", line: 29, scope: !37, type: !32)
|
!31 = !DILocalVariable(name: "X", line: 29, scope: !37, type: !32)
|
||||||
!32 = !DIDerivedType(tag: DW_TAG_typedef, name: "HM", line: 28, file: !34, baseType: null)
|
!32 = !DIDerivedType(tag: DW_TAG_typedef, name: "HM", line: 28, file: !34, baseType: null)
|
||||||
!33 = !DIFile(filename: "SingleSource/Benchmarks/Shootout-C++/hash.cpp", directory: "SingleSource/Benchmarks/Shootout-C++")
|
!33 = !DIFile(filename: "SingleSource/Benchmarks/Shootout-C++/hash.cpp", directory: "SingleSource/Benchmarks/Shootout-C++")
|
||||||
!34 = !DIFile(filename: "SingleSource/Benchmarks/Shootout-C++/hash.cpp", directory: "SingleSource/Benchmarks/Shootout-C++")
|
!34 = !DIFile(filename: "SingleSource/Benchmarks/Shootout-C++/hash.cpp", directory: "SingleSource/Benchmarks/Shootout-C++")
|
||||||
!35 = !{i32 1, !"Debug Info Version", i32 3}
|
!35 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
!36 = !{!37}
|
!37 = distinct !DISubprogram(name: "main", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !30, scopeLine: 1, file: !19, scope: !14, type: !22)
|
||||||
!37 = distinct !DISubprogram(name: "main", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1, file: !19, scope: !14, type: !22)
|
|
||||||
|
@ -36,9 +36,8 @@ invoke.cont44: ; preds = %if.end
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!8}
|
!llvm.module.flags = !{!8}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 168984) (llvm/trunk 168983)", isOptimized: true, emissionKind: FullDebug, file: !6, subprograms: !1)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 168984) (llvm/trunk 168983)", isOptimized: true, emissionKind: FullDebug, file: !6)
|
||||||
!1 = !{!2}
|
!2 = distinct !DISubprogram(name: "test", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 1, file: !6, scope: !5, type: !7)
|
||||||
!2 = distinct !DISubprogram(name: "test", isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 1, file: !6, scope: !5, type: !7)
|
|
||||||
!3 = !DILocalVariable(name: "callback", line: 214, scope: !2, type: !4)
|
!3 = !DILocalVariable(name: "callback", line: 214, scope: !2, type: !4)
|
||||||
!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "btCompoundLeafCallback", line: 90, size: 64, align: 64, file: !6)
|
!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "btCompoundLeafCallback", line: 90, size: 64, align: 64, file: !6)
|
||||||
!5 = !DIFile(filename: "MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp", directory: "MultiSource/Benchmarks/Bullet")
|
!5 = !DIFile(filename: "MultiSource/Benchmarks/Bullet/btCompoundCollisionAlgorithm.cpp", directory: "MultiSource/Benchmarks/Bullet")
|
||||||
|
@ -28,8 +28,8 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!22}
|
!llvm.module.flags = !{!22}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", isOptimized: true, emissionKind: FullDebug, file: !20, enums: !21, retainedTypes: !21, subprograms: !18, imports: null)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)", isOptimized: true, emissionKind: FullDebug, file: !20, enums: !21, retainedTypes: !21, imports: null)
|
||||||
!1 = distinct !DISubprogram(name: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, file: !20, scope: !2, type: !3, variables: !19)
|
!1 = distinct !DISubprogram(name: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, file: !20, scope: !2, type: !3, variables: !19)
|
||||||
!2 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
!2 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
||||||
!3 = !DISubroutineType(types: !4)
|
!3 = !DISubroutineType(types: !4)
|
||||||
!4 = !{!5}
|
!4 = !{!5}
|
||||||
@ -46,7 +46,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
|
|||||||
!15 = !DILocation(line: 4, column: 3, scope: !11)
|
!15 = !DILocation(line: 4, column: 3, scope: !11)
|
||||||
!16 = !DILocation(line: 5, column: 5, scope: !11)
|
!16 = !DILocation(line: 5, column: 5, scope: !11)
|
||||||
!17 = !DILocation(line: 7, column: 1, scope: !11)
|
!17 = !DILocation(line: 7, column: 1, scope: !11)
|
||||||
!18 = !{!1}
|
|
||||||
!19 = !{!6, !7, !10}
|
!19 = !{!6, !7, !10}
|
||||||
!20 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
!20 = !DIFile(filename: "a.c", directory: "/private/tmp")
|
||||||
!21 = !{}
|
!21 = !{}
|
||||||
|
@ -28,9 +28,9 @@ declare void @llvm.lifetime.end(i64, i8* nocapture) nounwind
|
|||||||
|
|
||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!23}
|
!llvm.module.flags = !{!23}
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "clang", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !{}, retainedTypes: !{}, subprograms: !{!2})
|
!0 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "clang", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !{}, retainedTypes: !{})
|
||||||
!1 = !DIFile(filename: "t.c", directory: "")
|
!1 = !DIFile(filename: "t.c", directory: "")
|
||||||
!16 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
!16 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
|
||||||
!2 = distinct !DISubprogram()
|
!2 = distinct !DISubprogram(unit: !0)
|
||||||
!22 = !DILocalVariable(name: "x", line: 16, scope: !2, file: !1, type: !16)
|
!22 = !DILocalVariable(name: "x", line: 16, scope: !2, file: !1, type: !16)
|
||||||
!23 = !{i32 1, !"Debug Info Version", i32 3}
|
!23 = !{i32 1, !"Debug Info Version", i32 3}
|
||||||
|
@ -39,11 +39,10 @@ attributes #1 = { nounwind readnone }
|
|||||||
!llvm.module.flags = !{!16, !17}
|
!llvm.module.flags = !{!16, !17}
|
||||||
!llvm.ident = !{!18}
|
!llvm.ident = !{!18}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 256088) (llvm/trunk 256097)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 256088) (llvm/trunk 256097)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
||||||
!1 = !DIFile(filename: "test.cpp", directory: "/mnt/extra")
|
!1 = !DIFile(filename: "test.cpp", directory: "/mnt/extra")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "fn1", linkageName: "_Z3fn1v", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !7)
|
||||||
!4 = distinct !DISubprogram(name: "fn1", linkageName: "_Z3fn1v", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: true, variables: !7)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{null}
|
!6 = !{null}
|
||||||
!7 = !{!8}
|
!7 = !{!8}
|
||||||
|
@ -124,7 +124,7 @@ attributes #4 = { nounwind }
|
|||||||
!llvm.module.flags = !{!43, !44}
|
!llvm.module.flags = !{!43, !44}
|
||||||
!llvm.ident = !{!45}
|
!llvm.ident = !{!45}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 255993) (llvm/trunk 256074)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, subprograms: !23)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 255993) (llvm/trunk 256074)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3)
|
||||||
!1 = !DIFile(filename: "test.cpp", directory: "/mnt/extra")
|
!1 = !DIFile(filename: "test.cpp", directory: "/mnt/extra")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!3 = !{!4}
|
||||||
@ -147,8 +147,7 @@ attributes #4 = { nounwind }
|
|||||||
!20 = !{!15, !21}
|
!20 = !{!15, !21}
|
||||||
!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !22, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
|
!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !22, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
|
||||||
!22 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !"_ZTS4AAA3")
|
!22 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !"_ZTS4AAA3")
|
||||||
!23 = !{!24, !34, !39}
|
!24 = distinct !DISubprogram(name: "bar", linkageName: "_Z3barii", scope: !1, file: !1, line: 11, type: !25, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !28)
|
||||||
!24 = distinct !DISubprogram(name: "bar", linkageName: "_Z3barii", scope: !1, file: !1, line: 11, type: !25, isLocal: false, isDefinition: true, scopeLine: 11, flags: DIFlagPrototyped, isOptimized: true, variables: !28)
|
|
||||||
!25 = !DISubroutineType(types: !26)
|
!25 = !DISubroutineType(types: !26)
|
||||||
!26 = !{null, !27, !27}
|
!26 = !{null, !27, !27}
|
||||||
!27 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
!27 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
||||||
@ -158,12 +157,12 @@ attributes #4 = { nounwind }
|
|||||||
!31 = !DILocalVariable(name: "temp", scope: !24, file: !1, line: 12, type: !15)
|
!31 = !DILocalVariable(name: "temp", scope: !24, file: !1, line: 12, type: !15)
|
||||||
!32 = !DILocalVariable(name: "var1", scope: !24, file: !1, line: 17, type: !"_ZTS4AAA3")
|
!32 = !DILocalVariable(name: "var1", scope: !24, file: !1, line: 17, type: !"_ZTS4AAA3")
|
||||||
!33 = !DILocalVariable(name: "var2", scope: !24, file: !1, line: 18, type: !"_ZTS4AAA3")
|
!33 = !DILocalVariable(name: "var2", scope: !24, file: !1, line: 18, type: !"_ZTS4AAA3")
|
||||||
!34 = distinct !DISubprogram(name: "AAA3", linkageName: "_ZN4AAA3C2EPKc", scope: !"_ZTS4AAA3", file: !1, line: 5, type: !12, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, declaration: !11, variables: !35)
|
!34 = distinct !DISubprogram(name: "AAA3", linkageName: "_ZN4AAA3C2EPKc", scope: !"_ZTS4AAA3", file: !1, line: 5, type: !12, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !11, variables: !35)
|
||||||
!35 = !{!36, !38}
|
!35 = !{!36, !38}
|
||||||
!36 = !DILocalVariable(name: "this", arg: 1, scope: !34, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
|
!36 = !DILocalVariable(name: "this", arg: 1, scope: !34, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
|
||||||
!37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS4AAA3", size: 64, align: 64)
|
!37 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTS4AAA3", size: 64, align: 64)
|
||||||
!38 = !DILocalVariable(name: "value", arg: 2, scope: !34, file: !1, line: 5, type: !15)
|
!38 = !DILocalVariable(name: "value", arg: 2, scope: !34, file: !1, line: 5, type: !15)
|
||||||
!39 = distinct !DISubprogram(name: "operator=", linkageName: "_ZN4AAA3aSEPKc", scope: !"_ZTS4AAA3", file: !1, line: 6, type: !12, isLocal: false, isDefinition: true, scopeLine: 6, flags: DIFlagPrototyped, isOptimized: true, declaration: !17, variables: !40)
|
!39 = distinct !DISubprogram(name: "operator=", linkageName: "_ZN4AAA3aSEPKc", scope: !"_ZTS4AAA3", file: !1, line: 6, type: !12, isLocal: false, isDefinition: true, scopeLine: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !17, variables: !40)
|
||||||
!40 = !{!41, !42}
|
!40 = !{!41, !42}
|
||||||
!41 = !DILocalVariable(name: "this", arg: 1, scope: !39, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
|
!41 = !DILocalVariable(name: "this", arg: 1, scope: !39, type: !37, flags: DIFlagArtificial | DIFlagObjectPointer)
|
||||||
!42 = !DILocalVariable(name: "value", arg: 2, scope: !39, file: !1, line: 6, type: !15)
|
!42 = !DILocalVariable(name: "value", arg: 2, scope: !39, file: !1, line: 6, type: !15)
|
||||||
|
@ -74,11 +74,10 @@ attributes #2 = { nounwind }
|
|||||||
!llvm.module.flags = !{!9, !10}
|
!llvm.module.flags = !{!9, !10}
|
||||||
!llvm.ident = !{!11}
|
!llvm.ident = !{!11}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.7.0 (trunk 227074)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.7.0 (trunk 227074)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
|
||||||
!1 = !DIFile(filename: "dbg-combine.c", directory: "/home/probinson/projects/scratch")
|
!1 = !DIFile(filename: "dbg-combine.c", directory: "/home/probinson/projects/scratch")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, isOptimized: false, unit: !0, scopeLine: 2, file: !1, scope: !5, type: !6, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "foo", line: 1, isLocal: false, isDefinition: true, isOptimized: false, scopeLine: 2, file: !1, scope: !5, type: !6, variables: !2)
|
|
||||||
!5 = !DIFile(filename: "dbg-combine.c", directory: "/home/probinson/projects/scratch")
|
!5 = !DIFile(filename: "dbg-combine.c", directory: "/home/probinson/projects/scratch")
|
||||||
!6 = !DISubroutineType(types: !7)
|
!6 = !DISubroutineType(types: !7)
|
||||||
!7 = !{!8}
|
!7 = !{!8}
|
||||||
|
@ -38,11 +38,10 @@ attributes #2 = { nounwind }
|
|||||||
!llvm.module.flags = !{!7, !8}
|
!llvm.module.flags = !{!7, !8}
|
||||||
!llvm.ident = !{!9}
|
!llvm.ident = !{!9}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 249520)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 249520)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
||||||
!1 = !DIFile(filename: "foo.cpp", directory: "foo")
|
!1 = !DIFile(filename: "foo.cpp", directory: "foo")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: true, variables: !2)
|
|
||||||
!5 = !DISubroutineType(types: !6)
|
!5 = !DISubroutineType(types: !6)
|
||||||
!6 = !{null}
|
!6 = !{null}
|
||||||
!7 = !{i32 2, !"Dwarf Version", i32 4}
|
!7 = !{i32 2, !"Dwarf Version", i32 4}
|
||||||
|
@ -7,7 +7,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!5}
|
!llvm.module.flags = !{!5}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1 (trunk 143523)", isOptimized: true, emissionKind: FullDebug, file: !4, enums: !2, retainedTypes: !7, subprograms: !2, globals: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1 (trunk 143523)", isOptimized: true, emissionKind: FullDebug, file: !4, enums: !2, retainedTypes: !7, globals: !2)
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !DIFile(filename: "empty.c", directory: "/home/nlewycky")
|
!3 = !DIFile(filename: "empty.c", directory: "/home/nlewycky")
|
||||||
!4 = !DIFile(filename: "empty.c", directory: "/home/nlewycky")
|
!4 = !DIFile(filename: "empty.c", directory: "/home/nlewycky")
|
||||||
|
@ -43,11 +43,10 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata)
|
|||||||
|
|
||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!24, !25}
|
!llvm.module.flags = !{!24, !25}
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.6.0 (http://llvm.org/git/clang 8444ae7cfeaefae031f8fedf0d1435ca3b14d90b) (http://llvm.org/git/llvm 886f0101a7d176543b831f5efb74c03427244a55)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !21, imports: !2)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.6.0 (http://llvm.org/git/clang 8444ae7cfeaefae031f8fedf0d1435ca3b14d90b) (http://llvm.org/git/llvm 886f0101a7d176543b831f5efb74c03427244a55)", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !21, imports: !2)
|
||||||
!1 = !DIFile(filename: "fpu_ieee.cpp", directory: "x87stackifier")
|
!1 = !DIFile(filename: "fpu_ieee.cpp", directory: "x87stackifier")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "fpuop_arithmetic", linkageName: "_Z16fpuop_arithmeticjj", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 13, file: !5, scope: !6, type: !7, variables: !10)
|
||||||
!4 = distinct !DISubprogram(name: "fpuop_arithmetic", linkageName: "_Z16fpuop_arithmeticjj", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 13, file: !5, scope: !6, type: !7, variables: !10)
|
|
||||||
!5 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
|
!5 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
|
||||||
!6 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
|
!6 = !DIFile(filename: "f1.cpp", directory: "x87stackifier")
|
||||||
!7 = !DISubroutineType(types: !8)
|
!7 = !DISubroutineType(types: !8)
|
||||||
|
@ -37,11 +37,10 @@ declare void @exit(i32)
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!6, !7}
|
!llvm.module.flags = !{!6, !7}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.9.0 (trunk 259383) (llvm/trunk 259385)", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, subprograms: !3)
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.9.0 (trunk 259383) (llvm/trunk 259385)", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2)
|
||||||
!1 = !DIFile(filename: "t.c", directory: "/home/majnemer/llvm/src")
|
!1 = !DIFile(filename: "t.c", directory: "/home/majnemer/llvm/src")
|
||||||
!2 = !{}
|
!2 = !{}
|
||||||
!3 = !{!4}
|
!4 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, isOptimized: true, unit: !0, variables: !2)
|
||||||
!4 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true, scopeLine: 3, isOptimized: true, variables: !2)
|
|
||||||
!5 = !DISubroutineType(types: !2)
|
!5 = !DISubroutineType(types: !2)
|
||||||
!6 = !{i32 2, !"Dwarf Version", i32 4}
|
!6 = !{i32 2, !"Dwarf Version", i32 4}
|
||||||
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
!7 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
|
@ -51,10 +51,10 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata)
|
|||||||
!llvm.dbg.cu = !{!0}
|
!llvm.dbg.cu = !{!0}
|
||||||
!llvm.module.flags = !{!2}
|
!llvm.module.flags = !{!2}
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, subprograms: !{!3})
|
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
|
||||||
!1 = !DIFile(filename: "24199.cpp", directory: "/bin")
|
!1 = !DIFile(filename: "24199.cpp", directory: "/bin")
|
||||||
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
||||||
!3 = distinct !DISubprogram(linkageName: "foo", file: !1, line: 18, isLocal: false, isDefinition: true, scopeLine: 18)
|
!3 = distinct !DISubprogram(linkageName: "foo", file: !1, line: 18, isLocal: false, isDefinition: true, scopeLine: 18, unit: !0)
|
||||||
!4 = !DIExpression()
|
!4 = !DIExpression()
|
||||||
!5 = !DILocalVariable(name: "this", arg: 1, scope: !3, flags: DIFlagArtificial | DIFlagObjectPointer)
|
!5 = !DILocalVariable(name: "this", arg: 1, scope: !3, flags: DIFlagArtificial | DIFlagObjectPointer)
|
||||||
!6 = !DILocation(line: 0, scope: !3)
|
!6 = !DILocation(line: 0, scope: !3)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user