From 73ec065604a8ff2512f478fb763eaa4f9c2bf354 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Fri, 16 Dec 2016 19:39:01 +0000 Subject: [PATCH] Revert "[IR] Remove the DIExpression field from DIGlobalVariable." This reverts commit 289920 (again). I forgot to implement a Bitcode upgrade for the case where a DIGlobalVariable has not DIExpression. Unfortunately it is not possible to safely upgrade these variables without adding a flag to the bitcode record indicating which version they are. My plan of record is to roll the planned follow-up patch that adds a unit: field to DIGlobalVariable into this patch before recomitting. This way we only need one Bitcode upgrade for both changes (with a version flag in the bitcode record to safely distinguish the record formats). Sorry for the churn! llvm-svn: 289982 --- llvm/include/llvm/Bitcode/LLVMBitCodes.h | 1 - llvm/include/llvm/IR/DIBuilder.h | 19 +- llvm/include/llvm/IR/DebugInfo.h | 10 +- llvm/include/llvm/IR/DebugInfoMetadata.h | 93 +++------ llvm/include/llvm/IR/GlobalVariable.h | 11 +- llvm/include/llvm/IR/Metadata.def | 1 - llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp | 3 +- llvm/lib/AsmParser/LLParser.cpp | 22 +- llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 23 +-- llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 16 +- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | 25 +-- llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 130 ++++++------ llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 13 +- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 43 +--- llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h | 4 - llvm/lib/IR/AsmWriter.cpp | 13 +- llvm/lib/IR/DIBuilder.cpp | 19 +- llvm/lib/IR/DebugInfo.cpp | 16 +- llvm/lib/IR/DebugInfoMetadata.cpp | 45 +--- llvm/lib/IR/LLVMContextImpl.h | 26 +-- llvm/lib/IR/Metadata.cpp | 21 +- llvm/lib/IR/Verifier.cpp | 26 +-- llvm/lib/Transforms/IPO/StripSymbols.cpp | 17 +- .../Instrumentation/AddressSanitizer.cpp | 2 +- llvm/test/Assembler/diglobalvariable.ll | 16 +- llvm/test/Assembler/diglobalvariableexpression.ll | 23 --- llvm/test/Bitcode/DIGlobalVariableExpr.ll | 26 --- llvm/test/Bitcode/DIGlobalVariableExpr.ll.bc | Bin 1052 -> 0 bytes llvm/test/Bitcode/diglobalvariable-3.8.ll | 20 +- llvm/test/Bitcode/diglobalvariable-3.8.ll.bc | Bin 788 -> 712 bytes llvm/test/Bitcode/dityperefs-3.8.ll | 15 +- .../AArch64/arm64-2011-03-17-AsmPrinterCrash.ll | 2 +- .../ARM/2010-06-25-Thumb2ITInvalidIterator.ll | 2 +- .../test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll | 10 +- .../test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll | 4 +- llvm/test/CodeGen/ARM/coalesce-dbgvalue.ll | 8 +- llvm/test/CodeGen/BPF/dwarfdump.ll | 2 +- llvm/test/CodeGen/NVPTX/generic-to-nvvm-ir.ll | 6 +- llvm/test/CodeGen/PowerPC/pr17168.ll | 230 ++++++++++----------- llvm/test/CodeGen/PowerPC/pr24546.ll | 2 +- llvm/test/CodeGen/WebAssembly/dbgvalue.ll | 2 +- llvm/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll | 2 +- llvm/test/CodeGen/X86/fp128-g.ll | 2 +- llvm/test/CodeGen/X86/fpstack-debuginstr-kill.ll | 4 +- .../X86/misched-code-difference-with-debug.ll | 2 +- llvm/test/CodeGen/X86/null-streamer.ll | 2 +- llvm/test/DebugInfo/AArch64/big-endian.ll | 2 +- llvm/test/DebugInfo/AArch64/bitfields.ll | 2 +- llvm/test/DebugInfo/AArch64/frameindices.ll | 4 +- llvm/test/DebugInfo/ARM/big-endian-bitfield.ll | 2 +- llvm/test/DebugInfo/ARM/bitfield.ll | 2 +- .../ARM/multiple-constant-uses-drops-dbgloc.ll | 4 +- llvm/test/DebugInfo/ARM/tls.ll | 2 +- llvm/test/DebugInfo/COFF/anonymous-struct.ll | 2 +- llvm/test/DebugInfo/COFF/big-type.ll | 2 +- llvm/test/DebugInfo/COFF/bitfields.ll | 6 +- llvm/test/DebugInfo/COFF/enum.ll | 2 +- llvm/test/DebugInfo/COFF/global-dllimport.ll | 2 +- llvm/test/DebugInfo/COFF/globals-discarded.ll | 4 +- llvm/test/DebugInfo/COFF/globals.ll | 8 +- llvm/test/DebugInfo/COFF/inheritance.ll | 2 +- llvm/test/DebugInfo/COFF/inlining-files.ll | 2 +- llvm/test/DebugInfo/COFF/inlining-header.ll | 2 +- llvm/test/DebugInfo/COFF/inlining-levels.ll | 2 +- llvm/test/DebugInfo/COFF/int8-char-type.ll | 4 +- llvm/test/DebugInfo/COFF/long-type-name.ll | 2 +- llvm/test/DebugInfo/COFF/register-variables.ll | 2 +- llvm/test/DebugInfo/COFF/scopes.ll | 2 +- llvm/test/DebugInfo/COFF/types-array-advanced.ll | 8 +- llvm/test/DebugInfo/COFF/types-nested-class.ll | 2 +- llvm/test/DebugInfo/COFF/types-ptr-to-member.ll | 20 +- llvm/test/DebugInfo/COFF/udts.ll | 2 +- llvm/test/DebugInfo/COFF/virtual-method-kinds.ll | 2 +- llvm/test/DebugInfo/COFF/vtable-optzn-array.ll | 4 +- .../Generic/2009-11-05-DeadGlobalVariable.ll | 2 +- .../Generic/2009-11-06-NamelessGlobalVariable.ll | 2 +- .../Generic/2010-06-29-InlinedFnLocalVar.ll | 2 +- .../Generic/accel-table-hash-collisions.ll | 24 +-- .../Generic/cross-cu-linkonce-distinct.ll | 4 +- llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll | 4 +- .../test/DebugInfo/Generic/dbg-at-specficiation.ll | 2 +- .../Generic/debuginfofinder-forward-declaration.ll | 2 +- llvm/test/DebugInfo/Generic/dwarf-public-names.ll | 6 +- llvm/test/DebugInfo/Generic/enum.ll | 2 +- llvm/test/DebugInfo/Generic/global.ll | 2 +- llvm/test/DebugInfo/Generic/gvn.ll | 4 +- llvm/test/DebugInfo/Generic/member-pointers.ll | 4 +- llvm/test/DebugInfo/Generic/namespace.ll | 8 +- llvm/test/DebugInfo/Generic/recursive_inlining.ll | 2 +- .../DebugInfo/Generic/template-recursive-void.ll | 2 +- llvm/test/DebugInfo/Generic/tu-member-pointer.ll | 2 +- llvm/test/DebugInfo/Generic/typedef.ll | 2 +- llvm/test/DebugInfo/MIR/X86/live-debug-values.mir | 4 +- llvm/test/DebugInfo/MIR/X86/mlicm-hoist.mir | 2 +- llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll | 2 +- llvm/test/DebugInfo/PowerPC/tls-fission.ll | 2 +- llvm/test/DebugInfo/PowerPC/tls.ll | 2 +- llvm/test/DebugInfo/WebAssembly/dbg-declare.ll | 2 +- .../DebugInfo/X86/2011-09-26-GlobalVarContext.ll | 2 +- llvm/test/DebugInfo/X86/DIModuleContext.ll | 2 +- .../test/DebugInfo/X86/DW_AT_calling-convention.ll | 2 +- llvm/test/DebugInfo/X86/DW_AT_specification.ll | 2 +- llvm/test/DebugInfo/X86/DW_TAG_friend.ll | 4 +- llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll | 2 +- llvm/test/DebugInfo/X86/PR26148.ll | 2 +- llvm/test/DebugInfo/X86/align_c11.ll | 2 +- llvm/test/DebugInfo/X86/align_cpp11.ll | 4 +- llvm/test/DebugInfo/X86/align_objc.ll | 2 +- llvm/test/DebugInfo/X86/arange-and-stub.ll | 2 +- llvm/test/DebugInfo/X86/arange.ll | 2 +- llvm/test/DebugInfo/X86/atomic-c11-dwarf-4.ll | 2 +- llvm/test/DebugInfo/X86/atomic-c11-dwarf-5.ll | 2 +- llvm/test/DebugInfo/X86/bitfields-dwarf4.ll | 2 +- llvm/test/DebugInfo/X86/bitfields.ll | 2 +- llvm/test/DebugInfo/X86/c-type-units.ll | 2 +- llvm/test/DebugInfo/X86/concrete_out_of_line.ll | 2 +- llvm/test/DebugInfo/X86/cu-ranges-odr.ll | 2 +- llvm/test/DebugInfo/X86/data_member_location.ll | 2 +- llvm/test/DebugInfo/X86/dbg-subrange.ll | 2 +- .../DebugInfo/X86/dbg-value-inlined-parameter.ll | 2 +- .../DebugInfo/X86/dbg-value-regmask-clobber.ll | 2 +- llvm/test/DebugInfo/X86/debug-info-access.ll | 6 +- .../test/DebugInfo/X86/debug-info-packed-struct.ll | 8 +- .../test/DebugInfo/X86/debug-info-static-member.ll | 6 +- llvm/test/DebugInfo/X86/debug-loc-frame.ll | 8 +- llvm/test/DebugInfo/X86/debugger-tune.ll | 2 +- llvm/test/DebugInfo/X86/decl-derived-member.ll | 2 +- llvm/test/DebugInfo/X86/dllimport.ll | 2 +- .../DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll | 2 +- llvm/test/DebugInfo/X86/dwarf-aranges.ll | 6 +- llvm/test/DebugInfo/X86/dwarf-linkage-names.ll | 2 +- llvm/test/DebugInfo/X86/dwarf-public-names.ll | 6 +- llvm/test/DebugInfo/X86/empty-array.ll | 2 +- llvm/test/DebugInfo/X86/enum-class.ll | 6 +- llvm/test/DebugInfo/X86/enum-fwd-decl.ll | 2 +- llvm/test/DebugInfo/X86/externaltyperef.ll | 2 +- llvm/test/DebugInfo/X86/fission-cu.ll | 2 +- llvm/test/DebugInfo/X86/generate-odr-hash.ll | 8 +- llvm/test/DebugInfo/X86/gnu-public-names.ll | 16 +- llvm/test/DebugInfo/X86/inline-member-function.ll | 2 +- llvm/test/DebugInfo/X86/inline-namespace.ll | 2 +- llvm/test/DebugInfo/X86/inlined-indirect-value.ll | 4 +- llvm/test/DebugInfo/X86/isel-cse-line.ll | 4 +- llvm/test/DebugInfo/X86/linkage-name.ll | 2 +- llvm/test/DebugInfo/X86/live-debug-values.ll | 2 +- llvm/test/DebugInfo/X86/memberfnptr.ll | 2 +- llvm/test/DebugInfo/X86/misched-dbg-value.ll | 18 +- llvm/test/DebugInfo/X86/multiple-aranges.ll | 4 +- llvm/test/DebugInfo/X86/multiple-at-const-val.ll | 3 +- .../DebugInfo/X86/nondefault-subrange-array.ll | 2 +- llvm/test/DebugInfo/X86/objc-fwd-decl.ll | 2 +- llvm/test/DebugInfo/X86/pointer-type-size.ll | 2 +- llvm/test/DebugInfo/X86/pr12831.ll | 3 +- llvm/test/DebugInfo/X86/ref_addr_relocation.ll | 4 +- llvm/test/DebugInfo/X86/split-global.ll | 60 ------ llvm/test/DebugInfo/X86/stack-value-dwarf4.ll | 3 +- llvm/test/DebugInfo/X86/static_member_array.ll | 4 +- llvm/test/DebugInfo/X86/stringpool.ll | 2 +- llvm/test/DebugInfo/X86/struct-loc.ll | 2 +- llvm/test/DebugInfo/X86/template.ll | 4 +- llvm/test/DebugInfo/X86/tls.ll | 4 +- .../DebugInfo/X86/type_units_with_addresses.ll | 10 +- llvm/test/DebugInfo/X86/unattached-global.ll | 24 +-- llvm/test/DebugInfo/X86/union-template.ll | 2 +- llvm/test/DebugInfo/X86/vector.ll | 2 +- .../AddressSanitizer/debug-info-global-var.ll | 7 +- llvm/test/LTO/X86/Inputs/type-mapping-src.ll | 2 +- llvm/test/LTO/X86/type-mapping-bug.ll | 2 +- llvm/test/Linker/2011-08-04-Metadata.ll | 12 +- llvm/test/Linker/2011-08-04-Metadata2.ll | 2 +- llvm/test/Linker/debug-info-global-var.ll | 6 +- llvm/test/Linker/odr.ll | 2 +- llvm/test/Linker/only-needed-debug-metadata.ll | 4 +- llvm/test/ThinLTO/X86/Inputs/crash_debuginfo.ll | 2 +- llvm/test/ThinLTO/X86/crash_debuginfo.ll | 2 +- llvm/test/ThinLTO/X86/debuginfo-cu-import.ll | 2 +- llvm/test/Transforms/GCOVProfiling/return-block.ll | 2 +- llvm/test/Transforms/GlobalMerge/debug-info.ll | 10 +- llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll | 2 +- llvm/test/Transforms/Inline/alloca-dbgdeclare.ll | 4 +- llvm/test/Transforms/LoopVectorize/dbg.value.ll | 6 +- .../Transforms/SampleProfile/cov-zero-samples.ll | 2 +- .../SimplifyCFG/PR27615-simplify-cond-br.ll | 6 +- .../StripSymbols/2010-06-30-StripDebug.ll | 2 +- .../Transforms/StripSymbols/2010-08-25-crash.ll | 2 +- .../StripSymbols/strip-dead-debug-info.ll | 4 +- ...strip-nonlinetable-debuginfo-containingtypes.ll | 2 +- llvm/test/Verifier/diglobalvariable.ll | 14 -- .../Hexagon/source-interleave-hexagon.ll | 2 +- .../llvm-objdump/X86/source-interleave-x86_64.ll | 2 +- llvm/unittests/IR/MetadataTest.cpp | 81 +++----- 191 files changed, 650 insertions(+), 1014 deletions(-) delete mode 100644 llvm/test/Assembler/diglobalvariableexpression.ll delete mode 100644 llvm/test/Bitcode/DIGlobalVariableExpr.ll delete mode 100644 llvm/test/Bitcode/DIGlobalVariableExpr.ll.bc delete mode 100644 llvm/test/DebugInfo/X86/split-global.ll delete mode 100644 llvm/test/Verifier/diglobalvariable.ll diff --git a/llvm/include/llvm/Bitcode/LLVMBitCodes.h b/llvm/include/llvm/Bitcode/LLVMBitCodes.h index 32a7fa8..f73b074 100644 --- a/llvm/include/llvm/Bitcode/LLVMBitCodes.h +++ b/llvm/include/llvm/Bitcode/LLVMBitCodes.h @@ -252,7 +252,6 @@ enum MetadataCodes { METADATA_MACRO_FILE = 34, // [distinct, macinfo, line, file, ...] METADATA_STRINGS = 35, // [count, offset] blob([lengths][chars]) METADATA_GLOBAL_DECL_ATTACHMENT = 36, // [valueid, n x [id, mdnode]] - METADATA_GLOBAL_VAR_EXPR = 37, // [distinct, var, expr] }; // The constants block (CONSTANTS_BLOCK_ID) describes emission for each diff --git a/llvm/include/llvm/IR/DIBuilder.h b/llvm/include/llvm/IR/DIBuilder.h index 2b1d0fd..7227483 100644 --- a/llvm/include/llvm/IR/DIBuilder.h +++ b/llvm/include/llvm/IR/DIBuilder.h @@ -449,7 +449,8 @@ namespace llvm { /// implicitly uniques the values returned. DISubrange *getOrCreateSubrange(int64_t Lo, int64_t Count); - /// Create a new descriptor for the specified variable. + /// Create a new descriptor for the specified + /// variable. /// \param Context Variable scope. /// \param Name Name of the variable. /// \param LinkageName Mangled name of the variable. @@ -463,18 +464,20 @@ namespace llvm { /// \param Decl Reference to the corresponding declaration. /// \param AlignInBits Variable alignment(or 0 if no alignment attr was /// specified) - DIGlobalVariableExpression *createGlobalVariableExpression( - DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *File, - unsigned LineNo, DIType *Ty, bool isLocalToUnit, - DIExpression *Expr = nullptr, MDNode *Decl = nullptr, - uint32_t AlignInBits = 0); + DIGlobalVariable *createGlobalVariable(DIScope *Context, StringRef Name, + StringRef LinkageName, DIFile *File, + unsigned LineNo, DIType *Ty, + bool isLocalToUnit, + DIExpression *Expr = nullptr, + MDNode *Decl = nullptr, + uint32_t AlignInBits = 0); /// Identical to createGlobalVariable /// except that the resulting DbgNode is temporary and meant to be RAUWed. DIGlobalVariable *createTempGlobalVariableFwdDecl( DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *File, - unsigned LineNo, DIType *Ty, bool isLocalToUnit, MDNode *Decl = nullptr, - uint32_t AlignInBits = 0); + unsigned LineNo, DIType *Ty, bool isLocalToUnit, DIExpression *Expr, + MDNode *Decl = nullptr, uint32_t AlignInBits = 0); /// Create a new descriptor for an auto variable. This is a local variable /// that is not a subprogram parameter. diff --git a/llvm/include/llvm/IR/DebugInfo.h b/llvm/include/llvm/IR/DebugInfo.h index 04f4619..c110659 100644 --- a/llvm/include/llvm/IR/DebugInfo.h +++ b/llvm/include/llvm/IR/DebugInfo.h @@ -89,7 +89,7 @@ private: void processSubprogram(DISubprogram *SP); void processScope(DIScope *Scope); bool addCompileUnit(DICompileUnit *CU); - bool addGlobalVariable(DIGlobalVariableExpression *DIG); + bool addGlobalVariable(DIGlobalVariable *DIG); bool addSubprogram(DISubprogram *SP); bool addType(DIType *DT); bool addScope(DIScope *Scope); @@ -98,8 +98,8 @@ public: typedef SmallVectorImpl::const_iterator compile_unit_iterator; typedef SmallVectorImpl::const_iterator subprogram_iterator; - typedef SmallVectorImpl::const_iterator - global_variable_expression_iterator; + typedef SmallVectorImpl::const_iterator + global_variable_iterator; typedef SmallVectorImpl::const_iterator type_iterator; typedef SmallVectorImpl::const_iterator scope_iterator; @@ -111,7 +111,7 @@ public: return make_range(SPs.begin(), SPs.end()); } - iterator_range global_variables() const { + iterator_range global_variables() const { return make_range(GVs.begin(), GVs.end()); } @@ -132,7 +132,7 @@ public: private: SmallVector CUs; SmallVector SPs; - SmallVector GVs; + SmallVector GVs; SmallVector TYs; SmallVector Scopes; SmallPtrSet NodesSeen; diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h b/llvm/include/llvm/IR/DebugInfoMetadata.h index 69ef2ea..aec6601 100644 --- a/llvm/include/llvm/IR/DebugInfoMetadata.h +++ b/llvm/include/llvm/IR/DebugInfoMetadata.h @@ -1038,8 +1038,7 @@ private: StringRef Producer, bool IsOptimized, StringRef Flags, unsigned RuntimeVersion, StringRef SplitDebugFilename, unsigned EmissionKind, DICompositeTypeArray EnumTypes, - DIScopeArray RetainedTypes, - DIGlobalVariableExpressionArray GlobalVariables, + DIScopeArray RetainedTypes, DIGlobalVariableArray GlobalVariables, DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros, uint64_t DWOId, bool SplitDebugInlining, StorageType Storage, bool ShouldCreate = true) { @@ -1079,7 +1078,7 @@ public: bool IsOptimized, StringRef Flags, unsigned RuntimeVersion, StringRef SplitDebugFilename, DebugEmissionKind EmissionKind, DICompositeTypeArray EnumTypes, DIScopeArray RetainedTypes, - DIGlobalVariableExpressionArray GlobalVariables, + DIGlobalVariableArray GlobalVariables, DIImportedEntityArray ImportedEntities, DIMacroNodeArray Macros, uint64_t DWOId, bool SplitDebugInlining), (SourceLanguage, File, Producer, IsOptimized, Flags, RuntimeVersion, @@ -1114,7 +1113,7 @@ public: DIScopeArray getRetainedTypes() const { return cast_or_null(getRawRetainedTypes()); } - DIGlobalVariableExpressionArray getGlobalVariables() const { + DIGlobalVariableArray getGlobalVariables() const { return cast_or_null(getRawGlobalVariables()); } DIImportedEntityArray getImportedEntities() const { @@ -1153,7 +1152,7 @@ public: void replaceRetainedTypes(DITypeArray N) { replaceOperandWith(5, N.get()); } - void replaceGlobalVariables(DIGlobalVariableExpressionArray N) { + void replaceGlobalVariables(DIGlobalVariableArray N) { replaceOperandWith(6, N.get()); } void replaceImportedEntities(DIImportedEntityArray N) { @@ -1982,9 +1981,6 @@ public: /// Return the size of this fragment in bits. uint64_t getFragmentSizeInBits() const; - /// Determine whether this represents a standalone constant value. - bool isConstant() const; - typedef ArrayRef::iterator element_iterator; element_iterator elements_begin() const { return getElements().begin(); } element_iterator elements_end() const { return getElements().end(); } @@ -2104,30 +2100,30 @@ class DIGlobalVariable : public DIVariable { IsLocalToUnit(IsLocalToUnit), IsDefinition(IsDefinition) {} ~DIGlobalVariable() = default; - static DIGlobalVariable *getImpl(LLVMContext &Context, DIScope *Scope, - StringRef Name, StringRef LinkageName, - DIFile *File, unsigned Line, DITypeRef Type, - bool IsLocalToUnit, bool IsDefinition, - DIDerivedType *StaticDataMemberDeclaration, - uint32_t AlignInBits, StorageType Storage, - bool ShouldCreate = true) { + static DIGlobalVariable * + getImpl(LLVMContext &Context, DIScope *Scope, StringRef Name, + StringRef LinkageName, DIFile *File, unsigned Line, DITypeRef Type, + bool IsLocalToUnit, bool IsDefinition, DIExpression *Expr, + DIDerivedType *StaticDataMemberDeclaration, uint32_t AlignInBits, + StorageType Storage, bool ShouldCreate = true) { return getImpl(Context, Scope, getCanonicalMDString(Context, Name), getCanonicalMDString(Context, LinkageName), File, Line, Type, - IsLocalToUnit, IsDefinition, StaticDataMemberDeclaration, - AlignInBits, Storage, ShouldCreate); + IsLocalToUnit, IsDefinition, Expr, + StaticDataMemberDeclaration, AlignInBits, Storage, + ShouldCreate); } static DIGlobalVariable * getImpl(LLVMContext &Context, Metadata *Scope, MDString *Name, MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type, - bool IsLocalToUnit, bool IsDefinition, + bool IsLocalToUnit, bool IsDefinition, Metadata *Expr, Metadata *StaticDataMemberDeclaration, uint32_t AlignInBits, StorageType Storage, bool ShouldCreate = true); TempDIGlobalVariable cloneImpl() const { return getTemporary(getContext(), getScope(), getName(), getLinkageName(), getFile(), getLine(), getType(), isLocalToUnit(), - isDefinition(), getStaticDataMemberDeclaration(), - getAlignInBits()); + isDefinition(), getExpr(), + getStaticDataMemberDeclaration(), getAlignInBits()); } public: @@ -2135,18 +2131,21 @@ public: (DIScope * Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned Line, DITypeRef Type, bool IsLocalToUnit, bool IsDefinition, + DIExpression *Expr, DIDerivedType *StaticDataMemberDeclaration, uint32_t AlignInBits), (Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, - IsDefinition, StaticDataMemberDeclaration, AlignInBits)) + IsDefinition, Expr, StaticDataMemberDeclaration, + AlignInBits)) DEFINE_MDNODE_GET(DIGlobalVariable, (Metadata * Scope, MDString *Name, MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type, bool IsLocalToUnit, bool IsDefinition, - Metadata *StaticDataMemberDeclaration, + Metadata *Expr, Metadata *StaticDataMemberDeclaration, uint32_t AlignInBits), (Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, - IsDefinition, StaticDataMemberDeclaration, AlignInBits)) + IsDefinition, Expr, StaticDataMemberDeclaration, + AlignInBits)) TempDIGlobalVariable clone() const { return cloneImpl(); } @@ -2154,12 +2153,19 @@ public: bool isDefinition() const { return IsDefinition; } StringRef getDisplayName() const { return getStringOperand(4); } StringRef getLinkageName() const { return getStringOperand(5); } + DIExpression *getExpr() const { + return cast_or_null(getRawExpr()); + } + void replaceExpr(DIExpression *E) { + replaceOperandWith(6, E); + } DIDerivedType *getStaticDataMemberDeclaration() const { return cast_or_null(getRawStaticDataMemberDeclaration()); } MDString *getRawLinkageName() const { return getOperandAs(5); } - Metadata *getRawStaticDataMemberDeclaration() const { return getOperand(6); } + Metadata *getRawExpr() const { return getOperand(6); } + Metadata *getRawStaticDataMemberDeclaration() const { return getOperand(7); } static bool classof(const Metadata *MD) { return MD->getMetadataID() == DIGlobalVariableKind; @@ -2385,45 +2391,6 @@ public: } }; -/// A pair of DIGlobalVariable and DIExpression. -class DIGlobalVariableExpression : public MDNode { - friend class LLVMContextImpl; - friend class MDNode; - - DIGlobalVariableExpression(LLVMContext &C, StorageType Storage, - ArrayRef Ops) - : MDNode(C, DIGlobalVariableExpressionKind, Storage, Ops) {} - ~DIGlobalVariableExpression() = default; - - static DIGlobalVariableExpression * - getImpl(LLVMContext &Context, Metadata *Variable, Metadata *Expression, - StorageType Storage, bool ShouldCreate = true); - - TempDIGlobalVariableExpression cloneImpl() const { - return getTemporary(getContext(), getVariable(), getExpression()); - } - -public: - DEFINE_MDNODE_GET(DIGlobalVariableExpression, - (Metadata * Variable, Metadata *Expression), - (Variable, Expression)) - - TempDIGlobalVariableExpression clone() const { return cloneImpl(); } - - Metadata *getRawVariable() const { return getOperand(0); } - DIGlobalVariable *getVariable() const { - return cast_or_null(getRawVariable()); - } - Metadata *getRawExpression() const { return getOperand(1); } - DIExpression *getExpression() const { - return cast_or_null(getRawExpression()); - } - - static bool classof(const Metadata *MD) { - return MD->getMetadataID() == DIGlobalVariableExpressionKind; - } -}; - /// Macro Info DWARF-like metadata node. /// /// A metadata node with a DWARF macro info (i.e., a constant named diff --git a/llvm/include/llvm/IR/GlobalVariable.h b/llvm/include/llvm/IR/GlobalVariable.h index 3b545d8..32281e1 100644 --- a/llvm/include/llvm/IR/GlobalVariable.h +++ b/llvm/include/llvm/IR/GlobalVariable.h @@ -20,7 +20,6 @@ #ifndef LLVM_IR_GLOBALVARIABLE_H #define LLVM_IR_GLOBALVARIABLE_H -#include "llvm/ADT/PointerUnion.h" #include "llvm/ADT/Twine.h" #include "llvm/ADT/ilist_node.h" #include "llvm/IR/GlobalObject.h" @@ -32,11 +31,10 @@ namespace llvm { class Constant; +class DIGlobalVariable; class Module; template class SymbolTableListTraits; -class DIGlobalVariable; -class DIGlobalVariableExpression; class GlobalVariable : public GlobalObject, public ilist_node { friend class SymbolTableListTraits; @@ -172,11 +170,8 @@ public: /// drops not only the reference to the initializer but also to any metadata. void dropAllReferences(); - /// Attach a DIGlobalVariableExpression. - void addDebugInfo(DIGlobalVariableExpression *GV); - - /// Fill the vector with all debug info attachements. - void getDebugInfo(SmallVectorImpl &GVs) const; + void addDebugInfo(DIGlobalVariable *GV); + void getDebugInfo(SmallVectorImpl &GVs) const; // Methods for support type inquiry through isa, cast, and dyn_cast: static inline bool classof(const Value *V) { diff --git a/llvm/include/llvm/IR/Metadata.def b/llvm/include/llvm/IR/Metadata.def index 03cdcab..607f5ef 100644 --- a/llvm/include/llvm/IR/Metadata.def +++ b/llvm/include/llvm/IR/Metadata.def @@ -82,7 +82,6 @@ HANDLE_MDNODE_BRANCH(MDNode) HANDLE_MDNODE_LEAF_UNIQUABLE(MDTuple) HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DILocation) HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIExpression) -HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DIGlobalVariableExpression) HANDLE_SPECIALIZED_MDNODE_BRANCH(DINode) HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(GenericDINode) HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DISubrange) diff --git a/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp b/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp index f675830..5b254c8 100644 --- a/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp +++ b/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp @@ -91,8 +91,7 @@ void ModuleDebugInfoPrinter::print(raw_ostream &O, const Module *M) const { O << '\n'; } - for (auto GVU : Finder.global_variables()) { - const auto *GV = GVU->getVariable(); + for (const DIGlobalVariable *GV : Finder.global_variables()) { O << "Global variable: " << GV->getName(); printFile(O, GV->getFilename(), GV->getDirectory(), GV->getLine()); if (!GV->getLinkageName().empty()) diff --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp index 712a2c6..d4de28e 100644 --- a/llvm/lib/AsmParser/LLParser.cpp +++ b/llvm/lib/AsmParser/LLParser.cpp @@ -4197,7 +4197,8 @@ bool LLParser::ParseDITemplateValueParameter(MDNode *&Result, bool IsDistinct) { /// ParseDIGlobalVariable: /// ::= !DIGlobalVariable(scope: !0, name: "foo", linkageName: "foo", /// file: !1, line: 7, type: !2, isLocal: false, -/// isDefinition: true, declaration: !3, align: 8) +/// isDefinition: true, variable: i32* @foo, +/// declaration: !3, align: 8) bool LLParser::ParseDIGlobalVariable(MDNode *&Result, bool IsDistinct) { #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \ REQUIRED(name, MDStringField, (/* AllowEmpty */ false)); \ @@ -4208,6 +4209,7 @@ bool LLParser::ParseDIGlobalVariable(MDNode *&Result, bool IsDistinct) { OPTIONAL(type, MDField, ); \ OPTIONAL(isLocal, MDBoolField, ); \ OPTIONAL(isDefinition, MDBoolField, (true)); \ + OPTIONAL(expr, MDField, ); \ OPTIONAL(declaration, MDField, ); \ OPTIONAL(align, MDUnsignedField, (0, UINT32_MAX)); PARSE_MD_FIELDS(); @@ -4216,7 +4218,8 @@ bool LLParser::ParseDIGlobalVariable(MDNode *&Result, bool IsDistinct) { Result = GET_OR_DISTINCT(DIGlobalVariable, (Context, scope.Val, name.Val, linkageName.Val, file.Val, line.Val, type.Val, isLocal.Val, - isDefinition.Val, declaration.Val, align.Val)); + isDefinition.Val, expr.Val, declaration.Val, + align.Val)); return false; } @@ -4284,21 +4287,6 @@ bool LLParser::ParseDIExpression(MDNode *&Result, bool IsDistinct) { return false; } -/// ParseDIGlobalVariableExpression: -/// ::= !DIGlobalVariableExpression(var: !0, expr: !1) -bool LLParser::ParseDIGlobalVariableExpression(MDNode *&Result, - bool IsDistinct) { -#define VISIT_MD_FIELDS(OPTIONAL, REQUIRED) \ - REQUIRED(var, MDField, ); \ - OPTIONAL(expr, MDField, ); - PARSE_MD_FIELDS(); -#undef VISIT_MD_FIELDS - - Result = - GET_OR_DISTINCT(DIGlobalVariableExpression, (Context, var.Val, expr.Val)); - return false; -} - /// ParseDIObjCProperty: /// ::= !DIObjCProperty(name: "foo", file: !1, line: 7, setter: "setFoo", /// getter: "getFoo", attributes: 7, type: !2) diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index 9660110..1e28411d 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -982,16 +982,12 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadata(bool ModuleLevel) { DIGlobalVariable, (Context, getMDOrNull(Record[1]), getMDString(Record[2]), getMDString(Record[3]), getMDOrNull(Record[4]), Record[5], - getDITypeRefOrNull(Record[6]), Record[7], Record[8], + getDITypeRefOrNull(Record[6]), Record[7], Record[8], Expr, getMDOrNull(Record[10]), AlignInBits)); + MetadataList.assignValue(DGV, NextMetadataNo++); - if (Expr || Attach) { - auto *DGVE = DIGlobalVariableExpression::getDistinct(Context, DGV, Expr); - MetadataList.assignValue(DGVE, NextMetadataNo++); - if (Attach) - Attach->addDebugInfo(DGVE); - } else - MetadataList.assignValue(DGV, NextMetadataNo++); + if (Attach) + Attach->addDebugInfo(DGV); break; } @@ -1041,17 +1037,6 @@ Error MetadataLoader::MetadataLoaderImpl::parseMetadata(bool ModuleLevel) { NextMetadataNo++); break; } - case bitc::METADATA_GLOBAL_VAR_EXPR: { - if (Record.size() != 3) - return error("Invalid record"); - - IsDistinct = Record[0]; - MetadataList.assignValue(GET_OR_DISTINCT(DIGlobalVariableExpression, - (Context, getMDOrNull(Record[1]), - getMDOrNull(Record[2]))), - NextMetadataNo++); - break; - } case bitc::METADATA_OBJC_PROPERTY: { if (Record.size() != 8) return error("Invalid record"); diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index 2905a98..cff2fd0 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -210,9 +210,6 @@ private: SmallVectorImpl &Record, unsigned Abbrev); void writeDIExpression(const DIExpression *N, SmallVectorImpl &Record, unsigned Abbrev); - void writeDIGlobalVariableExpression(const DIGlobalVariableExpression *N, - SmallVectorImpl &Record, - unsigned Abbrev); void writeDIObjCProperty(const DIObjCProperty *N, SmallVectorImpl &Record, unsigned Abbrev); void writeDIImportedEntity(const DIImportedEntity *N, @@ -1686,7 +1683,7 @@ void ModuleBitcodeWriter::writeDIGlobalVariable( Record.push_back(VE.getMetadataOrNullID(N->getType())); Record.push_back(N->isLocalToUnit()); Record.push_back(N->isDefinition()); - Record.push_back(/* expr */ 0); + Record.push_back(VE.getMetadataOrNullID(N->getRawExpr())); Record.push_back(VE.getMetadataOrNullID(N->getStaticDataMemberDeclaration())); Record.push_back(N->getAlignInBits()); @@ -1738,17 +1735,6 @@ void ModuleBitcodeWriter::writeDIExpression(const DIExpression *N, Record.clear(); } -void ModuleBitcodeWriter::writeDIGlobalVariableExpression( - const DIGlobalVariableExpression *N, SmallVectorImpl &Record, - unsigned Abbrev) { - Record.push_back(N->isDistinct()); - Record.push_back(VE.getMetadataOrNullID(N->getVariable())); - Record.push_back(VE.getMetadataOrNullID(N->getExpression())); - - Stream.EmitRecord(bitc::METADATA_GLOBAL_VAR_EXPR, Record, Abbrev); - Record.clear(); -} - void ModuleBitcodeWriter::writeDIObjCProperty(const DIObjCProperty *N, SmallVectorImpl &Record, unsigned Abbrev) { diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp index 3f5ef1a..8e17032 100644 --- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp @@ -2181,13 +2181,12 @@ void CodeViewDebug::emitDebugInfoForUDTs( } void CodeViewDebug::emitDebugInfoForGlobals() { - DenseMap - GlobalMap; + DenseMap GlobalMap; for (const GlobalVariable &GV : MMI->getModule()->globals()) { - SmallVector GVEs; - GV.getDebugInfo(GVEs); - for (const auto *GVE : GVEs) - GlobalMap[GVE] = &GV; + SmallVector MDs; + GV.getMetadata(LLVMContext::MD_dbg, MDs); + for (MDNode *MD : MDs) + GlobalMap[cast(MD)] = &GV; } NamedMDNode *CUs = MMI->getModule()->getNamedMetadata("llvm.dbg.cu"); @@ -2199,15 +2198,14 @@ void CodeViewDebug::emitDebugInfoForGlobals() { // it if we have at least one global to emit. switchToDebugSectionForSymbol(nullptr); MCSymbol *EndLabel = nullptr; - for (const auto *GVE : CU->getGlobalVariables()) { - if (const auto *GV = GlobalMap.lookup(GVE)) + for (const DIGlobalVariable *G : CU->getGlobalVariables()) { + if (const auto *GV = GlobalMap.lookup(G)) if (!GV->hasComdat() && !GV->isDeclarationForLinker()) { if (!EndLabel) { OS.AddComment("Symbol subsection for globals"); EndLabel = beginCVSubsection(ModuleSubstreamKind::Symbols); } - // FIXME: emitDebugInfoForGlobal() doesn't handle DIExpressions. - emitDebugInfoForGlobal(GVE->getVariable(), GV, Asm->getSymbol(GV)); + emitDebugInfoForGlobal(G, GV, Asm->getSymbol(GV)); } } if (EndLabel) @@ -2215,16 +2213,15 @@ void CodeViewDebug::emitDebugInfoForGlobals() { // Second, emit each global that is in a comdat into its own .debug$S // section along with its own symbol substream. - for (const auto *GVE : CU->getGlobalVariables()) { - if (const auto *GV = GlobalMap.lookup(GVE)) { + for (const DIGlobalVariable *G : CU->getGlobalVariables()) { + if (const auto *GV = GlobalMap.lookup(G)) { if (GV->hasComdat()) { MCSymbol *GVSym = Asm->getSymbol(GV); OS.AddComment("Symbol subsection for " + Twine(GlobalValue::getRealLinkageName(GV->getName()))); switchToDebugSectionForSymbol(GVSym); EndLabel = beginCVSubsection(ModuleSubstreamKind::Symbols); - // FIXME: emitDebugInfoForGlobal() doesn't handle DIExpressions. - emitDebugInfoForGlobal(GVE->getVariable(), GV, GVSym); + emitDebugInfoForGlobal(G, GV, GVSym); endCVSubsection(EndLabel); } } diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 0db623b..5f9506c 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -73,8 +73,9 @@ unsigned DwarfCompileUnit::getOrCreateSourceID(StringRef FileName, Asm->OutStreamer->hasRawTextSupport() ? 0 : getUniqueID()); } +/// getOrCreateGlobalVariableDIE - get or create global variable DIE. DIE *DwarfCompileUnit::getOrCreateGlobalVariableDIE( - const DIGlobalVariable *GV, ArrayRef GlobalExprs) { + const DIGlobalVariable *GV, const GlobalVariable *Global) { // Check for pre-existence. if (DIE *Die = getDIE(GV)) return Die; @@ -127,76 +128,69 @@ DIE *DwarfCompileUnit::getOrCreateGlobalVariableDIE( // Add location. bool addToAccelTable = false; - DIELoc *Loc = nullptr; - std::unique_ptr DwarfExpr; - bool AllConstant = std::all_of( - GlobalExprs.begin(), GlobalExprs.end(), - [&](const GlobalExpr GE) { - return GE.Expr && GE.Expr->isConstant(); - }); - - for (const auto &GE : GlobalExprs) { - const GlobalVariable *Global = GE.Var; - const DIExpression *Expr = GE.Expr; - // For compatibility with DWARF 3 and earlier, - // DW_AT_location(DW_OP_constu, X, DW_OP_stack_value) becomes - // DW_AT_const_value(X). - if (GlobalExprs.size() == 1 && Expr && Expr->isConstant()) { - addConstantValue(*VariableDIE, /*Unsigned=*/true, Expr->getElement(1)); - // We cannot describe the location of dllimport'd variables: the - // computation of their address requires loads from the IAT. - } else if ((Global && !Global->hasDLLImportStorageClass()) || AllConstant) { - if (!Loc) { - Loc = new (DIEValueAllocator) DIELoc; - DwarfExpr = llvm::make_unique(*Asm, *this, *Loc); - } + + DIExpression *Expr = GV->getExpr(); + + // For compatibility with DWARF 3 and earlier, + // DW_AT_location(DW_OP_constu, X, DW_OP_stack_value) becomes + // DW_AT_const_value(X). + if (Expr && Expr->getNumElements() == 3 && + Expr->getElement(0) == dwarf::DW_OP_constu && + Expr->getElement(2) == dwarf::DW_OP_stack_value) { + addConstantValue(*VariableDIE, /*Unsigned=*/true, Expr->getElement(1)); + // We cannot describe the location of dllimport'd variables: the computation + // of their address requires loads from the IAT. + } else if (!Global || !Global->hasDLLImportStorageClass()) { + DIELoc *Loc = new (DIEValueAllocator) DIELoc; + if (Global) { addToAccelTable = true; - if (Global) { - const MCSymbol *Sym = Asm->getSymbol(Global); - if (Global->isThreadLocal()) { - if (Asm->TM.Options.EmulatedTLS) { - // TODO: add debug info for emulated thread local mode. + const MCSymbol *Sym = Asm->getSymbol(Global); + if (Global->isThreadLocal()) { + if (Asm->TM.Options.EmulatedTLS) { + // TODO: add debug info for emulated thread local mode. + } else { + // FIXME: Make this work with -gsplit-dwarf. + unsigned PointerSize = Asm->getDataLayout().getPointerSize(); + assert((PointerSize == 4 || PointerSize == 8) && + "Add support for other sizes if necessary"); + // Based on GCC's support for TLS: + if (!DD->useSplitDwarf()) { + // 1) Start with a constNu of the appropriate pointer size + addUInt(*Loc, dwarf::DW_FORM_data1, PointerSize == 4 + ? dwarf::DW_OP_const4u + : dwarf::DW_OP_const8u); + // 2) containing the (relocated) offset of the TLS variable + // within the module's TLS block. + addExpr(*Loc, dwarf::DW_FORM_udata, + Asm->getObjFileLowering().getDebugThreadLocalSymbol(Sym)); } else { - // FIXME: Make this work with -gsplit-dwarf. - unsigned PointerSize = Asm->getDataLayout().getPointerSize(); - assert((PointerSize == 4 || PointerSize == 8) && - "Add support for other sizes if necessary"); - // Based on GCC's support for TLS: - if (!DD->useSplitDwarf()) { - // 1) Start with a constNu of the appropriate pointer size - addUInt(*Loc, dwarf::DW_FORM_data1, - PointerSize == 4 ? dwarf::DW_OP_const4u - : dwarf::DW_OP_const8u); - // 2) containing the (relocated) offset of the TLS variable - // within the module's TLS block. - addExpr(*Loc, dwarf::DW_FORM_udata, - Asm->getObjFileLowering().getDebugThreadLocalSymbol(Sym)); - } else { - addUInt(*Loc, dwarf::DW_FORM_data1, dwarf::DW_OP_GNU_const_index); - addUInt(*Loc, dwarf::DW_FORM_udata, - DD->getAddressPool().getIndex(Sym, /* TLS */ true)); - } - // 3) followed by an OP to make the debugger do a TLS lookup. - addUInt(*Loc, dwarf::DW_FORM_data1, - DD->useGNUTLSOpcode() ? dwarf::DW_OP_GNU_push_tls_address - : dwarf::DW_OP_form_tls_address); + addUInt(*Loc, dwarf::DW_FORM_data1, dwarf::DW_OP_GNU_const_index); + addUInt(*Loc, dwarf::DW_FORM_udata, + DD->getAddressPool().getIndex(Sym, /* TLS */ true)); } - } else { - DD->addArangeLabel(SymbolCU(this, Sym)); - addOpAddress(*Loc, Sym); + // 3) followed by an OP to make the debugger do a TLS lookup. + addUInt(*Loc, dwarf::DW_FORM_data1, + DD->useGNUTLSOpcode() ? dwarf::DW_OP_GNU_push_tls_address + : dwarf::DW_OP_form_tls_address); } + } else { + DD->addArangeLabel(SymbolCU(this, Sym)); + addOpAddress(*Loc, Sym); } + if (Expr) { - DwarfExpr->addFragmentOffset(Expr); - DwarfExpr->AddExpression(Expr); + DIEDwarfExpression DwarfExpr(*Asm, *this, *Loc); + DwarfExpr.addFragmentOffset(Expr); + DwarfExpr.AddExpression(Expr); + DwarfExpr.finalize(); } } - } - if (Loc) - addBlock(*VariableDIE, dwarf::DW_AT_location, DwarfExpr->finalize()); - if (DD->useAllLinkageNames()) - addLinkageName(*VariableDIE, GV->getLinkageName()); + addBlock(*VariableDIE, dwarf::DW_AT_location, Loc); + + if (DD->useAllLinkageNames()) + addLinkageName(*VariableDIE, GV->getLinkageName()); + } if (addToAccelTable) { DD->addAccelName(GV->getName(), *VariableDIE); @@ -509,7 +503,8 @@ DIE *DwarfCompileUnit::constructVariableDIEImpl(const DbgVariable &DV, DwarfExpr.addFragmentOffset(Expr); DwarfExpr.AddUnsignedConstant(DVInsn->getOperand(0).getImm()); DwarfExpr.AddExpression(Expr); - addBlock(*VariableDie, dwarf::DW_AT_location, DwarfExpr.finalize()); + DwarfExpr.finalize(); + addBlock(*VariableDie, dwarf::DW_AT_location, Loc); } else addConstantValue(*VariableDie, DVInsn->getOperand(0), DV.getType()); } else if (DVInsn->getOperand(0).isFPImm()) @@ -539,7 +534,8 @@ DIE *DwarfCompileUnit::constructVariableDIEImpl(const DbgVariable &DV, DwarfExpr.AddExpression(*Expr); ++Expr; } - addBlock(*VariableDie, dwarf::DW_AT_location, DwarfExpr.finalize()); + DwarfExpr.finalize(); + addBlock(*VariableDie, dwarf::DW_AT_location, Loc); return VariableDie; } @@ -658,7 +654,7 @@ DIE *DwarfCompileUnit::constructImportedEntityDIE( else if (auto *T = dyn_cast(Entity)) EntityDie = getOrCreateTypeDIE(T); else if (auto *GV = dyn_cast(Entity)) - EntityDie = getOrCreateGlobalVariableDIE(GV, {}); + EntityDie = getOrCreateGlobalVariableDIE(GV, nullptr); else EntityDie = getDIE(Entity); assert(EntityDie); @@ -744,8 +740,10 @@ void DwarfCompileUnit::addAddress(DIE &Die, dwarf::Attribute Attribute, if (!validReg) return; + Expr.finalize(); + // Now attach the location information to the DIE. - addBlock(Die, Attribute, Expr.finalize()); + addBlock(Die, Attribute, Loc); } /// Start with the address based on the location provided, and generate the diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h index a8025f1..da20bef 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h @@ -91,16 +91,9 @@ public: /// Apply the DW_AT_stmt_list from this compile unit to the specified DIE. void applyStmtList(DIE &D); - /// A pair of GlobalVariable and DIExpression. - struct GlobalExpr { - const GlobalVariable *Var; - const DIExpression *Expr; - }; - - /// Get or create global variable DIE. - DIE * - getOrCreateGlobalVariableDIE(const DIGlobalVariable *GV, - ArrayRef GlobalExprs); + /// getOrCreateGlobalVariableDIE - get or create global variable DIE. + DIE *getOrCreateGlobalVariableDIE(const DIGlobalVariable *GV, + const GlobalVariable *Global); /// addLabelAddress - Add a dwarf label attribute data and value using /// either DW_FORM_addr or DW_FORM_GNU_addr_index. diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index e6f5590..f83a340 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -464,26 +464,6 @@ void DwarfDebug::constructAndAddImportedEntityDIE(DwarfCompileUnit &TheCU, D->addChild(TheCU.constructImportedEntityDIE(N)); } -/// Sort and unique GVEs by comparing their fragment offset. -static SmallVectorImpl & -sortGlobalExprs(SmallVectorImpl &GVEs) { - std::sort(GVEs.begin(), GVEs.end(), - [](DwarfCompileUnit::GlobalExpr A, DwarfCompileUnit::GlobalExpr B) { - if (A.Expr != B.Expr && A.Expr && B.Expr && - A.Expr->isFragment() && B.Expr->isFragment()) - return A.Expr->getFragmentOffsetInBits() < - B.Expr->getFragmentOffsetInBits(); - return false; - }); - GVEs.erase(std::unique(GVEs.begin(), GVEs.end(), - [](DwarfCompileUnit::GlobalExpr A, - DwarfCompileUnit::GlobalExpr B) { - return A.Expr == B.Expr; - }), - GVEs.end()); - return GVEs; -} - // Emit all Dwarf sections that should come prior to the content. Create // global DIEs and emit initial debug info sections. This is invoked by // the target AsmPrinter. @@ -500,30 +480,21 @@ void DwarfDebug::beginModule() { // Tell MMI whether we have debug info. MMI->setDebugInfoAvailability(NumDebugCUs > 0); SingleCU = NumDebugCUs == 1; - DenseMap> - GVMap; + + DenseMap GVMap; for (const GlobalVariable &Global : M->globals()) { - SmallVector GVs; + SmallVector GVs; Global.getDebugInfo(GVs); - for (auto *GVE : GVs) - GVMap[GVE->getVariable()].push_back({&Global, GVE->getExpression()}); + for (auto &GV : GVs) + GVMap[GV] = &Global; } for (DICompileUnit *CUNode : M->debug_compile_units()) { DwarfCompileUnit &CU = constructDwarfCompileUnit(CUNode); for (auto *IE : CUNode->getImportedEntities()) CU.addImportedEntity(IE); - - // Global Variables. - for (auto *GVE : CUNode->getGlobalVariables()) - GVMap[GVE->getVariable()].push_back({nullptr, GVE->getExpression()}); - DenseSet Processed; - for (auto *GVE : CUNode->getGlobalVariables()) { - DIGlobalVariable *GV = GVE->getVariable(); - if (Processed.insert(GV).second) - CU.getOrCreateGlobalVariableDIE(GV, sortGlobalExprs(GVMap[GV])); - } - + for (auto *GV : CUNode->getGlobalVariables()) + CU.getOrCreateGlobalVariableDIE(GV, GVMap.lookup(GV)); for (auto *Ty : CUNode->getEnumTypes()) { // The enum types array by design contains pointers to // MDNodes rather than DIRefs. Unique them here. diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h index 96d9f09..bebf3db 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h @@ -215,10 +215,6 @@ public: void EmitUnsigned(uint64_t Value) override; bool isFrameRegister(const TargetRegisterInfo &TRI, unsigned MachineReg) override; - DIELoc *finalize() { - DwarfExpression::finalize(); - return &DIE; - } }; } diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp index 5c104f6..d58618f 100644 --- a/llvm/lib/IR/AsmWriter.cpp +++ b/llvm/lib/IR/AsmWriter.cpp @@ -1827,6 +1827,7 @@ static void writeDIGlobalVariable(raw_ostream &Out, const DIGlobalVariable *N, Printer.printMetadata("type", N->getRawType()); Printer.printBool("isLocal", N->isLocalToUnit()); Printer.printBool("isDefinition", N->isDefinition()); + Printer.printMetadata("expr", N->getExpr()); Printer.printMetadata("declaration", N->getRawStaticDataMemberDeclaration()); Printer.printInt("align", N->getAlignInBits()); Out << ")"; @@ -1869,18 +1870,6 @@ static void writeDIExpression(raw_ostream &Out, const DIExpression *N, Out << ")"; } -static void writeDIGlobalVariableExpression(raw_ostream &Out, - const DIGlobalVariableExpression *N, - TypePrinting *TypePrinter, - SlotTracker *Machine, - const Module *Context) { - Out << "!DIGlobalVariableExpression("; - MDFieldPrinter Printer(Out, TypePrinter, Machine, Context); - Printer.printMetadata("var", N->getVariable()); - Printer.printMetadata("expr", N->getExpression()); - Out << ")"; -} - static void writeDIObjCProperty(raw_ostream &Out, const DIObjCProperty *N, TypePrinting *TypePrinter, SlotTracker *Machine, const Module *Context) { diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp index d009322..dfca689 100644 --- a/llvm/lib/IR/DIBuilder.cpp +++ b/llvm/lib/IR/DIBuilder.cpp @@ -532,30 +532,29 @@ static void checkGlobalVariableScope(DIScope *Context) { #endif } -DIGlobalVariableExpression *DIBuilder::createGlobalVariableExpression( +DIGlobalVariable *DIBuilder::createGlobalVariable( DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *F, - unsigned LineNumber, DIType *Ty, bool isLocalToUnit, DIExpression *Expr, - MDNode *Decl, uint32_t AlignInBits) { + unsigned LineNumber, DIType *Ty, bool isLocalToUnit, + DIExpression *Expr, MDNode *Decl, uint32_t AlignInBits) { checkGlobalVariableScope(Context); - auto *GV = DIGlobalVariable::getDistinct( + auto *N = DIGlobalVariable::getDistinct( VMContext, cast_or_null(Context), Name, LinkageName, F, - LineNumber, Ty, isLocalToUnit, true, cast_or_null(Decl), - AlignInBits); - auto *N = DIGlobalVariableExpression::get(VMContext, GV, Expr); + LineNumber, Ty, isLocalToUnit, true, Expr, + cast_or_null(Decl), AlignInBits); AllGVs.push_back(N); return N; } DIGlobalVariable *DIBuilder::createTempGlobalVariableFwdDecl( DIScope *Context, StringRef Name, StringRef LinkageName, DIFile *F, - unsigned LineNumber, DIType *Ty, bool isLocalToUnit, MDNode *Decl, - uint32_t AlignInBits) { + unsigned LineNumber, DIType *Ty, bool isLocalToUnit, + DIExpression *Expr, MDNode *Decl, uint32_t AlignInBits) { checkGlobalVariableScope(Context); return DIGlobalVariable::getTemporary( VMContext, cast_or_null(Context), Name, LinkageName, F, - LineNumber, Ty, isLocalToUnit, false, + LineNumber, Ty, isLocalToUnit, false, Expr, cast_or_null(Decl), AlignInBits) .release(); } diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp index 6b9bc68..7f91b49 100644 --- a/llvm/lib/IR/DebugInfo.cpp +++ b/llvm/lib/IR/DebugInfo.cpp @@ -53,12 +53,11 @@ void DebugInfoFinder::reset() { void DebugInfoFinder::processModule(const Module &M) { for (auto *CU : M.debug_compile_units()) { addCompileUnit(CU); - for (auto DIG : CU->getGlobalVariables()) { - if (!addGlobalVariable(DIG)) - continue; - auto *GV = DIG->getVariable(); - processScope(GV->getScope()); - processType(GV->getType().resolve()); + for (auto *DIG : CU->getGlobalVariables()) { + if (addGlobalVariable(DIG)) { + processScope(DIG->getScope()); + processType(DIG->getType().resolve()); + } } for (auto *ET : CU->getEnumTypes()) processType(ET); @@ -207,7 +206,10 @@ bool DebugInfoFinder::addCompileUnit(DICompileUnit *CU) { return true; } -bool DebugInfoFinder::addGlobalVariable(DIGlobalVariableExpression *DIG) { +bool DebugInfoFinder::addGlobalVariable(DIGlobalVariable *DIG) { + if (!DIG) + return false; + if (!NodesSeen.insert(DIG).second) return false; diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp index 75c397e..fe61c27 100644 --- a/llvm/lib/IR/DebugInfoMetadata.cpp +++ b/llvm/lib/IR/DebugInfoMetadata.cpp @@ -514,17 +514,18 @@ DIGlobalVariable * DIGlobalVariable::getImpl(LLVMContext &Context, Metadata *Scope, MDString *Name, MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type, bool IsLocalToUnit, bool IsDefinition, + Metadata *Variable, Metadata *StaticDataMemberDeclaration, - uint32_t AlignInBits, StorageType Storage, - bool ShouldCreate) { + uint32_t AlignInBits, + StorageType Storage, bool ShouldCreate) { assert(isCanonical(Name) && "Expected canonical MDString"); assert(isCanonical(LinkageName) && "Expected canonical MDString"); DEFINE_GETIMPL_LOOKUP(DIGlobalVariable, (Scope, Name, LinkageName, File, Line, Type, - IsLocalToUnit, IsDefinition, + IsLocalToUnit, IsDefinition, Variable, StaticDataMemberDeclaration, AlignInBits)); - Metadata *Ops[] = { - Scope, Name, File, Type, Name, LinkageName, StaticDataMemberDeclaration}; + Metadata *Ops[] = {Scope, Name, File, Type, + Name, LinkageName, Variable, StaticDataMemberDeclaration}; DEFINE_GETIMPL_STORE(DIGlobalVariable, (Line, IsLocalToUnit, IsDefinition, AlignInBits), Ops); @@ -580,17 +581,10 @@ bool DIExpression::isValid() const { default: return false; case dwarf::DW_OP_LLVM_fragment: - // A fragment operator must appear at the end. + case dwarf::DW_OP_stack_value: + // We only support fragment and stack value expressions which appear at + // the end. return I->get() + I->getSize() == E->get(); - case dwarf::DW_OP_stack_value: { - // Must be the last one or followed by a DW_OP_LLVM_fragment. - if (I->get() + I->getSize() == E->get()) - break; - auto J = I; - if ((++J)->getOp() != dwarf::DW_OP_LLVM_fragment) - return false; - break; - } case dwarf::DW_OP_constu: case dwarf::DW_OP_plus: case dwarf::DW_OP_minus: @@ -619,27 +613,6 @@ uint64_t DIExpression::getFragmentSizeInBits() const { return getElement(getNumElements() - 1); } -bool DIExpression::isConstant() const { - // Recognize DW_OP_constu C DW_OP_stack_value (DW_OP_LLVM_fragment Len Ofs)?. - if (getNumElements() != 3 && getNumElements() != 6) - return false; - if (getElement(0) != dwarf::DW_OP_constu || - getElement(2) != dwarf::DW_OP_stack_value) - return false; - if (getNumElements() == 6 && getElement(3) != dwarf::DW_OP_LLVM_fragment) - return false; - return true; -} - -DIGlobalVariableExpression * -DIGlobalVariableExpression::getImpl(LLVMContext &Context, Metadata *Variable, - Metadata *Expression, StorageType Storage, - bool ShouldCreate) { - DEFINE_GETIMPL_LOOKUP(DIGlobalVariableExpression, (Variable, Expression)); - Metadata *Ops[] = {Variable, Expression}; - DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(DIGlobalVariableExpression, Ops); -} - DIObjCProperty *DIObjCProperty::getImpl( LLVMContext &Context, MDString *Name, Metadata *File, unsigned Line, MDString *GetterName, MDString *SetterName, unsigned Attributes, diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h index 55443c59..f1cc12a 100644 --- a/llvm/lib/IR/LLVMContextImpl.h +++ b/llvm/lib/IR/LLVMContextImpl.h @@ -763,16 +763,18 @@ template <> struct MDNodeKeyImpl { Metadata *Type; bool IsLocalToUnit; bool IsDefinition; + Metadata *Expr; Metadata *StaticDataMemberDeclaration; uint32_t AlignInBits; MDNodeKeyImpl(Metadata *Scope, MDString *Name, MDString *LinkageName, Metadata *File, unsigned Line, Metadata *Type, bool IsLocalToUnit, bool IsDefinition, - Metadata *StaticDataMemberDeclaration, uint32_t AlignInBits) + Metadata *Expr, Metadata *StaticDataMemberDeclaration, + uint32_t AlignInBits) : Scope(Scope), Name(Name), LinkageName(LinkageName), File(File), Line(Line), Type(Type), IsLocalToUnit(IsLocalToUnit), - IsDefinition(IsDefinition), + IsDefinition(IsDefinition), Expr(Expr), StaticDataMemberDeclaration(StaticDataMemberDeclaration), AlignInBits(AlignInBits) {} MDNodeKeyImpl(const DIGlobalVariable *N) @@ -780,6 +782,7 @@ template <> struct MDNodeKeyImpl { LinkageName(N->getRawLinkageName()), File(N->getRawFile()), Line(N->getLine()), Type(N->getRawType()), IsLocalToUnit(N->isLocalToUnit()), IsDefinition(N->isDefinition()), + Expr(N->getRawExpr()), StaticDataMemberDeclaration(N->getRawStaticDataMemberDeclaration()), AlignInBits(N->getAlignInBits()) {} @@ -789,6 +792,7 @@ template <> struct MDNodeKeyImpl { File == RHS->getRawFile() && Line == RHS->getLine() && Type == RHS->getRawType() && IsLocalToUnit == RHS->isLocalToUnit() && IsDefinition == RHS->isDefinition() && + Expr == RHS->getRawExpr() && StaticDataMemberDeclaration == RHS->getRawStaticDataMemberDeclaration() && AlignInBits == RHS->getAlignInBits(); @@ -802,7 +806,7 @@ template <> struct MDNodeKeyImpl { // generated IR is random for each run and test fails with Align included. // TODO: make hashing work fine with such situations return hash_combine(Scope, Name, LinkageName, File, Line, Type, - IsLocalToUnit, IsDefinition, /* AlignInBits, */ + IsLocalToUnit, IsDefinition, /* AlignInBits, */ Expr, StaticDataMemberDeclaration); } }; @@ -859,22 +863,6 @@ template <> struct MDNodeKeyImpl { } }; -template <> struct MDNodeKeyImpl { - Metadata *Variable; - Metadata *Expression; - - MDNodeKeyImpl(Metadata *Variable, Metadata *Expression) - : Variable(Variable), Expression(Expression) {} - MDNodeKeyImpl(const DIGlobalVariableExpression *N) - : Variable(N->getRawVariable()), Expression(N->getRawExpression()) {} - - bool isKeyOf(const DIGlobalVariableExpression *RHS) const { - return Variable == RHS->getRawVariable() && - Expression == RHS->getRawExpression(); - } - unsigned getHashValue() const { return hash_combine(Variable, Expression); } -}; - template <> struct MDNodeKeyImpl { MDString *Name; Metadata *File; diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp index 1d19304..adc9157 100644 --- a/llvm/lib/IR/Metadata.cpp +++ b/llvm/lib/IR/Metadata.cpp @@ -1419,15 +1419,9 @@ void GlobalObject::copyMetadata(const GlobalObject *Other, unsigned Offset) { // If an offset adjustment was specified we need to modify the DIExpression // to prepend the adjustment: // !DIExpression(DW_OP_plus, Offset, [original expr]) - auto *Attachment = MD.second; if (Offset != 0 && MD.first == LLVMContext::MD_dbg) { - DIGlobalVariable *GV = dyn_cast(Attachment); - DIExpression *E = nullptr; - if (!GV) { - auto *GVE = cast(Attachment); - GV = GVE->getVariable(); - E = GVE->getExpression(); - } + DIGlobalVariable *GV = cast(MD.second); + DIExpression *E = GV->getExpr(); ArrayRef OrigElements; if (E) OrigElements = E->getElements(); @@ -1435,10 +1429,9 @@ void GlobalObject::copyMetadata(const GlobalObject *Other, unsigned Offset) { Elements[0] = dwarf::DW_OP_plus; Elements[1] = Offset; std::copy(OrigElements.begin(), OrigElements.end(), Elements.begin() + 2); - E = DIExpression::get(getContext(), Elements); - Attachment = DIGlobalVariableExpression::get(getContext(), GV, E); + GV->replaceExpr(DIExpression::get(getContext(), Elements)); } - addMetadata(MD.first, *Attachment); + addMetadata(MD.first, *MD.second); } } @@ -1459,14 +1452,14 @@ DISubprogram *Function::getSubprogram() const { return cast_or_null(getMetadata(LLVMContext::MD_dbg)); } -void GlobalVariable::addDebugInfo(DIGlobalVariableExpression *GV) { +void GlobalVariable::addDebugInfo(DIGlobalVariable *GV) { addMetadata(LLVMContext::MD_dbg, *GV); } void GlobalVariable::getDebugInfo( - SmallVectorImpl &GVs) const { + SmallVectorImpl &GVs) const { SmallVector MDs; getMetadata(LLVMContext::MD_dbg, MDs); for (MDNode *MD : MDs) - GVs.push_back(cast(MD)); + GVs.push_back(cast(MD)); } diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 2b9dfce..b0ba1c7 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -580,6 +580,7 @@ void Verifier::visitGlobalVariable(const GlobalVariable &GV) { "Global variable initializer type does not match global " "variable type!", &GV); + // If the global has common linkage, it must have a zero initializer and // cannot be constant. if (GV.hasCommonLinkage()) { @@ -645,16 +646,6 @@ void Verifier::visitGlobalVariable(const GlobalVariable &GV) { GV.hasAvailableExternallyLinkage(), "Global is marked as dllimport, but not external", &GV); - // Visit any debug info attachments. - SmallVector MDs; - GV.getMetadata(LLVMContext::MD_dbg, MDs); - for (auto *MD : MDs) { - if (auto *GVE = dyn_cast(MD)) - visitDIGlobalVariableExpression(*GVE); - else - AssertDI(false, "!dbg attachment of global variable must be a DIGlobalVariableExpression"); - } - if (!GV.hasInitializer()) { visitGlobalValue(GV); return; @@ -997,8 +988,8 @@ void Verifier::visitDICompileUnit(const DICompileUnit &N) { if (auto *Array = N.getRawGlobalVariables()) { AssertDI(isa(Array), "invalid global variable list", &N, Array); for (Metadata *Op : N.getGlobalVariables()->operands()) { - AssertDI(Op && (isa(Op)), - "invalid global variable ref", &N, Op); + AssertDI(Op && isa(Op), "invalid global variable ref", + &N, Op); } } if (auto *Array = N.getRawImportedEntities()) { @@ -1141,6 +1132,8 @@ void Verifier::visitDIGlobalVariable(const DIGlobalVariable &N) { AssertDI(N.getTag() == dwarf::DW_TAG_variable, "invalid tag", &N); AssertDI(!N.getName().empty(), "missing global variable name", &N); + if (auto *V = N.getRawExpr()) + AssertDI(isa(V), "invalid expression location", &N, V); if (auto *Member = N.getRawStaticDataMemberDeclaration()) { AssertDI(isa(Member), "invalid static data member declaration", &N, Member); @@ -1160,15 +1153,6 @@ void Verifier::visitDIExpression(const DIExpression &N) { AssertDI(N.isValid(), "invalid expression", &N); } -void Verifier::visitDIGlobalVariableExpression( - const DIGlobalVariableExpression &GVE) { - AssertDI(GVE.getVariable(), "missing variable"); - if (auto *Var = GVE.getVariable()) - visitDIGlobalVariable(*Var); - if (auto *Expr = GVE.getExpression()) - visitDIExpression(*Expr); -} - void Verifier::visitDIObjCProperty(const DIObjCProperty &N) { AssertDI(N.getTag() == dwarf::DW_TAG_APPLE_property, "invalid tag", &N); if (auto *T = N.getRawType()) diff --git a/llvm/lib/Transforms/IPO/StripSymbols.cpp b/llvm/lib/Transforms/IPO/StripSymbols.cpp index 8f6f161..5cb8ff5 100644 --- a/llvm/lib/Transforms/IPO/StripSymbols.cpp +++ b/llvm/lib/Transforms/IPO/StripSymbols.cpp @@ -313,23 +313,20 @@ bool StripDeadDebugInfo::runOnModule(Module &M) { // replace the current list of potentially dead global variables/functions // with the live list. SmallVector LiveGlobalVariables; - DenseSet VisitedSet; + DenseSet VisitedSet; - std::set LiveGVs; + std::set LiveGVs; for (GlobalVariable &GV : M.globals()) { - SmallVector GVEs; - GV.getDebugInfo(GVEs); - for (auto *GVE : GVEs) - LiveGVs.insert(GVE); + SmallVector DIs; + GV.getDebugInfo(DIs); + for (DIGlobalVariable *DI : DIs) + LiveGVs.insert(DI); } for (DICompileUnit *DIC : F.compile_units()) { // Create our live global variable list. bool GlobalVariableChange = false; - for (auto *DIG : DIC->getGlobalVariables()) { - if (DIG->getExpression() && DIG->getExpression()->isConstant()) - LiveGVs.insert(DIG); - + for (DIGlobalVariable *DIG : DIC->getGlobalVariables()) { // Make sure we only visit each global variable only once. if (!VisitedSet.insert(DIG).second) continue; diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp index 6a7cb0e..acc13aa 100644 --- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp @@ -1655,7 +1655,7 @@ bool AddressSanitizerModule::InstrumentGlobals(IRBuilder<> &IRB, Module &M) { // Transfer the debug info. The payload starts at offset zero so we can // copy the debug info over as is. - SmallVector GVs; + SmallVector GVs; G->getDebugInfo(GVs); for (auto *GV : GVs) NewGlobal->addDebugInfo(GV); diff --git a/llvm/test/Assembler/diglobalvariable.ll b/llvm/test/Assembler/diglobalvariable.ll index 02dd628..33c2ec3 100644 --- a/llvm/test/Assembler/diglobalvariable.ll +++ b/llvm/test/Assembler/diglobalvariable.ll @@ -3,8 +3,8 @@ @foo = global i32 0 -; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} -!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !8, !9, !10} +!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9} !0 = !DIFile(filename: "scope.h", directory: "/path/to/dir") !1 = distinct !{} @@ -17,8 +17,12 @@ file: !2, line: 7, type: !3, isLocal: true, isDefinition: false, align: 32) -!6 = !DICompositeType(tag: DW_TAG_structure_type, name: "Class", size: 8, align: 8) -!7 = !DIDerivedType(tag: DW_TAG_member, name: "mem", flags: DIFlagStaticMember, scope: !6, baseType: !3) +; CHECK: !6 = !DIGlobalVariable(name: "foo", scope: !0, isLocal: false, isDefinition: true, expr: !7) +; CHECK: !7 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) +!6 = !DIGlobalVariable(name: "foo", scope: !0, expr: !DIExpression(DW_OP_constu, 42, DW_OP_stack_value)) -; CHECK: !8 = !DIGlobalVariable(name: "mem", scope: !0, isLocal: false, isDefinition: true, declaration: !7) -!8 = !DIGlobalVariable(name: "mem", scope: !0, declaration: !7) +!7 = !DICompositeType(tag: DW_TAG_structure_type, name: "Class", size: 8, align: 8) +!8 = !DIDerivedType(tag: DW_TAG_member, name: "mem", flags: DIFlagStaticMember, scope: !7, baseType: !3) + +; CHECK: !10 = !DIGlobalVariable(name: "mem", scope: !0, isLocal: false, isDefinition: true, declaration: !9) +!9 = !DIGlobalVariable(name: "mem", scope: !0, declaration: !8) diff --git a/llvm/test/Assembler/diglobalvariableexpression.ll b/llvm/test/Assembler/diglobalvariableexpression.ll deleted file mode 100644 index 19f3d14..0000000 --- a/llvm/test/Assembler/diglobalvariableexpression.ll +++ /dev/null @@ -1,23 +0,0 @@ -; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s -; RUN: verify-uselistorder %s - -@foo = global i32 0 - -; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7} -!named = !{!0, !1, !2, !3, !4, !5, !6, !7} - -!0 = !DIFile(filename: "scope.h", directory: "/path/to/dir") -!1 = distinct !{} -!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir") -!3 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!4 = distinct !{} - -; CHECK: !5 = !DIGlobalVariable(name: "foo", linkageName: "foo", scope: !0, file: !2, line: 7, type: !3, isLocal: true, isDefinition: false, align: 32) -!5 = !DIGlobalVariable(name: "foo", linkageName: "foo", scope: !0, - file: !2, line: 7, type: !3, isLocal: true, - isDefinition: false, align: 32) - -; CHECK: !6 = !DIGlobalVariableExpression(var: !5, expr: !7) -!6 = !DIGlobalVariableExpression(var: !5, expr: !7) -; CHECK: !7 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) -!7 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) diff --git a/llvm/test/Bitcode/DIGlobalVariableExpr.ll b/llvm/test/Bitcode/DIGlobalVariableExpr.ll deleted file mode 100644 index aefdf9e..0000000 --- a/llvm/test/Bitcode/DIGlobalVariableExpr.ll +++ /dev/null @@ -1,26 +0,0 @@ -; RUN: llvm-dis -o - %s.bc | FileCheck %s - -; CHECK: @g = common global i32 0, align 4, !dbg ![[G:[0-9]+]] -; CHECK: ![[G]] = {{.*}}!DIGlobalVariableExpression(var: ![[GVAR:[0-9]+]], expr: ![[GEXPR:[0-9]+]]) -; CHECK: ![[GVAR]] = distinct !DIGlobalVariable(name: "g", -; CHECK: !DIGlobalVariableExpression(var: ![[CVAR:[0-9]+]], expr: ![[CEXPR:[0-9]+]]) -; CHECK: ![[CVAR]] = distinct !DIGlobalVariable(name: "c", -; CHECK: ![[CEXPR]] = !DIExpression(DW_OP_constu, 23, DW_OP_stack_value) -; CHECK: ![[GEXPR]] = !DIExpression(DW_OP_plus, 1) -@g = common global i32 0, align 4, !dbg !0 - -!llvm.dbg.cu = !{!1} -!llvm.module.flags = !{!6, !7, !8} -!llvm.ident = !{!9} - -!0 = distinct !DIGlobalVariable(name: "g", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true, expr: !DIExpression(DW_OP_plus, 1)) -!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) -!2 = !DIFile(filename: "a.c", directory: "/") -!3 = !{} -!4 = !{!0, !10} -!5 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!6 = !{i32 2, !"Dwarf Version", i32 4} -!7 = !{i32 2, !"Debug Info Version", i32 3} -!8 = !{i32 1, !"PIC Level", i32 2} -!9 = !{!"clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)"} -!10 = distinct !DIGlobalVariable(name: "c", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true, expr: !DIExpression(DW_OP_constu, 23, DW_OP_stack_value)) diff --git a/llvm/test/Bitcode/DIGlobalVariableExpr.ll.bc b/llvm/test/Bitcode/DIGlobalVariableExpr.ll.bc deleted file mode 100644 index 01e3b0812ee7d131fb5e94329b114ade43a59eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1052 zcmYjQZ%kWN6u)g>d5^Zdw$dmauh08nG@ViC%9M5;rtRwrXfx&LX-Ky=m(n21k5x*30CZu#p%R^kP)z%3lg@V@qukJtsN$ zcYo)c-?`Vp&aOVM0YC}>=usH=yWjXmzjf!u=U%_0k`_>$Q2_85oyp@6h>@>G8;{jr zwimFD3YEz+AxbJ5q=c5nF7`x;qhiN|+~HK2G-jgaWtpii)h=it>q>nJv?j+!J1MA{ z1&_TmmR?KzdI3|rD$YXyWQY?%33&1xR?S>XBD0>%3YsU}$+SG_bgL92nAfJj5DXkv zVggft)CpwbH|vw%{idBh(KJ5x>U))Ub{>9o;;i~g+n>iN|MC2zP%K#rlHp+7X&w25%0T2HrMYN+){w;zZuHl0jek>Dvc59p5x<~#o zOKut^J%uc_k)?{ecEv|6G1Nj#x8$q1E3lRVYsu`|>Ad+WYfee5SMyCM>EChdj}q%t zUh(Z9&vo-bE)g2QBVImK!-pn$?XB08TR{29Lv9Gcy!-eKi*H#cZ^#yBrMywZ~Qyn@c_BHl4^$z(0{V?1Y92q0qI| zFWff-sxeyzf;=XIdcu~wR0+i?v5a^IEH7e$$SIOyPlEIXv3?&aO;+Arjv?}8>=T_smbL%~%c0p_w6pCNtZ$jfCx19}Je zcsG|}ThTbDSj+8vyhJT#tM1#&&$Pto_VfkAaPJ=+BUN=L_U J&5QWT>mTr&Vm$x= diff --git a/llvm/test/Bitcode/diglobalvariable-3.8.ll b/llvm/test/Bitcode/diglobalvariable-3.8.ll index f00a2dd..55b3f65 100644 --- a/llvm/test/Bitcode/diglobalvariable-3.8.ll +++ b/llvm/test/Bitcode/diglobalvariable-3.8.ll @@ -1,20 +1,8 @@ ; RUN: llvm-dis -o - %s.bc | FileCheck %s -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!7, !8} +; CHECK: !0 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true, expr: !1) +; CHECK: !1 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) -; CHECK: !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.1", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !3) -!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 3.8.1", isOptimized: true, runtimeVersion: 0, emissionKind: 1, enums: !2, globals: !3) -!1 = !DIFile(filename: "g.c", directory: "/") -!2 = !{} -; CHECK: !3 = !{!4} -!3 = !{!4} -; CHECK: !4 = {{.*}}!DIGlobalVariableExpression(var: !5, expr: !8) -; CHECK: !5 = !DIGlobalVariable(name: "c", scope: !0, file: !1, line: 1, type: !6, isLocal: false, isDefinition: true) -; CHECK: !8 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) -!4 = !DIGlobalVariable(name: "c", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, variable: i32 42) -!5 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !6) -!6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!7 = !{i32 2, !"Dwarf Version", i32 2} -!8 = !{i32 2, !"Debug Info Version", i32 3} +!named = !{!0} +!0 = distinct !DIGlobalVariable(name: "a", variable: i32 42) diff --git a/llvm/test/Bitcode/diglobalvariable-3.8.ll.bc b/llvm/test/Bitcode/diglobalvariable-3.8.ll.bc index 693c738f6494177530b25f2ddfaafcc009cbaa5d..bfecedd75d9e286f083d24e05f643c18c9ea743e 100644 GIT binary patch delta 254 zcmbQjc7j#a$@#!NQxOIRRt5%!Bpw45pU8dB-hQ{!4eb?RJpmL~UP{r2 z?_@*Vyvy;2OltqAO^<)_W#(V8_M6`}*vN`)KD~A(_w%I9n;pOg8OhCHkrecq(8H>pwEOJPBr&qEY7P|bS(fXV_>M1U|`S#(o)Pm6Wo}Dk32k++H>&q z0!9uNzvP_6ymW=K)S}|d{5%C?JqtZUX$H1rnM-$Ge3M|1lu2Mm>E zSPpDs&EQGk5K;(e;5}$m&&4&Pk%NJOgNq>nEX^prXt#l-vA}AhojbRfZ|80PY%!(d z)R9-`946g4bI)PTsVC1a-Mgd4(YPV8Kxrkn^z7K#+%s>?JRNa&N<-$6V`", directory: "/work/validation") !6 = !{!"", !"/work/validation"} !7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) diff --git a/llvm/test/DebugInfo/AArch64/bitfields.ll b/llvm/test/DebugInfo/AArch64/bitfields.ll index 0adeb74..79a7b13 100644 --- a/llvm/test/DebugInfo/AArch64/bitfields.ll +++ b/llvm/test/DebugInfo/AArch64/bitfields.ll @@ -58,7 +58,7 @@ target triple = "aarch64_be--linux-gnu" !1 = !DIFile(filename: "bitfields.c", directory: "/") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: !0, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "b", scope: !0, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "bitfields.c", directory: "/") !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "bitfield", file: !5, line: 1, size: 96, elements: !7) !7 = !{!8, !10, !11, !12} diff --git a/llvm/test/DebugInfo/AArch64/frameindices.ll b/llvm/test/DebugInfo/AArch64/frameindices.ll index 053a805..2c0d75a 100644 --- a/llvm/test/DebugInfo/AArch64/frameindices.ll +++ b/llvm/test/DebugInfo/AArch64/frameindices.ll @@ -200,8 +200,8 @@ attributes #5 = { builtin } !38 = !DILocalVariable(name: "c", line: 19, scope: !34, file: !26, type: !4) !39 = !DILocalVariable(name: "d", line: 20, scope: !34, file: !26, type: !14) !40 = !{!41, !42} -!41 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !26, type: !20)) -!42 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 7, isLocal: false, isDefinition: true, scope: null, file: !26, type: !12)) +!41 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !26, type: !20) +!42 = !DIGlobalVariable(name: "b", line: 7, isLocal: false, isDefinition: true, scope: null, file: !26, type: !12) !43 = !{i32 2, !"Dwarf Version", i32 2} !44 = !{i32 2, !"Debug Info Version", i32 3} !45 = !{!"clang version 3.7.0 "} diff --git a/llvm/test/DebugInfo/ARM/big-endian-bitfield.ll b/llvm/test/DebugInfo/ARM/big-endian-bitfield.ll index bbe7bf9..664e54c 100644 --- a/llvm/test/DebugInfo/ARM/big-endian-bitfield.ll +++ b/llvm/test/DebugInfo/ARM/big-endian-bitfield.ll @@ -22,7 +22,7 @@ target datalayout = "E-m:e-p:32:32-i64:64-v128:64:128-n32-S64" !1 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true) !5 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !1, line: 1, size: 32, elements: !6) !6 = !{!7, !9, !10, !11} ; CHECK: DW_TAG_member diff --git a/llvm/test/DebugInfo/ARM/bitfield.ll b/llvm/test/DebugInfo/ARM/bitfield.ll index 9e63c64..c755f3b 100644 --- a/llvm/test/DebugInfo/ARM/bitfield.ll +++ b/llvm/test/DebugInfo/ARM/bitfield.ll @@ -30,7 +30,7 @@ target triple = "thumbv7-apple-ios" !1 = !DIFile(filename: "test.i", directory: "/") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 5, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 5, type: !5, isLocal: false, isDefinition: true) !5 = !DICompositeType(tag: DW_TAG_structure_type, file: !1, line: 1, size: 48, align: 8, elements: !6) !6 = !{!7, !9} !7 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !5, file: !1, line: 2, baseType: !8, size: 8, align: 8) diff --git a/llvm/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll b/llvm/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll index 1a88748..c166e06 100644 --- a/llvm/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll +++ b/llvm/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll @@ -39,9 +39,9 @@ attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"= !5 = !DISubroutineType(types: !6) !6 = !{null} !7 = !{!8, !10} -!8 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "ch", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true)) +!8 = !DIGlobalVariable(name: "ch", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true) !9 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_unsigned_char) -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: !0, file: !1, line: 2, type: !11, isLocal: false, isDefinition: true)) +!10 = !DIGlobalVariable(name: "b", scope: !0, file: !1, line: 2, type: !11, isLocal: false, isDefinition: true) !11 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !12 = !{i32 2, !"Dwarf Version", i32 4} !13 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/ARM/tls.ll b/llvm/test/DebugInfo/ARM/tls.ll index 9d868d4..d7d78cf 100644 --- a/llvm/test/DebugInfo/ARM/tls.ll +++ b/llvm/test/DebugInfo/ARM/tls.ll @@ -26,7 +26,7 @@ !1 = !DIFile(filename: "tls.c", directory: "/tmp") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "x", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "tls.c", directory: "/tmp") !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !{i32 2, !"Dwarf Version", i32 4} diff --git a/llvm/test/DebugInfo/COFF/anonymous-struct.ll b/llvm/test/DebugInfo/COFF/anonymous-struct.ll index 767e679..2cce034 100644 --- a/llvm/test/DebugInfo/COFF/anonymous-struct.ll +++ b/llvm/test/DebugInfo/COFF/anonymous-struct.ll @@ -46,7 +46,7 @@ target triple = "i686-pc-windows-msvc18.0.0" !1 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", scope: !0, file: !5, line: 5, type: !6, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "s", scope: !0, file: !5, line: 5, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "", directory: "/usr/local/google/home/majnemer/llvm/src") !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 2, size: 64, align: 32, elements: !7) !7 = !{!8, !10} diff --git a/llvm/test/DebugInfo/COFF/big-type.ll b/llvm/test/DebugInfo/COFF/big-type.ll index f6f391e..dbd2e98 100644 --- a/llvm/test/DebugInfo/COFF/big-type.ll +++ b/llvm/test/DebugInfo/COFF/big-type.ll @@ -5766,7 +5766,7 @@ target triple = "x86_64-pc-windows-msvc19.0.23918" !5700 = !DIEnumerator(name: "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE5695", value: 5694) !5701 = !DIEnumerator(name: "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE5696", value: 5695) !5702 = !{!5703} -!5703 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", linkageName: "\01?x@@3W4BigThing@@A", scope: !0, file: !1, line: 5698, type: !3, isLocal: false, isDefinition: true)) +!5703 = distinct !DIGlobalVariable(name: "x", linkageName: "\01?x@@3W4BigThing@@A", scope: !0, file: !1, line: 5698, type: !3, isLocal: false, isDefinition: true) !5704 = !{i32 2, !"CodeView", i32 1} !5705 = !{i32 2, !"Debug Info Version", i32 3} !5706 = !{i32 1, !"PIC Level", i32 2} diff --git a/llvm/test/DebugInfo/COFF/bitfields.ll b/llvm/test/DebugInfo/COFF/bitfields.ll index f88f75e9..8fe0042 100644 --- a/llvm/test/DebugInfo/COFF/bitfields.ll +++ b/llvm/test/DebugInfo/COFF/bitfields.ll @@ -193,13 +193,13 @@ target triple = "x86_64-pc-windows-msvc18.0.0" !1 = !DIFile(filename: "-", directory: "/usr/local/google/home/majnemer/llvm/src") !2 = !{} !3 = !{!4, !10, !29} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s0", scope: !0, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "s0", scope: !0, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "", directory: "/usr/local/google/home/majnemer/llvm/src") !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S0", file: !5, line: 3, size: 24, elements: !7) !7 = !{!8} !8 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !6, file: !5, line: 6, baseType: !9, size: 8, offset: 16, flags: DIFlagBitField, extraData: i64 8) !9 = !DIBasicType(name: "short", size: 16, encoding: DW_ATE_signed) -!10 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s1", scope: !0, file: !5, line: 18, type: !11, isLocal: false, isDefinition: true)) +!10 = distinct !DIGlobalVariable(name: "s1", scope: !0, file: !5, line: 18, type: !11, isLocal: false, isDefinition: true) !11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S1", file: !5, line: 10, size: 128, elements: !12) !12 = !{!13, !18, !19, !21, !22, !23, !28} !13 = !DIDerivedType(tag: DW_TAG_member, name: "x1", scope: !11, file: !5, line: 11, baseType: !14, size: 16) @@ -218,7 +218,7 @@ target triple = "x86_64-pc-windows-msvc18.0.0" !26 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !24, file: !5, line: 16, baseType: !15, size: 8) !27 = !DIDerivedType(tag: DW_TAG_member, name: "s", scope: !24, file: !5, line: 16, baseType: !9, size: 16, offset: 8) !28 = !DIDerivedType(tag: DW_TAG_member, name: "u", scope: !11, file: !5, line: 17, baseType: !9, size: 3, offset: 112, flags: DIFlagBitField, extraData: i64 112) -!29 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s2", scope: !0, file: !5, line: 24, type: !30, isLocal: false, isDefinition: true)) +!29 = distinct !DIGlobalVariable(name: "s2", scope: !0, file: !5, line: 24, type: !30, isLocal: false, isDefinition: true) !30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S2", file: !5, line: 21, size: 32, elements: !31) !31 = !{!32} !32 = !DIDerivedType(tag: DW_TAG_member, name: "y", scope: !30, file: !5, line: 23, baseType: !20, size: 1, flags: DIFlagBitField, extraData: i64 0) diff --git a/llvm/test/DebugInfo/COFF/enum.ll b/llvm/test/DebugInfo/COFF/enum.ll index dea72ac..602435f 100644 --- a/llvm/test/DebugInfo/COFF/enum.ll +++ b/llvm/test/DebugInfo/COFF/enum.ll @@ -42,7 +42,7 @@ target triple = "i686-pc-windows-msvc18.0.0" !6 = !{!7} !7 = !DIEnumerator(name: "BLAH", value: 0) !8 = !{!9} -!9 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "e", linkageName: "\01?e@@3W4E@@A", scope: !0, file: !4, line: 2, type: !3, isLocal: false, isDefinition: true)) +!9 = distinct !DIGlobalVariable(name: "e", linkageName: "\01?e@@3W4E@@A", scope: !0, file: !4, line: 2, type: !3, isLocal: false, isDefinition: true) !10 = !{i32 2, !"CodeView", i32 1} !11 = !{i32 2, !"Debug Info Version", i32 3} !12 = !{!"clang version 3.9.0 (trunk 272790) (llvm/trunk 272813)"} diff --git a/llvm/test/DebugInfo/COFF/global-dllimport.ll b/llvm/test/DebugInfo/COFF/global-dllimport.ll index 48b534d..0c2308f 100644 --- a/llvm/test/DebugInfo/COFF/global-dllimport.ll +++ b/llvm/test/DebugInfo/COFF/global-dllimport.ll @@ -15,7 +15,7 @@ target triple = "i686-pc-windows-msvc" !1 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/", directory: "/usr/local/google/home/majnemer/llvm/src") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !0, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, declaration: !7)) +!4 = distinct !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !0, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, declaration: !7) !5 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/t.ii", directory: "/usr/local/google/home/majnemer/llvm/src") !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !DIDerivedType(tag: DW_TAG_member, name: "id", scope: !8, file: !5, line: 2, baseType: !6, flags: DIFlagStaticMember) diff --git a/llvm/test/DebugInfo/COFF/globals-discarded.ll b/llvm/test/DebugInfo/COFF/globals-discarded.ll index 6f3d125..f3b9943 100644 --- a/llvm/test/DebugInfo/COFF/globals-discarded.ll +++ b/llvm/test/DebugInfo/COFF/globals-discarded.ll @@ -25,9 +25,9 @@ target triple = "x86_64-pc-windows-msvc19.0.0" !1 = !DIFile(filename: "t.c", directory: "foo") !2 = !{} !3 = !{!4, !6} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_OptionsStorage", scope: !0, file: !1, line: 3, type: !5, isLocal: true, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "_OptionsStorage", scope: !0, file: !1, line: 3, type: !5, isLocal: true, isDefinition: true) !5 = !DIBasicType(name: "unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned) -!6 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 4, type: !5, isLocal: true, isDefinition: true)) +!6 = distinct !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 4, type: !5, isLocal: true, isDefinition: true) !35 = !{i32 2, !"CodeView", i32 1} !36 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/COFF/globals.ll b/llvm/test/DebugInfo/COFF/globals.ll index 1e20d12..9295230 100644 --- a/llvm/test/DebugInfo/COFF/globals.ll +++ b/llvm/test/DebugInfo/COFF/globals.ll @@ -129,18 +129,18 @@ $"\01?comdat@?$A@X@@2HB" = comdat any !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4, !6, !13, !15} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "first", linkageName: "\01?first@@3HA", scope: !0, file: !1, line: 1, type: !5, isLocal: true, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "first", linkageName: "\01?first@@3HA", scope: !0, file: !1, line: 1, type: !5, isLocal: true, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!6 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "comdat", linkageName: "\01?comdat@?$A@X@@2HB", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true, declaration: !8)) +!6 = distinct !DIGlobalVariable(name: "comdat", linkageName: "\01?comdat@?$A@X@@2HB", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true, declaration: !8) !7 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !5) !8 = !DIDerivedType(tag: DW_TAG_member, name: "comdat", scope: !9, file: !1, line: 2, baseType: !7, flags: DIFlagStaticMember, extraData: i32 3) !9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "A", file: !1, line: 2, size: 8, align: 8, elements: !10, templateParams: !11) !10 = !{!8} !11 = !{!12} !12 = !DITemplateTypeParameter(name: "T", type: null) -!13 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "middle", linkageName: "\01?middle@@3PEBHEB", scope: !0, file: !1, line: 3, type: !14, isLocal: false, isDefinition: true)) +!13 = distinct !DIGlobalVariable(name: "middle", linkageName: "\01?middle@@3PEBHEB", scope: !0, file: !1, line: 3, type: !14, isLocal: false, isDefinition: true) !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64) -!15 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "last", linkageName: "\01?last@@3HA", scope: !0, file: !1, line: 4, type: !5, isLocal: false, isDefinition: true)) +!15 = distinct !DIGlobalVariable(name: "last", linkageName: "\01?last@@3HA", scope: !0, file: !1, line: 4, type: !5, isLocal: false, isDefinition: true) !16 = !{i32 2, !"CodeView", i32 1} !17 = !{i32 2, !"Debug Info Version", i32 3} !18 = !{i32 1, !"PIC Level", i32 2} diff --git a/llvm/test/DebugInfo/COFF/inheritance.ll b/llvm/test/DebugInfo/COFF/inheritance.ll index 28f5c03..89b600a 100644 --- a/llvm/test/DebugInfo/COFF/inheritance.ll +++ b/llvm/test/DebugInfo/COFF/inheritance.ll @@ -93,7 +93,7 @@ attributes #0 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail- !llvm.module.flags = !{!31, !32, !33} !llvm.ident = !{!34} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "d", linkageName: "\01?d@@3UD@@A", scope: !1, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "d", linkageName: "\01?d@@3UD@@A", scope: !1, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 95626d54d6db7e13087089396a80ebaccc4ffe7c) (http://llvm.org/git/llvm.git 374b6e2fa0b230d13c0fb9ee7af69b2146bfad8a)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !3 = !{} diff --git a/llvm/test/DebugInfo/COFF/inlining-files.ll b/llvm/test/DebugInfo/COFF/inlining-files.ll index f9b194f..93c54f4 100644 --- a/llvm/test/DebugInfo/COFF/inlining-files.ll +++ b/llvm/test/DebugInfo/COFF/inlining-files.ll @@ -84,7 +84,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less- !6 = !{null} !7 = distinct !DISubprogram(name: "file_change", scope: !1, file: !1, line: 2, type: !5, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) !8 = !{!9} -!9 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !10, isLocal: false, isDefinition: true)) +!9 = !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !10, isLocal: false, isDefinition: true) !10 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !11) !11 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !12 = !{i32 2, !"CodeView", i32 1} diff --git a/llvm/test/DebugInfo/COFF/inlining-header.ll b/llvm/test/DebugInfo/COFF/inlining-header.ll index 9b4506d..a74e499 100644 --- a/llvm/test/DebugInfo/COFF/inlining-header.ll +++ b/llvm/test/DebugInfo/COFF/inlining-header.ll @@ -140,7 +140,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less- !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !6) !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !{i32 2, !"CodeView", i32 1} diff --git a/llvm/test/DebugInfo/COFF/inlining-levels.ll b/llvm/test/DebugInfo/COFF/inlining-levels.ll index ae344d8..ba533c3 100644 --- a/llvm/test/DebugInfo/COFF/inlining-levels.ll +++ b/llvm/test/DebugInfo/COFF/inlining-levels.ll @@ -71,7 +71,7 @@ attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less- !11 = distinct !DISubprogram(name: "g", linkageName: "\01?g@@YAXXZ", scope: !1, file: !1, line: 6, type: !9, isLocal: true, isDefinition: true, scopeLine: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) !12 = distinct !DISubprogram(name: "f", linkageName: "\01?f@@YAXXZ", scope: !1, file: !1, line: 2, type: !9, isLocal: true, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, variables: !2) !13 = !{!14} -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !0, file: !1, line: 1, type: !15, isLocal: false, isDefinition: true)) +!14 = !DIGlobalVariable(name: "x", linkageName: "\01?x@@3HC", scope: !0, file: !1, line: 1, type: !15, isLocal: false, isDefinition: true) !15 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !7) !16 = !{i32 2, !"CodeView", i32 1} !17 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/COFF/int8-char-type.ll b/llvm/test/DebugInfo/COFF/int8-char-type.ll index 217a527..bbfd006 100644 --- a/llvm/test/DebugInfo/COFF/int8-char-type.ll +++ b/llvm/test/DebugInfo/COFF/int8-char-type.ll @@ -32,12 +32,12 @@ target triple = "x86_64-pc-windows-msvc19.0.24210" !llvm.module.flags = !{!11, !12, !13} !llvm.ident = !{!14} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !1, file: !6, line: 4, type: !9, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "x", scope: !1, file: !6, line: 4, type: !9, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "-", directory: "C:\5Csrc\5Cllvm\5Cbuild") !3 = !{} !4 = !{!0, !5} -!5 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", scope: !1, file: !6, line: 5, type: !7, isLocal: false, isDefinition: true)) +!5 = distinct !DIGlobalVariable(name: "y", scope: !1, file: !6, line: 5, type: !7, isLocal: false, isDefinition: true) !6 = !DIFile(filename: "", directory: "C:\5Csrc\5Cllvm\5Cbuild") !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !6, line: 3, baseType: !8) diff --git a/llvm/test/DebugInfo/COFF/long-type-name.ll b/llvm/test/DebugInfo/COFF/long-type-name.ll index c0b4384..c79b4fb 100644 --- a/llvm/test/DebugInfo/COFF/long-type-name.ll +++ b/llvm/test/DebugInfo/COFF/long-type-name.ll @@ -28,7 +28,7 @@ target triple = "x86_64-pc-windows-msvc" !llvm.module.flags = !{!7, !8} !llvm.ident = !{!9} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UFoo@@A", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "f", linkageName: "\01?f@@3UFoo@@A", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 4.0.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "", directory: "C:\5Csrc\5Cllvm\5Cbuild") !3 = !{} diff --git a/llvm/test/DebugInfo/COFF/register-variables.ll b/llvm/test/DebugInfo/COFF/register-variables.ll index 5cfcaf3..37e5831 100644 --- a/llvm/test/DebugInfo/COFF/register-variables.ll +++ b/llvm/test/DebugInfo/COFF/register-variables.ll @@ -261,7 +261,7 @@ attributes #3 = { nounwind } !20 = !DILocalVariable(name: "a", arg: 1, scope: !16, file: !1, line: 4, type: !7) !21 = !DILocalVariable(name: "b", scope: !16, file: !1, line: 5, type: !7) !22 = !{!23} -!23 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !24, isLocal: false, isDefinition: true)) +!23 = !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !24, isLocal: false, isDefinition: true) !24 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !7) !25 = !{i32 2, !"CodeView", i32 1} !26 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/COFF/scopes.ll b/llvm/test/DebugInfo/COFF/scopes.ll index cdf0cba..2d144ca 100644 --- a/llvm/test/DebugInfo/COFF/scopes.ll +++ b/llvm/test/DebugInfo/COFF/scopes.ll @@ -113,7 +113,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "g", linkageName: "\01?g@bar@foo@@3UGlobalRecord@12@A", scope: !5, file: !1, line: 12, type: !7, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "g", linkageName: "\01?g@bar@foo@@3UGlobalRecord@12@A", scope: !5, file: !1, line: 12, type: !7, isLocal: false, isDefinition: true) !5 = !DINamespace(name: "bar", scope: !6, file: !1, line: 2) !6 = !DINamespace(name: "foo", scope: null, file: !1, line: 1) !7 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "GlobalRecord", scope: !5, file: !1, line: 9, size: 32, align: 32, elements: !8, identifier: ".?AUGlobalRecord@bar@foo@@") diff --git a/llvm/test/DebugInfo/COFF/types-array-advanced.ll b/llvm/test/DebugInfo/COFF/types-array-advanced.ll index 6882f76..db8b0d7 100644 --- a/llvm/test/DebugInfo/COFF/types-array-advanced.ll +++ b/llvm/test/DebugInfo/COFF/types-array-advanced.ll @@ -172,14 +172,14 @@ attributes #2 = { nounwind } !1 = !DIFile(filename: "t.cpp", directory: "/") !2 = !{} !3 = !{!4, !11, !20, !21} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "multi_dim_arr", linkageName: "\01?multi_dim_arr@@3PAY146DA", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "multi_dim_arr", linkageName: "\01?multi_dim_arr@@3PAY146DA", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DICompositeType(tag: DW_TAG_array_type, baseType: !6, size: 560, align: 8, elements: !7) !6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char) !7 = !{!8, !9, !10} !8 = !DISubrange(count: 2) !9 = !DISubrange(count: 5) !10 = !DISubrange(count: 7) -!11 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "p_incomplete_struct_arr", linkageName: "\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A", scope: !0, file: !1, line: 3, type: !12, isLocal: false, isDefinition: true)) +!11 = distinct !DIGlobalVariable(name: "p_incomplete_struct_arr", linkageName: "\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A", scope: !0, file: !1, line: 3, type: !12, isLocal: false, isDefinition: true) !12 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 32, align: 32) !13 = !DICompositeType(tag: DW_TAG_array_type, baseType: !14, elements: !18) !14 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "incomplete_struct", file: !1, line: 4, size: 32, align: 32, elements: !15, identifier: ".?AUincomplete_struct@@") @@ -188,8 +188,8 @@ attributes #2 = { nounwind } !17 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !18 = !{!19} !19 = !DISubrange(count: 3) -!20 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "incomplete_struct_arr", linkageName: "\01?incomplete_struct_arr@@3PAUincomplete_struct@@A", scope: !0, file: !1, line: 6, type: !13, isLocal: false, isDefinition: true)) -!21 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "typedef_arr", linkageName: "\01?typedef_arr@@3SDHD", scope: !0, file: !1, line: 14, type: !22, isLocal: false, isDefinition: true)) +!20 = distinct !DIGlobalVariable(name: "incomplete_struct_arr", linkageName: "\01?incomplete_struct_arr@@3PAUincomplete_struct@@A", scope: !0, file: !1, line: 6, type: !13, isLocal: false, isDefinition: true) +!21 = distinct !DIGlobalVariable(name: "typedef_arr", linkageName: "\01?typedef_arr@@3SDHD", scope: !0, file: !1, line: 14, type: !22, isLocal: false, isDefinition: true) !22 = !DICompositeType(tag: DW_TAG_array_type, baseType: !23, size: 128, align: 32, elements: !26) !23 = !DIDerivedType(tag: DW_TAG_typedef, name: "T_INT", file: !1, line: 13, baseType: !24) !24 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25) diff --git a/llvm/test/DebugInfo/COFF/types-nested-class.ll b/llvm/test/DebugInfo/COFF/types-nested-class.ll index ad1e1fa..0de7bb0 100644 --- a/llvm/test/DebugInfo/COFF/types-nested-class.ll +++ b/llvm/test/DebugInfo/COFF/types-nested-class.ll @@ -89,7 +89,7 @@ target triple = "i686-pc-windows-msvc19.0.23918" !1 = !DIFile(filename: "hello.cpp", directory: "D:\5Csrc\5Chello") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", linkageName: "\01?a@@3UA@@A", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "a", linkageName: "\01?a@@3UA@@A", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true) !5 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "A", file: !1, line: 1, size: 8, align: 8, elements: !6, identifier: ".?AUA@@") !6 = !{!7} !7 = !DICompositeType(tag: DW_TAG_structure_type, name: "Nested", scope: !5, file: !1, line: 2, size: 8, align: 8, flags: DIFlagFwdDecl, identifier: ".?AUNested@A@@") diff --git a/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll b/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll index bcd53a6..04a9d87 100644 --- a/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll +++ b/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll @@ -203,13 +203,13 @@ target triple = "x86_64-pc-windows-msvc19.0.23918" !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4, !10, !20, !23, !26, !31, !36, !41, !46, !50} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmd_a", linkageName: "\01?pmd_a@@3PEQA@@HEQ1@", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "pmd_a", linkageName: "\01?pmd_a@@3PEQA@@HEQ1@", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !6, size: 32, flags: DIFlagSingleInheritance, extraData: !7) !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "A", file: !1, line: 1, size: 32, align: 32, elements: !8, identifier: ".?AUA@@") !8 = !{!9} !9 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !7, file: !1, line: 1, baseType: !6, size: 32, align: 32) -!10 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmd_b", linkageName: "\01?pmd_b@@3PEQC@@HEQ1@", scope: !0, file: !1, line: 7, type: !11, isLocal: false, isDefinition: true)) +!10 = distinct !DIGlobalVariable(name: "pmd_b", linkageName: "\01?pmd_b@@3PEQC@@HEQ1@", scope: !0, file: !1, line: 7, type: !11, isLocal: false, isDefinition: true) !11 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !6, size: 32, flags: DIFlagMultipleInheritance, extraData: !12) !12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "C", file: !1, line: 3, size: 96, align: 32, elements: !13, identifier: ".?AUC@@") !13 = !{!14, !15, !19} @@ -219,37 +219,37 @@ target triple = "x86_64-pc-windows-msvc19.0.23918" !17 = !{!18} !18 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !16, file: !1, line: 2, baseType: !6, size: 32, align: 32) !19 = !DIDerivedType(tag: DW_TAG_member, name: "c", scope: !12, file: !1, line: 3, baseType: !6, size: 32, align: 32, offset: 64) -!20 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmd_c", linkageName: "\01?pmd_c@@3PEQD@@HEQ1@", scope: !0, file: !1, line: 8, type: !21, isLocal: false, isDefinition: true)) +!20 = distinct !DIGlobalVariable(name: "pmd_c", linkageName: "\01?pmd_c@@3PEQD@@HEQ1@", scope: !0, file: !1, line: 8, type: !21, isLocal: false, isDefinition: true) !21 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !6, size: 64, flags: DIFlagVirtualInheritance, extraData: !22) !22 = !DICompositeType(tag: DW_TAG_structure_type, name: "D", file: !1, line: 4, size: 256, align: 64, flags: DIFlagFwdDecl, identifier: ".?AUD@@") -!23 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmd_d", linkageName: "\01?pmd_d@@3PEQE@@HEQ1@", scope: !0, file: !1, line: 9, type: !24, isLocal: false, isDefinition: true)) +!23 = distinct !DIGlobalVariable(name: "pmd_d", linkageName: "\01?pmd_d@@3PEQE@@HEQ1@", scope: !0, file: !1, line: 9, type: !24, isLocal: false, isDefinition: true) !24 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !6, size: 96, extraData: !25) !25 = !DICompositeType(tag: DW_TAG_structure_type, name: "E", file: !1, line: 5, flags: DIFlagFwdDecl, identifier: ".?AUE@@") -!26 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmf_a", linkageName: "\01?pmf_a@@3P8A@@EAAXXZEQ1@", scope: !0, file: !1, line: 10, type: !27, isLocal: false, isDefinition: true)) +!26 = distinct !DIGlobalVariable(name: "pmf_a", linkageName: "\01?pmf_a@@3P8A@@EAAXXZEQ1@", scope: !0, file: !1, line: 10, type: !27, isLocal: false, isDefinition: true) !27 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !28, size: 64, flags: DIFlagSingleInheritance, extraData: !7) !28 = !DISubroutineType(types: !29) !29 = !{null, !30} !30 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!31 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmf_b", linkageName: "\01?pmf_b@@3P8C@@EAAXXZEQ1@", scope: !0, file: !1, line: 11, type: !32, isLocal: false, isDefinition: true)) +!31 = distinct !DIGlobalVariable(name: "pmf_b", linkageName: "\01?pmf_b@@3P8C@@EAAXXZEQ1@", scope: !0, file: !1, line: 11, type: !32, isLocal: false, isDefinition: true) !32 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !33, size: 128, flags: DIFlagMultipleInheritance, extraData: !12) !33 = !DISubroutineType(types: !34) !34 = !{null, !35} !35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!36 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmf_c", linkageName: "\01?pmf_c@@3P8D@@EAAXXZEQ1@", scope: !0, file: !1, line: 12, type: !37, isLocal: false, isDefinition: true)) +!36 = distinct !DIGlobalVariable(name: "pmf_c", linkageName: "\01?pmf_c@@3P8D@@EAAXXZEQ1@", scope: !0, file: !1, line: 12, type: !37, isLocal: false, isDefinition: true) !37 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !38, size: 128, flags: DIFlagVirtualInheritance, extraData: !22) !38 = !DISubroutineType(types: !39) !39 = !{null, !40} !40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !22, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!41 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "pmf_d", linkageName: "\01?pmf_d@@3P8E@@EAAXXZEQ1@", scope: !0, file: !1, line: 13, type: !42, isLocal: false, isDefinition: true)) +!41 = distinct !DIGlobalVariable(name: "pmf_d", linkageName: "\01?pmf_d@@3P8E@@EAAXXZEQ1@", scope: !0, file: !1, line: 13, type: !42, isLocal: false, isDefinition: true) !42 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !43, size: 192, extraData: !25) !43 = !DISubroutineType(types: !44) !44 = !{null, !45} !45 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !25, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer) -!46 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "ppmd", linkageName: "\01?ppmd@@3PEAPEQIncomplete@@HEA", scope: !0, file: !1, line: 15, type: !47, isLocal: false, isDefinition: true)) +!46 = distinct !DIGlobalVariable(name: "ppmd", linkageName: "\01?ppmd@@3PEAPEQIncomplete@@HEA", scope: !0, file: !1, line: 15, type: !47, isLocal: false, isDefinition: true) !47 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !48, size: 64, align: 64) !48 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !6, extraData: !49) !49 = !DICompositeType(tag: DW_TAG_structure_type, name: "Incomplete", file: !1, line: 14, flags: DIFlagFwdDecl, identifier: ".?AUIncomplete@@") -!50 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "ppmf", linkageName: "\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA", scope: !0, file: !1, line: 16, type: !51, isLocal: false, isDefinition: true)) +!50 = distinct !DIGlobalVariable(name: "ppmf", linkageName: "\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA", scope: !0, file: !1, line: 16, type: !51, isLocal: false, isDefinition: true) !51 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !52, size: 64, align: 64) !52 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !53, extraData: !49) !53 = !DISubroutineType(types: !54) diff --git a/llvm/test/DebugInfo/COFF/udts.ll b/llvm/test/DebugInfo/COFF/udts.ll index f684741..d907cfd 100644 --- a/llvm/test/DebugInfo/COFF/udts.ll +++ b/llvm/test/DebugInfo/COFF/udts.ll @@ -97,7 +97,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "u", linkageName: "\01?u@@3UU@@A", scope: !0, file: !1, line: 13, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "u", linkageName: "\01?u@@3UU@@A", scope: !0, file: !1, line: 13, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_typedef, name: "U", file: !1, line: 12, baseType: !6) !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1, line: 12, size: 32, align: 32, elements: !7, identifier: ".?AUU@@") !7 = !{!8} diff --git a/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll b/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll index e91c640..12958bb 100644 --- a/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll +++ b/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll @@ -237,7 +237,7 @@ attributes #6 = { nounwind } !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "p", linkageName: "\01?p@@3PEAUC@@EA", scope: !0, file: !1, line: 13, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "p", linkageName: "\01?p@@3PEAUC@@EA", scope: !0, file: !1, line: 13, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64, align: 64) !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "C", file: !1, line: 9, size: 64, align: 64, elements: !7, vtableHolder: !12, identifier: ".?AUC@@") !7 = !{!8, !30, !34} diff --git a/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll b/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll index 28131dd..08a1f75 100644 --- a/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll +++ b/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll @@ -100,13 +100,13 @@ attributes #3 = { nounwind readnone } !1 = !DIFile(filename: "", directory: "C:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4, !10} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "force_fwd_decl", linkageName: "\01?force_fwd_decl@@3UGetFwdDecl@@A", scope: !0, file: !5, line: 5, type: !6, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "force_fwd_decl", linkageName: "\01?force_fwd_decl@@3UGetFwdDecl@@A", scope: !0, file: !5, line: 5, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "t.cpp", directory: "C:\5Csrc\5Cllvm\5Cbuild") !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "GetFwdDecl", file: !5, line: 2, size: 8, align: 8, elements: !7, identifier: ".?AUGetFwdDecl@@") !7 = !{!8} !8 = !DIDerivedType(tag: DW_TAG_member, name: "format", scope: !6, file: !5, line: 3, baseType: !9, flags: DIFlagStaticMember) !9 = !DICompositeType(tag: DW_TAG_structure_type, name: "UnicodeString", file: !5, line: 1, flags: DIFlagFwdDecl, identifier: ".?AUUnicodeString@@") -!10 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "require_complete", linkageName: "\01?require_complete@@3UUseCompleteType@@A", scope: !0, file: !5, line: 15, type: !11, isLocal: false, isDefinition: true)) +!10 = distinct !DIGlobalVariable(name: "require_complete", linkageName: "\01?require_complete@@3UUseCompleteType@@A", scope: !0, file: !5, line: 15, type: !11, isLocal: false, isDefinition: true) !11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "UseCompleteType", file: !5, line: 10, size: 64, align: 64, elements: !12, identifier: ".?AUUseCompleteType@@") !12 = !{!13, !17, !21} !13 = !DIDerivedType(tag: DW_TAG_member, name: "currencySpcAfterSym", scope: !11, file: !5, line: 13, baseType: !14, size: 64, align: 64) diff --git a/llvm/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll b/llvm/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll index b96fe66..a80a0fa 100644 --- a/llvm/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll +++ b/llvm/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll @@ -18,7 +18,7 @@ entry: !8 = !{!9} !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !12 = !{!14} -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "bar", line: 2, isLocal: true, isDefinition: true, scope: !5, file: !6, type: !9)) +!14 = !DIGlobalVariable(name: "bar", line: 2, isLocal: true, isDefinition: true, scope: !5, file: !6, type: !9) !15 = !DILocation(line: 3, column: 3, scope: !16) !16 = distinct !DILexicalBlock(line: 1, column: 11, file: !17, scope: !5) !17 = !DIFile(filename: "fb.c", directory: "/private/tmp") diff --git a/llvm/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll b/llvm/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll index 2037f0c..f27d323 100644 --- a/llvm/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll +++ b/llvm/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll @@ -7,7 +7,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 139632)", isOptimized: true, emissionKind: FullDebug, file: !8, enums: !2, retainedTypes: !2, globals: !3) !2 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "g.c", directory: "/private/tmp") !7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !8 = !DIFile(filename: "g.c", directory: "/private/tmp") diff --git a/llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll b/llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll index ffd507c..e3cd486 100644 --- a/llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll +++ b/llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll @@ -45,7 +45,7 @@ entry: !13 = !{!14, !15} !14 = !DIDerivedType(tag: DW_TAG_member, name: "a", line: 10, size: 32, align: 32, file: !27, scope: !12, baseType: !5) !15 = !DIDerivedType(tag: DW_TAG_member, name: "b", line: 10, size: 32, align: 32, offset: 32, file: !27, scope: !12, baseType: !5) -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5)) +!16 = !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5) !17 = !DILocation(line: 15, scope: !18) !18 = distinct !DILexicalBlock(line: 14, column: 0, file: !1, scope: !6) !19 = !DILocation(line: 9, scope: !0, inlinedAt: !17) diff --git a/llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll b/llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll index 151df86..971a768 100644 --- a/llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll +++ b/llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll @@ -73,19 +73,19 @@ !1 = !DIFile(filename: "hash-collisions.c", directory: "/tmp") !2 = !{} !3 = !{!4, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "ForceTopDown", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "ForceTopDown", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZNSt3__116allocator_traitsINS_9allocatorINS_11__tree_nodeINS_12__value_typeIPN4llvm10BasicBlockEPNS4_10RegionNodeEEEPvEEEEE11__constructIS9_JNS_4pairIS6_S8_EEEEEvNS_17integral_constantIbLb1EEERSC_PT_DpOT0_", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true)) -!7 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true)) -!8 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZN4llvm16DenseMapIteratorIPNS_10MDLocationENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS1_EENS3_12DenseSetPairIS2_EELb0EE23AdvancePastEmptyBucketsEv", scope: !0, file: !1, line: 4, type: !5, isLocal: false, isDefinition: true)) -!9 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZNK4llvm12LivePhysRegs5printERNS_11raw_ostreamE", scope: !0, file: !1, line: 5, type: !5, isLocal: false, isDefinition: true)) -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZN4llvm15ScalarEvolution14getSignedRangeEPKNS_4SCEVE", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true)) -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "k1", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true)) -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "is", scope: !0, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true)) -!13 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "setStmt", scope: !0, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true)) -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZN4llvm5TwineC1Ei", scope: !0, file: !1, line: 10, type: !5, isLocal: false, isDefinition: true)) -!15 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZNK5clang12OverrideAttr5cloneERNS_10ASTContextE", scope: !0, file: !1, line: 11, type: !5, isLocal: false, isDefinition: true)) -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_ZN4llvm22MachineModuleInfoMachOD2Ev", scope: !0, file: !1, line: 12, type: !5, isLocal: false, isDefinition: true)) +!6 = !DIGlobalVariable(name: "_ZNSt3__116allocator_traitsINS_9allocatorINS_11__tree_nodeINS_12__value_typeIPN4llvm10BasicBlockEPNS4_10RegionNodeEEEPvEEEEE11__constructIS9_JNS_4pairIS6_S8_EEEEEvNS_17integral_constantIbLb1EEERSC_PT_DpOT0_", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true) +!7 = !DIGlobalVariable(name: "_ZN5clang23DataRecursiveASTVisitorIN12_GLOBAL__N_124UnusedBackingIvarCheckerEE26TraverseCUDAKernelCallExprEPNS_18CUDAKernelCallExprE", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true) +!8 = !DIGlobalVariable(name: "_ZN4llvm16DenseMapIteratorIPNS_10MDLocationENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS1_EENS3_12DenseSetPairIS2_EELb0EE23AdvancePastEmptyBucketsEv", scope: !0, file: !1, line: 4, type: !5, isLocal: false, isDefinition: true) +!9 = !DIGlobalVariable(name: "_ZNK4llvm12LivePhysRegs5printERNS_11raw_ostreamE", scope: !0, file: !1, line: 5, type: !5, isLocal: false, isDefinition: true) +!10 = !DIGlobalVariable(name: "_ZN4llvm15ScalarEvolution14getSignedRangeEPKNS_4SCEVE", scope: !0, file: !1, line: 6, type: !5, isLocal: false, isDefinition: true) +!11 = !DIGlobalVariable(name: "k1", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true) +!12 = !DIGlobalVariable(name: "is", scope: !0, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true) +!13 = !DIGlobalVariable(name: "setStmt", scope: !0, file: !1, line: 9, type: !5, isLocal: false, isDefinition: true) +!14 = !DIGlobalVariable(name: "_ZN4llvm5TwineC1Ei", scope: !0, file: !1, line: 10, type: !5, isLocal: false, isDefinition: true) +!15 = !DIGlobalVariable(name: "_ZNK5clang12OverrideAttr5cloneERNS_10ASTContextE", scope: !0, file: !1, line: 11, type: !5, isLocal: false, isDefinition: true) +!16 = !DIGlobalVariable(name: "_ZN4llvm22MachineModuleInfoMachOD2Ev", scope: !0, file: !1, line: 12, type: !5, isLocal: false, isDefinition: true) !17 = !{i32 2, !"Dwarf Version", i32 2} !18 = !{i32 2, !"Debug Info Version", i32 3} !19 = !{i32 1, !"PIC Level", i32 2} diff --git a/llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll b/llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll index 33715c0..29924b6 100644 --- a/llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll +++ b/llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll @@ -69,14 +69,14 @@ attributes #1 = { nounwind readnone } !7 = !{!8, !8} !8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !5, type: !11)) +!10 = !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !5, type: !11) !11 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !6) !12 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: FullDebug, file: !13, enums: !2, retainedTypes: !2, globals: !17, imports: !2) !13 = !DIFile(filename: "b.cpp", directory: "/tmp/dbginfo") !15 = distinct !DISubprogram(name: "func", linkageName: "_Z4funci", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !12, scopeLine: 1, file: !13, scope: !16, type: !6, variables: !2) !16 = !DIFile(filename: "b.cpp", directory: "/tmp/dbginfo") !17 = !{!18} -!18 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !11)) +!18 = !DIGlobalVariable(name: "y", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !11) !19 = !{i32 2, !"Dwarf Version", i32 4} !20 = !{i32 1, !"Debug Info Version", i32 3} !21 = !{!"clang version 3.5.0 "} diff --git a/llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll b/llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll index 3c513d7..7ca25405 100644 --- a/llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll +++ b/llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll @@ -58,12 +58,12 @@ attributes #1 = { nounwind readnone } !8 = !{!9, !9} !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !10 = !{!11} -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !12)) +!11 = !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !12) !12 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !7) !13 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: FullDebug, file: !14, enums: !2, retainedTypes: !2, globals: !15, imports: !2) !14 = !DIFile(filename: "b.cpp", directory: "/tmp/dbginfo") !15 = !{!16} -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !12)) +!16 = !DIGlobalVariable(name: "y", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !12) !17 = !{i32 2, !"Dwarf Version", i32 4} !18 = !{i32 1, !"Debug Info Version", i32 3} !19 = !{!"clang version 3.5.0 "} diff --git a/llvm/test/DebugInfo/Generic/dbg-at-specficiation.ll b/llvm/test/DebugInfo/Generic/dbg-at-specficiation.ll index 18d2d55..24b976b 100644 --- a/llvm/test/DebugInfo/Generic/dbg-at-specficiation.ll +++ b/llvm/test/DebugInfo/Generic/dbg-at-specficiation.ll @@ -11,7 +11,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 140253)", isOptimized: true, emissionKind: FullDebug, file: !11, enums: !2, retainedTypes: !2, globals: !3) !2 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "x.c", directory: "/private/tmp") !7 = !DICompositeType(tag: DW_TAG_array_type, size: 320, align: 32, baseType: !8, elements: !9) !8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) diff --git a/llvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll b/llvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll index 66f979d..2fdbef2 100644 --- a/llvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll +++ b/llvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll @@ -31,7 +31,7 @@ !1 = !DIFile(filename: "minimal.c", directory: "/tmp") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "y", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true) !5 = !DICompositeType(tag: DW_TAG_structure_type, name: "Y", file: !1, line: 3, size: 64, align: 64, elements: !6) !6 = !{!7} !7 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !5, file: !1, line: 4, baseType: !8, size: 64, align: 64) diff --git a/llvm/test/DebugInfo/Generic/dwarf-public-names.ll b/llvm/test/DebugInfo/Generic/dwarf-public-names.ll index 66f8c18..e40bcff 100644 --- a/llvm/test/DebugInfo/Generic/dwarf-public-names.ll +++ b/llvm/test/DebugInfo/Generic/dwarf-public-names.ll @@ -114,9 +114,9 @@ attributes #1 = { nounwind readnone } !22 = !DISubroutineType(types: !23) !23 = !{null} !24 = !{!25, !26, !27} -!25 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", line: 7, isLocal: false, isDefinition: true, scope: !8, file: !4, type: !11, declaration: !10)) -!26 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_variable", line: 17, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8)) -!27 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", line: 27, isLocal: false, isDefinition: true, scope: !21, file: !4, type: !11)) +!25 = !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", line: 7, isLocal: false, isDefinition: true, scope: !8, file: !4, type: !11, declaration: !10) +!26 = !DIGlobalVariable(name: "global_variable", line: 17, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8) +!27 = !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", line: 27, isLocal: false, isDefinition: true, scope: !21, file: !4, type: !11) !28 = !DILocalVariable(name: "this", line: 9, arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !3, file: !4, type: !29) !29 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !8) !30 = !DILocation(line: 9, scope: !3) diff --git a/llvm/test/DebugInfo/Generic/enum.ll b/llvm/test/DebugInfo/Generic/enum.ll index ef00b2f..b215424 100644 --- a/llvm/test/DebugInfo/Generic/enum.ll +++ b/llvm/test/DebugInfo/Generic/enum.ll @@ -70,7 +70,7 @@ attributes #1 = { nounwind readnone } !15 = !DISubroutineType(types: !16) !16 = !{null} !17 = !{!18} -!18 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !14, type: !3)) +!18 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !14, type: !3) !19 = !{i32 2, !"Dwarf Version", i32 3} !20 = !DILocalVariable(name: "b", line: 4, scope: !13, file: !14, type: !21) !21 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) diff --git a/llvm/test/DebugInfo/Generic/global.ll b/llvm/test/DebugInfo/Generic/global.ll index 8b32c02..d9df353 100644 --- a/llvm/test/DebugInfo/Generic/global.ll +++ b/llvm/test/DebugInfo/Generic/global.ll @@ -35,7 +35,7 @@ attributes #0 = { nounwind readnone uwtable "less-precise-fpmad"="false" "no-fra !7 = !{!8} !8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", linkageName: "_ZL1i", line: 1, isLocal: true, isDefinition: true, scope: null, file: !5, type: !8)) +!10 = !DIGlobalVariable(name: "i", linkageName: "_ZL1i", line: 1, isLocal: true, isDefinition: true, scope: null, file: !5, type: !8) !11 = !{i32 2, !"Dwarf Version", i32 3} !12 = !DILocation(line: 4, scope: !4) !13 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/Generic/gvn.ll b/llvm/test/DebugInfo/Generic/gvn.ll index 2120ed7..6de5b17 100644 --- a/llvm/test/DebugInfo/Generic/gvn.ll +++ b/llvm/test/DebugInfo/Generic/gvn.ll @@ -81,8 +81,8 @@ attributes #3 = { nounwind } !13 = !DISubroutineType(types: !14) !14 = !{null} !15 = !{!16, !17} -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true)) -!17 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true)) +!16 = !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true) +!17 = !DIGlobalVariable(name: "b", scope: !0, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true) !18 = !{i32 2, !"Dwarf Version", i32 2} !19 = !{i32 2, !"Debug Info Version", i32 3} !20 = !{!"clang version 3.8.0 (trunk 245562) (llvm/trunk 245569)"} diff --git a/llvm/test/DebugInfo/Generic/member-pointers.ll b/llvm/test/DebugInfo/Generic/member-pointers.ll index b9fc9b3..7dfa10f 100644 --- a/llvm/test/DebugInfo/Generic/member-pointers.ll +++ b/llvm/test/DebugInfo/Generic/member-pointers.ll @@ -26,12 +26,12 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 ", isOptimized: false, emissionKind: FullDebug, file: !15, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5, !10} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "simple.cpp", directory: "/home/blaikie/Development/scratch") !7 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !8, extraData: !9) !8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !DICompositeType(tag: DW_TAG_structure_type, name: "S", line: 1, size: 8, align: 8, file: !15, elements: !1) -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", line: 5, isLocal: false, isDefinition: true, scope: null, file: !6, type: !11)) +!10 = !DIGlobalVariable(name: "y", line: 5, isLocal: false, isDefinition: true, scope: null, file: !6, type: !11) !11 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !12, extraData: !9) !12 = !DISubroutineType(types: !13) !13 = !{null, !14, !8} diff --git a/llvm/test/DebugInfo/Generic/namespace.ll b/llvm/test/DebugInfo/Generic/namespace.ll index c9a259d..b83f7c2 100644 --- a/llvm/test/DebugInfo/Generic/namespace.ll +++ b/llvm/test/DebugInfo/Generic/namespace.ll @@ -200,8 +200,8 @@ ; } ; void B::func_fwd() {} -@_ZN1A1B1iE = global i32 0, align 4, !dbg !131 -@_ZN1A1B7var_fwdE = global i32 0, align 4, !dbg !132 +@_ZN1A1B1iE = global i32 0, align 4, !dbg !31 +@_ZN1A1B7var_fwdE = global i32 0, align 4, !dbg !32 @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_debug_info_namespace.cpp, i8* null }] ; Function Attrs: nounwind ssp uwtable @@ -316,7 +316,7 @@ attributes #1 = { nounwind readnone } !27 = distinct !DISubprogram(name: "", linkageName: "_GLOBAL__sub_I_debug_info_namespace.cpp", isLocal: true, isDefinition: true, flags: DIFlagArtificial, isOptimized: false, unit: !0, file: !1, scope: !28, type: !29, variables: !2) !28 = !DIFile(filename: "debug-info-namespace.cpp", directory: "/tmp") !29 = !DISubroutineType(types: !2) -!30 = !{!131, !132} +!30 = !{!31, !32} !31 = !DIGlobalVariable(name: "i", linkageName: "_ZN1A1B1iE", line: 20, isLocal: false, isDefinition: true, scope: !6, file: !18, type: !13) !32 = !DIGlobalVariable(name: "var_fwd", linkageName: "_ZN1A1B7var_fwdE", line: 44, isLocal: false, isDefinition: true, scope: !6, file: !18, type: !13) !33 = !{!34, !35, !36, !37, !40, !41, !42, !43, !44, !45, !47, !48, !49, !51, !54, !55, !56} @@ -362,5 +362,3 @@ attributes #1 = { nounwind readnone } !73 = !DILocation(line: 47, column: 21, scope: !26) !74 = !DILocation(line: 0, scope: !75) !75 = !DILexicalBlockFile(discriminator: 0, file: !5, scope: !27) -!131 = !DIGlobalVariableExpression(var: !31) -!132 = !DIGlobalVariableExpression(var: !32) diff --git a/llvm/test/DebugInfo/Generic/recursive_inlining.ll b/llvm/test/DebugInfo/Generic/recursive_inlining.ll index f01b2c3..f7864e5 100644 --- a/llvm/test/DebugInfo/Generic/recursive_inlining.ll +++ b/llvm/test/DebugInfo/Generic/recursive_inlining.ll @@ -225,7 +225,7 @@ attributes #3 = { nounwind } !24 = !DILocalVariable(name: "this", arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !22, type: !25) !25 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !4) !26 = !{!27} -!27 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 13, isLocal: false, isDefinition: true, scope: null, file: !15, type: !25)) +!27 = !DIGlobalVariable(name: "x", line: 13, isLocal: false, isDefinition: true, scope: null, file: !15, type: !25) !28 = !{i32 2, !"Dwarf Version", i32 4} !29 = !{i32 2, !"Debug Info Version", i32 3} !30 = !{!"clang version 3.6.0 "} diff --git a/llvm/test/DebugInfo/Generic/template-recursive-void.ll b/llvm/test/DebugInfo/Generic/template-recursive-void.ll index cb22afd..b173b46 100644 --- a/llvm/test/DebugInfo/Generic/template-recursive-void.ll +++ b/llvm/test/DebugInfo/Generic/template-recursive-void.ll @@ -29,7 +29,7 @@ !1 = !DIFile(filename: "debug-info-template-recursive.cpp", directory: "/usr/local/google/home/echristo/tmp") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "filters", line: 10, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "filters", line: 10, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "debug-info-template-recursive.cpp", directory: "/usr/local/google/home/echristo/tmp") !6 = !DICompositeType(tag: DW_TAG_class_type, name: "bar", line: 9, size: 8, align: 8, file: !1, elements: !7) !7 = !{!8, !31} diff --git a/llvm/test/DebugInfo/Generic/tu-member-pointer.ll b/llvm/test/DebugInfo/Generic/tu-member-pointer.ll index 9d057da..0825cf1 100644 --- a/llvm/test/DebugInfo/Generic/tu-member-pointer.ll +++ b/llvm/test/DebugInfo/Generic/tu-member-pointer.ll @@ -22,7 +22,7 @@ !3 = !{!4} !4 = !DICompositeType(tag: DW_TAG_structure_type, name: "Foo", line: 1, flags: DIFlagFwdDecl, file: !1, identifier: "_ZTS3Foo") !5 = !{!6} -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !7, type: !8)) +!6 = !DIGlobalVariable(name: "x", line: 4, isLocal: false, isDefinition: true, scope: null, file: !7, type: !8) !7 = !DIFile(filename: "foo.cpp", directory: ".") !8 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !9, extraData: !4) !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) diff --git a/llvm/test/DebugInfo/Generic/typedef.ll b/llvm/test/DebugInfo/Generic/typedef.ll index bf08bf6..45c8a16a 100644 --- a/llvm/test/DebugInfo/Generic/typedef.ll +++ b/llvm/test/DebugInfo/Generic/typedef.ll @@ -22,7 +22,7 @@ !1 = !DIFile(filename: "typedef.cpp", directory: "/tmp/dbginfo") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "y", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "typedef.cpp", directory: "/tmp/dbginfo") !6 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !7) !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "x", line: 1, file: !1, baseType: null) diff --git a/llvm/test/DebugInfo/MIR/X86/live-debug-values.mir b/llvm/test/DebugInfo/MIR/X86/live-debug-values.mir index d9daa46..90da75c 100644 --- a/llvm/test/DebugInfo/MIR/X86/live-debug-values.mir +++ b/llvm/test/DebugInfo/MIR/X86/live-debug-values.mir @@ -33,7 +33,7 @@ # DBG_VALUE for variable "n" is extended into BB#5 from its predecessors BB#3 # and BB#4. # CHECK: bb.5.if.end.7: -# CHECK: DBG_VALUE debug-use %ebx, debug-use _, !19, !20, debug-location !33 +# CHECK: DBG_VALUE debug-use %ebx, debug-use _, !18, !19, debug-location !32 --- | @@ -121,7 +121,7 @@ !13 = !DILocalVariable(name: "argv", arg: 2, scope: !4, file: !1, line: 6, type: !8) !14 = !DILocalVariable(name: "n", scope: !4, file: !1, line: 7, type: !7) !15 = !{!16} - !16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true)) + !16 = !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true) !17 = !{i32 2, !"Dwarf Version", i32 4} !18 = !{i32 2, !"Debug Info Version", i32 3} !19 = !{!"clang version 3.8.0 (trunk 253049)"} diff --git a/llvm/test/DebugInfo/MIR/X86/mlicm-hoist.mir b/llvm/test/DebugInfo/MIR/X86/mlicm-hoist.mir index 406d20a..4d9a164 100644 --- a/llvm/test/DebugInfo/MIR/X86/mlicm-hoist.mir +++ b/llvm/test/DebugInfo/MIR/X86/mlicm-hoist.mir @@ -55,7 +55,7 @@ !llvm.module.flags = !{!6, !7} !llvm.ident = !{!8} - !0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true)) + !0 = distinct !DIGlobalVariable(name: "x", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "t.c", directory: "/home/test") !3 = !{} diff --git a/llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll b/llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll index 245ec67b..83ce5b2 100644 --- a/llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll +++ b/llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll @@ -45,7 +45,7 @@ entry: !13 = !{!14, !15} !14 = !DIDerivedType(tag: DW_TAG_member, name: "a", line: 10, size: 32, align: 32, file: !27, scope: !12, baseType: !5) !15 = !DIDerivedType(tag: DW_TAG_member, name: "b", line: 10, size: 32, align: 32, offset: 32, file: !27, scope: !12, baseType: !5) -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5)) +!16 = !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5) !17 = !DILocation(line: 15, scope: !18) !18 = distinct !DILexicalBlock(line: 14, column: 0, file: !1, scope: !6) !19 = !DILocation(line: 9, scope: !0, inlinedAt: !17) diff --git a/llvm/test/DebugInfo/PowerPC/tls-fission.ll b/llvm/test/DebugInfo/PowerPC/tls-fission.ll index f2c22d7..492349c 100644 --- a/llvm/test/DebugInfo/PowerPC/tls-fission.ll +++ b/llvm/test/DebugInfo/PowerPC/tls-fission.ll @@ -26,7 +26,7 @@ !1 = !DIFile(filename: "tls.cpp", directory: "/tmp") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "tls.cpp", directory: "/tmp") !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !{i32 2, !"Dwarf Version", i32 3} diff --git a/llvm/test/DebugInfo/PowerPC/tls.ll b/llvm/test/DebugInfo/PowerPC/tls.ll index 8ce0d4c..08b44e9 100644 --- a/llvm/test/DebugInfo/PowerPC/tls.ll +++ b/llvm/test/DebugInfo/PowerPC/tls.ll @@ -21,7 +21,7 @@ !1 = !DIFile(filename: "tls.cpp", directory: "/tmp") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "tls.cpp", directory: "/tmp") !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !{i32 2, !"Dwarf Version", i32 3} diff --git a/llvm/test/DebugInfo/WebAssembly/dbg-declare.ll b/llvm/test/DebugInfo/WebAssembly/dbg-declare.ll index 7fc0817..ac4f50a 100644 --- a/llvm/test/DebugInfo/WebAssembly/dbg-declare.ll +++ b/llvm/test/DebugInfo/WebAssembly/dbg-declare.ll @@ -45,7 +45,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) !1 = !DIFile(filename: "crash.c", directory: "wasm/tests") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "key", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "key", scope: !0, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true) !5 = !DICompositeType(tag: DW_TAG_array_type, baseType: !6, size: 120, align: 8, elements: !9) !6 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !7, line: 185, baseType: !8) !7 = !DIFile(filename: "wasm/emscripten/system/include/libc/bits/alltypes.h", directory: "wasm/tests") diff --git a/llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll b/llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll index afa846e..bdab7e3 100644 --- a/llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll +++ b/llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll @@ -27,7 +27,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !8 = !{!9} !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !12 = !{!14} -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "GLB", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9)) +!14 = !DIGlobalVariable(name: "GLB", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9) !15 = !DILocalVariable(name: "LOC", line: 4, scope: !16, file: !6, type: !9) !16 = distinct !DILexicalBlock(line: 3, column: 9, file: !20, scope: !5) !17 = !DILocation(line: 4, column: 9, scope: !16) diff --git a/llvm/test/DebugInfo/X86/DIModuleContext.ll b/llvm/test/DebugInfo/X86/DIModuleContext.ll index d757c20..031676a 100644 --- a/llvm/test/DebugInfo/X86/DIModuleContext.ll +++ b/llvm/test/DebugInfo/X86/DIModuleContext.ll @@ -20,7 +20,7 @@ target triple = "x86_64-apple-macosx" !1 = !DIFile(filename: "test.c", directory: "/") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64, align: 64) !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "s", scope: !9, file: !1, line: 1, flags: DIFlagFwdDecl) !7 = !{i32 2, !"Dwarf Version", i32 2} diff --git a/llvm/test/DebugInfo/X86/DW_AT_calling-convention.ll b/llvm/test/DebugInfo/X86/DW_AT_calling-convention.ll index 536216c..6650e7c 100644 --- a/llvm/test/DebugInfo/X86/DW_AT_calling-convention.ll +++ b/llvm/test/DebugInfo/X86/DW_AT_calling-convention.ll @@ -67,7 +67,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "fptr", linkageName: "\01?fptr@@3P6IHHH@ZA", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "fptr", linkageName: "\01?fptr@@3P6IHHH@ZA", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true) !5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 32, align: 32) !6 = !DISubroutineType(cc: DW_CC_BORLAND_msfastcall, types: !7) !7 = !{!8, !8, !8} diff --git a/llvm/test/DebugInfo/X86/DW_AT_specification.ll b/llvm/test/DebugInfo/X86/DW_AT_specification.ll index 3241319..188b862 100644 --- a/llvm/test/DebugInfo/X86/DW_AT_specification.ll +++ b/llvm/test/DebugInfo/X86/DW_AT_specification.ll @@ -32,7 +32,7 @@ entry: !12 = !DICompositeType(tag: DW_TAG_class_type, name: "foo", line: 1, size: 8, align: 8, file: !27, elements: !13) !13 = !{!11} !18 = !{!20} -!20 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 5, isLocal: true, isDefinition: true, scope: !5, file: !6, type: !21)) +!20 = !DIGlobalVariable(name: "x", line: 5, isLocal: true, isDefinition: true, scope: !5, file: !6, type: !21) !21 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !22) !22 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !25 = !DILocation(line: 6, column: 1, scope: !26) diff --git a/llvm/test/DebugInfo/X86/DW_TAG_friend.ll b/llvm/test/DebugInfo/X86/DW_TAG_friend.ll index 7b31a58..016bc26 100644 --- a/llvm/test/DebugInfo/X86/DW_TAG_friend.ll +++ b/llvm/test/DebugInfo/X86/DW_TAG_friend.ll @@ -21,7 +21,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.1 (trunk 153413) (llvm/trunk 153428)", isOptimized: false, emissionKind: FullDebug, file: !28, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5, !17} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 10, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 10, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "foo.cpp", directory: "/Users/echristo/tmp") !7 = !DICompositeType(tag: DW_TAG_class_type, name: "A", line: 1, size: 32, align: 32, file: !28, elements: !8) !8 = !{!9, !11} @@ -31,7 +31,7 @@ !12 = !DISubroutineType(types: !13) !13 = !{null, !14} !14 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, flags: DIFlagArtificial, baseType: !7) -!17 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 11, isLocal: false, isDefinition: true, scope: null, file: !6, type: !18)) +!17 = !DIGlobalVariable(name: "b", line: 11, isLocal: false, isDefinition: true, scope: null, file: !6, type: !18) !18 = !DICompositeType(tag: DW_TAG_class_type, name: "B", line: 5, size: 32, align: 32, file: !28, elements: !19) !19 = !{!20, !21, !27} !20 = !DIDerivedType(tag: DW_TAG_member, name: "b", line: 7, size: 32, align: 32, flags: DIFlagPrivate, file: !28, scope: !18, baseType: !10) diff --git a/llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll b/llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll index bac5a87..c95a7e0 100644 --- a/llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll +++ b/llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll @@ -45,7 +45,7 @@ entry: !13 = !{!14, !15} !14 = !DIDerivedType(tag: DW_TAG_member, name: "a", line: 10, size: 32, align: 32, file: !27, scope: !12, baseType: !5) !15 = !DIDerivedType(tag: DW_TAG_member, name: "b", line: 10, size: 32, align: 32, offset: 32, file: !27, scope: !12, baseType: !5) -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5)) +!16 = !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !5) !17 = !DILocation(line: 15, scope: !18) !18 = distinct !DILexicalBlock(line: 14, column: 0, file: !1, scope: !6) !19 = !DILocation(line: 9, scope: !0, inlinedAt: !17) diff --git a/llvm/test/DebugInfo/X86/PR26148.ll b/llvm/test/DebugInfo/X86/PR26148.ll index 98f2592..b544ab5 100644 --- a/llvm/test/DebugInfo/X86/PR26148.ll +++ b/llvm/test/DebugInfo/X86/PR26148.ll @@ -86,7 +86,7 @@ entry: !18 = !DISubroutineType(types: !19) !19 = !{!15} !20 = !{!21} -!21 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 4, type: !11, isLocal: false, isDefinition: true)) +!21 = !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 4, type: !11, isLocal: false, isDefinition: true) !22 = !{i32 2, !"Dwarf Version", i32 2} !23 = !{i32 2, !"Debug Info Version", i32 3} !24 = !{i32 1, !"PIC Level", i32 2} diff --git a/llvm/test/DebugInfo/X86/align_c11.ll b/llvm/test/DebugInfo/X86/align_c11.ll index bfd04d1..0e9119d 100644 --- a/llvm/test/DebugInfo/X86/align_c11.ll +++ b/llvm/test/DebugInfo/X86/align_c11.ll @@ -56,7 +56,7 @@ attributes #1 = { nounwind readnone } !llvm.module.flags = !{!14, !15} !llvm.ident = !{!16} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "d", scope: !1, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true, align: 16384)) +!0 = distinct !DIGlobalVariable(name: "d", scope: !1, file: !5, line: 7, type: !6, isLocal: false, isDefinition: true, align: 16384) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "test.c", directory: "/tmp") !3 = !{} diff --git a/llvm/test/DebugInfo/X86/align_cpp11.ll b/llvm/test/DebugInfo/X86/align_cpp11.ll index 15dd6a6..796b6c7 100644 --- a/llvm/test/DebugInfo/X86/align_cpp11.ll +++ b/llvm/test/DebugInfo/X86/align_cpp11.ll @@ -118,7 +118,7 @@ attributes #1 = { nounwind readnone } !llvm.module.flags = !{!19, !20} !llvm.ident = !{!21} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c0", scope: !1, file: !5, line: 19, type: !17, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "c0", scope: !1, file: !5, line: 19, type: !17, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !10) !2 = !DIFile(filename: "test.cpp", directory: "/tmp") !3 = !{!4} @@ -129,7 +129,7 @@ attributes #1 = { nounwind readnone } !8 = !DIEnumerator(name: "B", value: 1) !9 = !DIEnumerator(name: "C", value: 2) !10 = !{!0, !11} -!11 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", scope: !1, file: !5, line: 21, type: !12, isLocal: false, isDefinition: true, align: 16384)) +!11 = distinct !DIGlobalVariable(name: "s", scope: !1, file: !5, line: 21, type: !12, isLocal: false, isDefinition: true, align: 16384) !12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !5, line: 1, size: 2048, elements: !13, identifier: "_ZTS1S") !13 = !{!14, !16} !14 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !12, file: !5, line: 2, baseType: !15, size: 8) diff --git a/llvm/test/DebugInfo/X86/align_objc.ll b/llvm/test/DebugInfo/X86/align_objc.ll index 5c89d60..c82d1a5 100644 --- a/llvm/test/DebugInfo/X86/align_objc.ll +++ b/llvm/test/DebugInfo/X86/align_objc.ll @@ -68,7 +68,7 @@ attributes #1 = { nounwind readnone } !llvm.module.flags = !{!11, !12} !llvm.ident = !{!13} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s0", scope: !1, file: !5, line: 10, type: !6, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "s0", scope: !1, file: !5, line: 10, type: !6, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git 9ce5220b821054019059c2ac4a9b132c7723832d) (http://llvm.org/git/llvm.git 9a6298be89ce0359b151c0a37af2776a12c69e85)", isOptimized: false, runtimeVersion: 1, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "test.m", directory: "/tmp") !3 = !{} diff --git a/llvm/test/DebugInfo/X86/arange-and-stub.ll b/llvm/test/DebugInfo/X86/arange-and-stub.ll index 0601e81..a56634c 100644 --- a/llvm/test/DebugInfo/X86/arange-and-stub.ll +++ b/llvm/test/DebugInfo/X86/arange-and-stub.ll @@ -42,7 +42,7 @@ lpad: ; preds = %0 !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = distinct !DISubprogram(name: "bar_d", linkageName: "bar", scope: !5, file: !5, line: 3, type: !6, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2) !10 = !{!11} -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "zed", scope: !0, file: !5, line: 6, type: !12, isLocal: false, isDefinition: true)) +!11 = !DIGlobalVariable(name: "zed", scope: !0, file: !5, line: 6, type: !12, isLocal: false, isDefinition: true) !12 = !DICompositeType(tag: DW_TAG_array_type, baseType: !13, size: 64, align: 64, elements: !15) !13 = !DIDerivedType(tag: DW_TAG_typedef, name: "vifunc", file: !5, line: 5, baseType: !14) !14 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64, align: 64) diff --git a/llvm/test/DebugInfo/X86/arange.ll b/llvm/test/DebugInfo/X86/arange.ll index a01a918..54156d6 100644 --- a/llvm/test/DebugInfo/X86/arange.ll +++ b/llvm/test/DebugInfo/X86/arange.ll @@ -39,7 +39,7 @@ !7 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !8) !8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 6, isLocal: false, isDefinition: true, scope: null, file: !11, type: !4)) +!10 = !DIGlobalVariable(name: "f", line: 6, isLocal: false, isDefinition: true, scope: null, file: !11, type: !4) !11 = !DIFile(filename: "simple.cpp", directory: "/tmp/dbginfo") !12 = !{i32 2, !"Dwarf Version", i32 4} !13 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/atomic-c11-dwarf-4.ll b/llvm/test/DebugInfo/X86/atomic-c11-dwarf-4.ll index ba38ca8..f55e1b2 100644 --- a/llvm/test/DebugInfo/X86/atomic-c11-dwarf-4.ll +++ b/llvm/test/DebugInfo/X86/atomic-c11-dwarf-4.ll @@ -22,7 +22,7 @@ target triple = "x86_64-unknown-linux-gnu" !llvm.module.flags = !{!9, !10} !llvm.ident = !{!11} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "i", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "atomic.c", directory: "/tmp") !3 = !{} diff --git a/llvm/test/DebugInfo/X86/atomic-c11-dwarf-5.ll b/llvm/test/DebugInfo/X86/atomic-c11-dwarf-5.ll index 9a9fa92..d450a3b 100644 --- a/llvm/test/DebugInfo/X86/atomic-c11-dwarf-5.ll +++ b/llvm/test/DebugInfo/X86/atomic-c11-dwarf-5.ll @@ -23,7 +23,7 @@ target triple = "x86_64-unknown-linux-gnu" !llvm.module.flags = !{!9, !10} !llvm.ident = !{!11} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "i", scope: !1, file: !5, line: 1, type: !6, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 (http://llvm.org/git/clang.git cd238117e3a8a57271a82d0bb03d6df6ad8f073e) (http://llvm.org/git/llvm.git 9fd063832c1541aad3907cd60ac344d36997905f)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "atomic.c", directory: "/tmp") !3 = !{} diff --git a/llvm/test/DebugInfo/X86/bitfields-dwarf4.ll b/llvm/test/DebugInfo/X86/bitfields-dwarf4.ll index d072fda..5d48fc4 100644 --- a/llvm/test/DebugInfo/X86/bitfields-dwarf4.ll +++ b/llvm/test/DebugInfo/X86/bitfields-dwarf4.ll @@ -31,7 +31,7 @@ target triple = "x86_64-apple-macosx" !1 = !DIFile(filename: "bitfield.c", directory: "/Volumes/Data/llvm") !2 = !{} !3 = !{!4} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "s", scope: !0, file: !1, line: 8, type: !5, isLocal: false, isDefinition: true) !5 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PackedBits", file: !1, line: 3, size: 40, elements: !6) !6 = !{!7, !9, !13} diff --git a/llvm/test/DebugInfo/X86/bitfields.ll b/llvm/test/DebugInfo/X86/bitfields.ll index 7f6b709..c133b45 100644 --- a/llvm/test/DebugInfo/X86/bitfields.ll +++ b/llvm/test/DebugInfo/X86/bitfields.ll @@ -58,7 +58,7 @@ target triple = "x86_64-apple-macosx" !1 = !DIFile(filename: "bitfields.c", directory: "/") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: !0, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "b", scope: !0, file: !5, line: 8, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "bitfields.c", directory: "/") !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "bitfield", file: !5, line: 1, size: 96, elements: !7) !7 = !{!8, !10, !11, !12} diff --git a/llvm/test/DebugInfo/X86/c-type-units.ll b/llvm/test/DebugInfo/X86/c-type-units.ll index c60f325..282937b 100644 --- a/llvm/test/DebugInfo/X86/c-type-units.ll +++ b/llvm/test/DebugInfo/X86/c-type-units.ll @@ -21,7 +21,7 @@ !1 = !DIFile(filename: "simple.c", directory: "/tmp/dbginfo") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "f", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "simple.c", directory: "/tmp/dbginfo") !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", line: 1, align: 8, file: !1, elements: !2) !7 = !{i32 2, !"Dwarf Version", i32 4} diff --git a/llvm/test/DebugInfo/X86/concrete_out_of_line.ll b/llvm/test/DebugInfo/X86/concrete_out_of_line.ll index db2cc9f..de06a88 100644 --- a/llvm/test/DebugInfo/X86/concrete_out_of_line.ll +++ b/llvm/test/DebugInfo/X86/concrete_out_of_line.ll @@ -118,7 +118,7 @@ declare void @_Z8moz_freePv(i8*) !45 = !DILocalVariable(name: "this", line: 4, arg: 1, flags: DIFlagArtificial, scope: !31, file: !6, type: !34) !46 = !DILocalVariable(name: "aValue", line: 4, arg: 2, scope: !31, file: !6, type: !9) !47 = !{!49} -!49 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "mRefCnt", line: 9, isLocal: false, isDefinition: true, scope: null, file: !6, type: !37)) +!49 = !DIGlobalVariable(name: "mRefCnt", line: 9, isLocal: false, isDefinition: true, scope: null, file: !6, type: !37) !50 = !DILocation(line: 5, column: 5, scope: !51, inlinedAt: !52) !51 = distinct !DILexicalBlock(line: 4, column: 29, file: !6, scope: !31) !52 = !DILocation(line: 15, scope: !53) diff --git a/llvm/test/DebugInfo/X86/cu-ranges-odr.ll b/llvm/test/DebugInfo/X86/cu-ranges-odr.ll index 404a9d7..13652a5 100644 --- a/llvm/test/DebugInfo/X86/cu-ranges-odr.ll +++ b/llvm/test/DebugInfo/X86/cu-ranges-odr.ll @@ -81,7 +81,7 @@ attributes #1 = { nounwind readnone } !19 = distinct !DISubprogram(name: "", linkageName: "_GLOBAL__I_a", line: 3, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagArtificial, isOptimized: false, unit: !0, scopeLine: 3, file: !1, scope: !15, type: !20, variables: !2) !20 = !DISubroutineType(types: !2) !21 = !{!22} -!22 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 8, isLocal: false, isDefinition: true, scope: null, file: !15, type: !4)) +!22 = !DIGlobalVariable(name: "a", line: 8, isLocal: false, isDefinition: true, scope: null, file: !15, type: !4) !23 = !{i32 2, !"Dwarf Version", i32 4} !24 = !{i32 1, !"Debug Info Version", i32 3} !25 = !{!"clang version 3.5 (trunk 199923) (llvm/trunk 199940)"} diff --git a/llvm/test/DebugInfo/X86/data_member_location.ll b/llvm/test/DebugInfo/X86/data_member_location.ll index b54d1aa..fe021e4 100644 --- a/llvm/test/DebugInfo/X86/data_member_location.ll +++ b/llvm/test/DebugInfo/X86/data_member_location.ll @@ -45,7 +45,7 @@ !8 = !DIDerivedType(tag: DW_TAG_member, name: "i", line: 3, size: 32, align: 32, offset: 32, file: !1, scope: !4, baseType: !9) !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !10 = !{!11} -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 6, isLocal: false, isDefinition: true, scope: null, file: !12, type: !4)) +!11 = !DIGlobalVariable(name: "f", line: 6, isLocal: false, isDefinition: true, scope: null, file: !12, type: !4) !12 = !DIFile(filename: "data_member_location.cpp", directory: "/tmp/dbginfo") !13 = !{i32 2, !"Dwarf Version", i32 4} !14 = !{!"clang version 3.4 "} diff --git a/llvm/test/DebugInfo/X86/dbg-subrange.ll b/llvm/test/DebugInfo/X86/dbg-subrange.ll index 50a9411..aa733ac 100644 --- a/llvm/test/DebugInfo/X86/dbg-subrange.ll +++ b/llvm/test/DebugInfo/X86/dbg-subrange.ll @@ -22,7 +22,7 @@ entry: !7 = !DISubroutineType(types: !8) !8 = !{null} !11 = !{!13} -!13 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !14)) +!13 = !DIGlobalVariable(name: "s", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !14) !14 = !DICompositeType(tag: DW_TAG_array_type, size: 34359738368, align: 8, baseType: !15, elements: !16) !15 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char) !16 = !{!17} diff --git a/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll b/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll index 128150d..7db2582 100644 --- a/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll +++ b/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll @@ -93,7 +93,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !16 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float) !17 = !DIDerivedType(tag: DW_TAG_member, name: "nums", line: 3, size: 32, align: 32, offset: 64, file: !42, scope: !1, baseType: !5) !18 = !DILocalVariable(name: "nums", line: 7, arg: 2, scope: !0, file: !1, type: !5) -!19 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "p", line: 14, isLocal: false, isDefinition: true, scope: !2, file: !1, type: !11)) +!19 = !DIGlobalVariable(name: "p", line: 14, isLocal: false, isDefinition: true, scope: !2, file: !1, type: !11) !20 = !DILocation(line: 7, column: 13, scope: !0) !21 = !DILocation(line: 7, column: 21, scope: !0) !22 = !DILocation(line: 9, column: 3, scope: !23) diff --git a/llvm/test/DebugInfo/X86/dbg-value-regmask-clobber.ll b/llvm/test/DebugInfo/X86/dbg-value-regmask-clobber.ll index 65ca270..048c98d 100644 --- a/llvm/test/DebugInfo/X86/dbg-value-regmask-clobber.ll +++ b/llvm/test/DebugInfo/X86/dbg-value-regmask-clobber.ll @@ -89,7 +89,7 @@ attributes #3 = { nounwind } !12 = !DILocalVariable(name: "argv", arg: 2, scope: !4, file: !1, line: 4, type: !8) !13 = !DILocalVariable(name: "argc", arg: 1, scope: !4, file: !1, line: 4, type: !7) !14 = !{!15} -!15 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !16, isLocal: false, isDefinition: true)) +!15 = !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !16, isLocal: false, isDefinition: true) !16 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !7) !17 = !{i32 2, !"Dwarf Version", i32 4} !18 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/debug-info-access.ll b/llvm/test/DebugInfo/X86/debug-info-access.ll index 1ce7635..fa0752d 100644 --- a/llvm/test/DebugInfo/X86/debug-info-access.ll +++ b/llvm/test/DebugInfo/X86/debug-info-access.ll @@ -140,9 +140,9 @@ attributes #0 = { nounwind ssp uwtable } !32 = !DISubroutineType(types: !33) !33 = !{null} !34 = !{!35, !36, !37} -!35 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 37, isLocal: false, isDefinition: true, scope: null, file: !31, type: !4)) -!36 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 38, isLocal: false, isDefinition: true, scope: null, file: !31, type: !12)) -!37 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "u", line: 39, isLocal: false, isDefinition: true, scope: null, file: !31, type: !22)) +!35 = !DIGlobalVariable(name: "a", line: 37, isLocal: false, isDefinition: true, scope: null, file: !31, type: !4) +!36 = !DIGlobalVariable(name: "b", line: 38, isLocal: false, isDefinition: true, scope: null, file: !31, type: !12) +!37 = !DIGlobalVariable(name: "u", line: 39, isLocal: false, isDefinition: true, scope: null, file: !31, type: !22) !38 = !{i32 2, !"Dwarf Version", i32 2} !39 = !{i32 2, !"Debug Info Version", i32 3} !40 = !{!"clang version 3.6.0 "} diff --git a/llvm/test/DebugInfo/X86/debug-info-packed-struct.ll b/llvm/test/DebugInfo/X86/debug-info-packed-struct.ll index dd4b188..382d9bd 100644 --- a/llvm/test/DebugInfo/X86/debug-info-packed-struct.ll +++ b/llvm/test/DebugInfo/X86/debug-info-packed-struct.ll @@ -152,7 +152,7 @@ target triple = "x86_64-apple-darwin" !1 = !DIFile(filename: "/llvm/tools/clang/test/CodeGen/", directory: "/llvm/_build.ninja.release") !2 = !{} !3 = !{!4, !18, !25, !35} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "l0", scope: !0, file: !5, line: 88, type: !6, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "l0", scope: !0, file: !5, line: 88, type: !6, isLocal: false, isDefinition: true) !5 = !DIFile(filename: "/llvm/tools/clang/test/CodeGen/debug-info-packed-struct.c", directory: "/llvm/_build.ninja.release") !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "layout0", file: !5, line: 15, size: 192, elements: !7) !7 = !{!8, !10, !17} @@ -166,14 +166,14 @@ target triple = "x86_64-apple-darwin" !15 = !DIDerivedType(tag: DW_TAG_member, name: "l", scope: !11, file: !5, line: 13, baseType: !16, size: 60, offset: 4) !16 = !DIBasicType(name: "long long int", size: 64, encoding: DW_ATE_signed) !17 = !DIDerivedType(tag: DW_TAG_member, name: "l0_ofs16", scope: !6, file: !5, line: 18, baseType: !14, size: 1, offset: 128) -!18 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "l1", scope: !0, file: !5, line: 89, type: !19, isLocal: false, isDefinition: true)) +!18 = !DIGlobalVariable(name: "l1", scope: !0, file: !5, line: 89, type: !19, isLocal: false, isDefinition: true) !19 = !DICompositeType(tag: DW_TAG_structure_type, name: "layout1", file: !5, line: 34, size: 96, elements: !20) !20 = !{!21, !22, !24} !21 = !DIDerivedType(tag: DW_TAG_member, name: "l1_ofs0", scope: !19, file: !5, line: 35, baseType: !9, size: 8) !22 = !DIDerivedType(tag: DW_TAG_member, name: "l1_ofs1", scope: !19, file: !5, line: 36, baseType: !23, size: 64, offset: 8) !23 = !DICompositeType(tag: DW_TAG_structure_type, name: "size8_anon", file: !5, line: 30, size: 64, elements: !2) !24 = !DIDerivedType(tag: DW_TAG_member, name: "l1_ofs9", scope: !19, file: !5, line: 37, baseType: !14, size: 1, offset: 72) -!25 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "l2", scope: !0, file: !5, line: 90, type: !26, isLocal: false, isDefinition: true)) +!25 = !DIGlobalVariable(name: "l2", scope: !0, file: !5, line: 90, type: !26, isLocal: false, isDefinition: true) !26 = !DICompositeType(tag: DW_TAG_structure_type, name: "layout2", file: !5, line: 54, size: 80, elements: !27) !27 = !{!28, !29, !34} !28 = !DIDerivedType(tag: DW_TAG_member, name: "l2_ofs0", scope: !26, file: !5, line: 55, baseType: !9, size: 8) @@ -183,7 +183,7 @@ target triple = "x86_64-apple-darwin" !32 = !DIDerivedType(tag: DW_TAG_member, name: "i", scope: !30, file: !5, line: 51, baseType: !14, size: 4) !33 = !DIDerivedType(tag: DW_TAG_member, name: "l", scope: !30, file: !5, line: 52, baseType: !16, size: 60, offset: 4) !34 = !DIDerivedType(tag: DW_TAG_member, name: "l2_ofs9", scope: !26, file: !5, line: 57, baseType: !14, size: 1, offset: 72) -!35 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "l3", scope: !0, file: !5, line: 91, type: !36, isLocal: false, isDefinition: true)) +!35 = !DIGlobalVariable(name: "l3", scope: !0, file: !5, line: 91, type: !36, isLocal: false, isDefinition: true) !36 = !DICompositeType(tag: DW_TAG_structure_type, name: "layout3", file: !5, line: 76, size: 128, elements: !37) !37 = !{!38, !39, !44} !38 = !DIDerivedType(tag: DW_TAG_member, name: "l3_ofs0", scope: !36, file: !5, line: 77, baseType: !9, size: 8) diff --git a/llvm/test/DebugInfo/X86/debug-info-static-member.ll b/llvm/test/DebugInfo/X86/debug-info-static-member.ll index 55d6588..017501e 100644 --- a/llvm/test/DebugInfo/X86/debug-info-static-member.ll +++ b/llvm/test/DebugInfo/X86/debug-info-static-member.ll @@ -67,7 +67,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !8 = !{!9} !9 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !10 = !{!12, !27, !28} -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", linkageName: "_ZN1C1aE", line: 14, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !15)) +!12 = !DIGlobalVariable(name: "a", linkageName: "_ZN1C1aE", line: 14, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !15) !13 = !DICompositeType(tag: DW_TAG_class_type, name: "C", line: 1, size: 32, align: 32, file: !33, elements: !14) !14 = !{!15, !16, !19, !20, !23, !24, !26} !15 = !DIDerivedType(tag: DW_TAG_member, name: "a", line: 3, flags: DIFlagPrivate | DIFlagStaticMember, file: !33, scope: !13, baseType: !9) @@ -82,8 +82,8 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !24 = !DIDerivedType(tag: DW_TAG_member, name: "const_c", line: 10, flags: DIFlagPublic | DIFlagStaticMember, file: !33, scope: !13, baseType: !25, extraData: i32 18) !25 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !9) !26 = !DIDerivedType(tag: DW_TAG_member, name: "d", line: 11, size: 32, align: 32, flags: DIFlagPublic, file: !33, scope: !13, baseType: !9) -!27 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", linkageName: "_ZN1C1bE", line: 15, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !19)) -!28 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c", linkageName: "_ZN1C1cE", line: 16, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !23)) +!27 = !DIGlobalVariable(name: "b", linkageName: "_ZN1C1bE", line: 15, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !19) +!28 = !DIGlobalVariable(name: "c", linkageName: "_ZN1C1cE", line: 16, isLocal: false, isDefinition: true, scope: null, file: !6, type: !9, declaration: !23) !29 = !DILocalVariable(name: "instance_C", line: 20, scope: !5, file: !6, type: !13) !30 = !DILocation(line: 20, scope: !5) !31 = !DILocation(line: 21, scope: !5) diff --git a/llvm/test/DebugInfo/X86/debug-loc-frame.ll b/llvm/test/DebugInfo/X86/debug-loc-frame.ll index f86ea57..905e35b 100644 --- a/llvm/test/DebugInfo/X86/debug-loc-frame.ll +++ b/llvm/test/DebugInfo/X86/debug-loc-frame.ll @@ -83,11 +83,11 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) !1 = !DIFile(filename: "frame.c", directory: "/home/user/test") !2 = !{} !3 = !{!4, !6, !7, !8} -!4 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "data", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "data", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!6 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "sum", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true)) -!7 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "zero", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true)) -!8 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "ptr", scope: !0, file: !1, line: 4, type: !9, isLocal: false, isDefinition: true)) +!6 = distinct !DIGlobalVariable(name: "sum", scope: !0, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true) +!7 = distinct !DIGlobalVariable(name: "zero", scope: !0, file: !1, line: 3, type: !5, isLocal: false, isDefinition: true) +!8 = distinct !DIGlobalVariable(name: "ptr", scope: !0, file: !1, line: 4, type: !9, isLocal: false, isDefinition: true) !9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 64, align: 64) !10 = !{i32 2, !"Dwarf Version", i32 4} !11 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/debugger-tune.ll b/llvm/test/DebugInfo/X86/debugger-tune.ll index 414ef47..9e82c49 100644 --- a/llvm/test/DebugInfo/X86/debugger-tune.ll +++ b/llvm/test/DebugInfo/X86/debugger-tune.ll @@ -37,7 +37,7 @@ !1 = !DIFile(filename: "debugger-tune.cpp", directory: "/home/probinson/projects/scratch") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "globalvar", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "globalvar", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !6 = !{i32 2, !"Dwarf Version", i32 4} !7 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/decl-derived-member.ll b/llvm/test/DebugInfo/X86/decl-derived-member.ll index 7bad599..fec59f9 100644 --- a/llvm/test/DebugInfo/X86/decl-derived-member.ll +++ b/llvm/test/DebugInfo/X86/decl-derived-member.ll @@ -128,7 +128,7 @@ attributes #4 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n !26 = distinct !DISubprogram(name: "", linkageName: "_GLOBAL__sub_I_decl_derived_member.cpp", isLocal: true, isDefinition: true, flags: DIFlagArtificial, isOptimized: false, unit: !0, file: !1, scope: !11, type: !27, variables: !2) !27 = !DISubroutineType(types: !2) !28 = !{!29} -!29 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 8, isLocal: false, isDefinition: true, scope: null, file: !11, type: !4)) +!29 = !DIGlobalVariable(name: "f", line: 8, isLocal: false, isDefinition: true, scope: null, file: !11, type: !4) !30 = !{i32 2, !"Dwarf Version", i32 4} !31 = !{i32 2, !"Debug Info Version", i32 3} !32 = !{!"clang version 3.7.0 (trunk 227104) (llvm/trunk 227103)"} diff --git a/llvm/test/DebugInfo/X86/dllimport.ll b/llvm/test/DebugInfo/X86/dllimport.ll index 493075b..b809a9d 100644 --- a/llvm/test/DebugInfo/X86/dllimport.ll +++ b/llvm/test/DebugInfo/X86/dllimport.ll @@ -14,7 +14,7 @@ target triple = "i686-pc-windows-msvc" !1 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/", directory: "/usr/local/google/home/majnemer/llvm/src") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !0, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, declaration: !7)) +!4 = distinct !DIGlobalVariable(name: "id", linkageName: "\01?id@?$numpunct@D@@0HA", scope: !0, file: !5, line: 4, type: !6, isLocal: false, isDefinition: true, declaration: !7) !5 = !DIFile(filename: "/usr/local/google/home/majnemer/Downloads/t.ii", directory: "/usr/local/google/home/majnemer/llvm/src") !6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !DIDerivedType(tag: DW_TAG_member, name: "id", scope: !8, file: !5, line: 2, baseType: !6, flags: DIFlagStaticMember) diff --git a/llvm/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll b/llvm/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll index ebe086a..6be5d61 100644 --- a/llvm/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll +++ b/llvm/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll @@ -77,7 +77,7 @@ attributes #2 = { nounwind readnone } !15 = !DISubroutineType(types: !16) !16 = !{!8} !17 = !{!18} -!18 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8)) +!18 = !DIGlobalVariable(name: "global", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8) !19 = !{i32 2, !"Dwarf Version", i32 4} !20 = !DILocation(line: 2, scope: !4) !21 = !DILocation(line: 3, scope: !11) diff --git a/llvm/test/DebugInfo/X86/dwarf-aranges.ll b/llvm/test/DebugInfo/X86/dwarf-aranges.ll index ce14e3e..d736b50 100644 --- a/llvm/test/DebugInfo/X86/dwarf-aranges.ll +++ b/llvm/test/DebugInfo/X86/dwarf-aranges.ll @@ -70,10 +70,10 @@ entry: !6 = !DISubroutineType(types: !7) !7 = !{null} !8 = !{!9, !11, !12} -!9 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "some_data", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10)) +!9 = !DIGlobalVariable(name: "some_data", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10) !10 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "some_other", line: 3, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10)) -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "some_bss", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10)) +!11 = !DIGlobalVariable(name: "some_other", line: 3, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10) +!12 = !DIGlobalVariable(name: "some_bss", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10) !13 = !{i32 2, !"Dwarf Version", i32 4} !14 = !DILocation(line: 7, scope: !4) !15 = !DILocation(line: 8, scope: !4) diff --git a/llvm/test/DebugInfo/X86/dwarf-linkage-names.ll b/llvm/test/DebugInfo/X86/dwarf-linkage-names.ll index 11a9141..a4437aa 100644 --- a/llvm/test/DebugInfo/X86/dwarf-linkage-names.ll +++ b/llvm/test/DebugInfo/X86/dwarf-linkage-names.ll @@ -62,7 +62,7 @@ attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fp !7 = !{!8} !8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_var", linkageName: "_ZN4test10global_varE", scope: !5, file: !1, line: 2, type: !8, isLocal: false, isDefinition: true)) +!10 = !DIGlobalVariable(name: "global_var", linkageName: "_ZN4test10global_varE", scope: !5, file: !1, line: 2, type: !8, isLocal: false, isDefinition: true) !11 = !{i32 2, !"Dwarf Version", i32 4} !12 = !{i32 2, !"Debug Info Version", i32 3} !13 = !{!"clang version 3.8.0 (trunk 244662)"} diff --git a/llvm/test/DebugInfo/X86/dwarf-public-names.ll b/llvm/test/DebugInfo/X86/dwarf-public-names.ll index 2c2d0ef..c28f793 100644 --- a/llvm/test/DebugInfo/X86/dwarf-public-names.ll +++ b/llvm/test/DebugInfo/X86/dwarf-public-names.ll @@ -120,9 +120,9 @@ attributes #1 = { nounwind readnone } !22 = !DISubroutineType(types: !23) !23 = !{null} !24 = !{!25, !26, !27} -!25 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", line: 7, isLocal: false, isDefinition: true, scope: !8, file: !4, type: !11, declaration: !10)) -!26 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_variable", line: 17, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8)) -!27 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", line: 27, isLocal: false, isDefinition: true, scope: !21, file: !4, type: !11)) +!25 = !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", line: 7, isLocal: false, isDefinition: true, scope: !8, file: !4, type: !11, declaration: !10) +!26 = !DIGlobalVariable(name: "global_variable", line: 17, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8) +!27 = !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", line: 27, isLocal: false, isDefinition: true, scope: !21, file: !4, type: !11) !28 = !DILocalVariable(name: "this", line: 9, arg: 1, flags: DIFlagArtificial | DIFlagObjectPointer, scope: !3, file: !4, type: !29) !29 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, baseType: !8) !30 = !DILocation(line: 9, scope: !3) diff --git a/llvm/test/DebugInfo/X86/empty-array.ll b/llvm/test/DebugInfo/X86/empty-array.ll index c65a379..7c3cdc0 100644 --- a/llvm/test/DebugInfo/X86/empty-array.ll +++ b/llvm/test/DebugInfo/X86/empty-array.ll @@ -30,7 +30,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 169136)", isOptimized: false, emissionKind: FullDebug, file: !20, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "t.cpp", directory: "/Volumes/Sandbox/llvm") !7 = !DICompositeType(tag: DW_TAG_class_type, name: "A", line: 1, align: 32, file: !20, elements: !8) !8 = !{!9, !14} diff --git a/llvm/test/DebugInfo/X86/enum-class.ll b/llvm/test/DebugInfo/X86/enum-class.ll index 31e405f..247215d 100644 --- a/llvm/test/DebugInfo/X86/enum-class.ll +++ b/llvm/test/DebugInfo/X86/enum-class.ll @@ -24,9 +24,9 @@ !14 = !DIEnumerator(name: "C1", value: 1) ; [ DW_TAG_enumerator ] !15 = !{} !17 = !{!19, !20, !21} -!19 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 4, isLocal: false, isDefinition: true, scope: null, file: !4, type: !3)) -!20 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 5, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8)) -!21 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c", line: 6, isLocal: false, isDefinition: true, scope: null, file: !4, type: !12)) +!19 = !DIGlobalVariable(name: "a", line: 4, isLocal: false, isDefinition: true, scope: null, file: !4, type: !3) +!20 = !DIGlobalVariable(name: "b", line: 5, isLocal: false, isDefinition: true, scope: null, file: !4, type: !8) +!21 = !DIGlobalVariable(name: "c", line: 6, isLocal: false, isDefinition: true, scope: null, file: !4, type: !12) !22 = !DIFile(filename: "foo.cpp", directory: "/Users/echristo/tmp") ; CHECK: DW_TAG_enumeration_type [{{.*}}] diff --git a/llvm/test/DebugInfo/X86/enum-fwd-decl.ll b/llvm/test/DebugInfo/X86/enum-fwd-decl.ll index ff3d1e4..e05e105 100644 --- a/llvm/test/DebugInfo/X86/enum-fwd-decl.ll +++ b/llvm/test/DebugInfo/X86/enum-fwd-decl.ll @@ -9,7 +9,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.2 (trunk 165274) (llvm/trunk 165272)", isOptimized: false, emissionKind: FullDebug, file: !8, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "e", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "e", line: 2, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "foo.cpp", directory: "/tmp") !7 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "E", line: 1, size: 16, align: 16, flags: DIFlagFwdDecl, file: !8) !8 = !DIFile(filename: "foo.cpp", directory: "/tmp") diff --git a/llvm/test/DebugInfo/X86/externaltyperef.ll b/llvm/test/DebugInfo/X86/externaltyperef.ll index 0049a26..1bc69a9 100644 --- a/llvm/test/DebugInfo/X86/externaltyperef.ll +++ b/llvm/test/DebugInfo/X86/externaltyperef.ll @@ -38,7 +38,7 @@ target triple = "x86_64-apple-macosx10.10.0" !3 = !{!4, !9} !4 = !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !1, flags: DIFlagExternalTypeRef, identifier: "_ZTS1A") !5 = !{!6} -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true)) +!6 = !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true) !7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, align: 64) !8 = !DICompositeType(tag: DW_TAG_class_type, name: "B", file: !1, flags: DIFlagExternalTypeRef, identifier: "_ZTS1B") !9 = !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !1, flags: DIFlagExternalTypeRef, identifier: "_ZTSN1N1BE") diff --git a/llvm/test/DebugInfo/X86/fission-cu.ll b/llvm/test/DebugInfo/X86/fission-cu.ll index c697325..8d1e2f9 100644 --- a/llvm/test/DebugInfo/X86/fission-cu.ll +++ b/llvm/test/DebugInfo/X86/fission-cu.ll @@ -11,7 +11,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 169021) (llvm/trunk 169020)", isOptimized: false, splitDebugFilename: "baz.dwo", emissionKind: FullDebug, file: !8, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "baz.c", directory: "/usr/local/google/home/echristo/tmp") !7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !8 = !DIFile(filename: "baz.c", directory: "/usr/local/google/home/echristo/tmp") diff --git a/llvm/test/DebugInfo/X86/generate-odr-hash.ll b/llvm/test/DebugInfo/X86/generate-odr-hash.ll index c7e1780..f8a7a29 100644 --- a/llvm/test/DebugInfo/X86/generate-odr-hash.ll +++ b/llvm/test/DebugInfo/X86/generate-odr-hash.ll @@ -256,10 +256,10 @@ attributes #1 = { nounwind readnone } !36 = distinct !DISubprogram(name: "", linkageName: "_GLOBAL__I_a", line: 25, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagArtificial, isOptimized: false, unit: !0, scopeLine: 25, file: !1, scope: !23, type: !37, variables: !2) !37 = !DISubroutineType(types: !2) !38 = !{!39, !40, !41, !42} -!39 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 3, isLocal: false, isDefinition: true, scope: null, file: !23, type: !4)) -!40 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "animal", linkageName: "_ZN7echidna8capybara8mongoose6animalE", line: 18, isLocal: false, isDefinition: true, scope: !7, file: !23, type: !6)) -!41 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "w", line: 29, isLocal: true, isDefinition: true, scope: null, file: !23, type: !28)) -!42 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "wom", line: 38, isLocal: false, isDefinition: true, scope: null, file: !23, type: !14)) +!39 = !DIGlobalVariable(name: "b", line: 3, isLocal: false, isDefinition: true, scope: null, file: !23, type: !4) +!40 = !DIGlobalVariable(name: "animal", linkageName: "_ZN7echidna8capybara8mongoose6animalE", line: 18, isLocal: false, isDefinition: true, scope: !7, file: !23, type: !6) +!41 = !DIGlobalVariable(name: "w", line: 29, isLocal: true, isDefinition: true, scope: null, file: !23, type: !28) +!42 = !DIGlobalVariable(name: "wom", line: 38, isLocal: false, isDefinition: true, scope: null, file: !23, type: !14) !43 = !{i32 2, !"Dwarf Version", i32 4} !44 = !{i32 1, !"Debug Info Version", i32 3} !45 = !{!"clang version 3.5 "} diff --git a/llvm/test/DebugInfo/X86/gnu-public-names.ll b/llvm/test/DebugInfo/X86/gnu-public-names.ll index 6f85c70..dade8bb 100644 --- a/llvm/test/DebugInfo/X86/gnu-public-names.ll +++ b/llvm/test/DebugInfo/X86/gnu-public-names.ll @@ -331,16 +331,16 @@ attributes #1 = { nounwind readnone } !29 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 64, align: 64) !30 = distinct !DISubprogram(name: "f7", linkageName: "_Z2f7v", scope: !1, file: !1, line: 57, type: !13, isLocal: false, isDefinition: true, scopeLine: 57, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2) !31 = !{!32, !33, !34, !35, !36, !37, !39, !41} -!32 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", scope: !0, file: !1, line: 7, type: !7, isLocal: false, isDefinition: true, declaration: !6)) -!33 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_variable", scope: !0, file: !1, line: 17, type: !4, isLocal: false, isDefinition: true)) -!34 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", scope: !16, file: !1, line: 27, type: !7, isLocal: false, isDefinition: true)) -!35 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "d", linkageName: "_ZN2ns1dE", scope: !16, file: !1, line: 31, type: !15, isLocal: false, isDefinition: true)) -!36 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "z", scope: !26, file: !1, line: 41, type: !7, isLocal: true, isDefinition: true)) -!37 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", linkageName: "_ZN12_GLOBAL__N_11iE", scope: !38, file: !1, line: 37, type: !7, isLocal: true, isDefinition: true)) +!32 = !DIGlobalVariable(name: "static_member_variable", linkageName: "_ZN1C22static_member_variableE", scope: !0, file: !1, line: 7, type: !7, isLocal: false, isDefinition: true, declaration: !6) +!33 = !DIGlobalVariable(name: "global_variable", scope: !0, file: !1, line: 17, type: !4, isLocal: false, isDefinition: true) +!34 = !DIGlobalVariable(name: "global_namespace_variable", linkageName: "_ZN2ns25global_namespace_variableE", scope: !16, file: !1, line: 27, type: !7, isLocal: false, isDefinition: true) +!35 = !DIGlobalVariable(name: "d", linkageName: "_ZN2ns1dE", scope: !16, file: !1, line: 31, type: !15, isLocal: false, isDefinition: true) +!36 = !DIGlobalVariable(name: "z", scope: !26, file: !1, line: 41, type: !7, isLocal: true, isDefinition: true) +!37 = !DIGlobalVariable(name: "i", linkageName: "_ZN12_GLOBAL__N_11iE", scope: !38, file: !1, line: 37, type: !7, isLocal: true, isDefinition: true) !38 = !DINamespace(scope: null, file: !1, line: 36) -!39 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", linkageName: "_ZN12_GLOBAL__N_15inner1bE", scope: !40, file: !1, line: 47, type: !7, isLocal: true, isDefinition: true)) +!39 = !DIGlobalVariable(name: "b", linkageName: "_ZN12_GLOBAL__N_15inner1bE", scope: !40, file: !1, line: 47, type: !7, isLocal: true, isDefinition: true) !40 = !DINamespace(name: "inner", scope: !38, file: !1, line: 46) -!41 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c", linkageName: "_ZN5outer12_GLOBAL__N_11cE", scope: !42, file: !1, line: 53, type: !7, isLocal: true, isDefinition: true)) +!41 = !DIGlobalVariable(name: "c", linkageName: "_ZN5outer12_GLOBAL__N_11cE", scope: !42, file: !1, line: 53, type: !7, isLocal: true, isDefinition: true) !42 = !DINamespace(scope: !43, file: !1, line: 52) !43 = !DINamespace(name: "outer", scope: null, file: !1, line: 51) !44 = !{!45, !47} diff --git a/llvm/test/DebugInfo/X86/inline-member-function.ll b/llvm/test/DebugInfo/X86/inline-member-function.ll index f4c1903..f4c18bb 100644 --- a/llvm/test/DebugInfo/X86/inline-member-function.ll +++ b/llvm/test/DebugInfo/X86/inline-member-function.ll @@ -82,7 +82,7 @@ attributes #1 = { nounwind readnone } !16 = !{!9} !17 = distinct !DISubprogram(name: "func", linkageName: "_ZN3foo4funcEi", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 2, file: !1, scope: !4, type: !7, declaration: !6, variables: !2) !18 = !{!19} -!19 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: null, file: !14, type: !9)) +!19 = !DIGlobalVariable(name: "i", line: 5, isLocal: false, isDefinition: true, scope: null, file: !14, type: !9) !20 = !{i32 2, !"Dwarf Version", i32 4} !21 = !{i32 1, !"Debug Info Version", i32 3} !22 = !{!"clang version 3.5.0 "} diff --git a/llvm/test/DebugInfo/X86/inline-namespace.ll b/llvm/test/DebugInfo/X86/inline-namespace.ll index 1e9a0e6..627e6f8 100644 --- a/llvm/test/DebugInfo/X86/inline-namespace.ll +++ b/llvm/test/DebugInfo/X86/inline-namespace.ll @@ -26,7 +26,7 @@ target triple = "x86_64-apple-macosx10.12.0" !llvm.module.flags = !{!8, !9, !10} !llvm.ident = !{!11} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", linkageName: "_ZN6normal7inlined1iE", scope: !1, file: !2, line: 1, type: !4, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "i", linkageName: "_ZN6normal7inlined1iE", scope: !1, file: !2, line: 1, type: !4, isLocal: false, isDefinition: true) !1 = !DINamespace(name: "inlined", scope: !3, file: !2, line: 1, exportSymbols: true) !2 = !DIFile(filename: "namespace.cpp", directory: "/") !3 = !DINamespace(name: "normal", scope: null, file: !2, line: 1) diff --git a/llvm/test/DebugInfo/X86/inlined-indirect-value.ll b/llvm/test/DebugInfo/X86/inlined-indirect-value.ll index 479a637..c19bd15 100644 --- a/llvm/test/DebugInfo/X86/inlined-indirect-value.ll +++ b/llvm/test/DebugInfo/X86/inlined-indirect-value.ll @@ -58,9 +58,9 @@ select.end: ; preds = %entry, %select.mid !7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !8 = distinct !DISubprogram(name: "f1", scope: !1, file: !1, line: 3, type: !5, isLocal: true, isDefinition: true, scopeLine: 3, isOptimized: true, unit: !0, variables: !2) !9 = !{!10, !12} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !11, isLocal: false, isDefinition: true)) +!10 = !DIGlobalVariable(name: "x", scope: !0, file: !1, line: 1, type: !11, isLocal: false, isDefinition: true) !11 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !7) -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "y", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true)) +!12 = !DIGlobalVariable(name: "y", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true) !13 = !{i32 2, !"Dwarf Version", i32 4} !14 = !{i32 2, !"Debug Info Version", i32 3} !16 = !DILocation(line: 4, column: 9, scope: !17, inlinedAt: !18) diff --git a/llvm/test/DebugInfo/X86/isel-cse-line.ll b/llvm/test/DebugInfo/X86/isel-cse-line.ll index 94502fc..7140a4d 100644 --- a/llvm/test/DebugInfo/X86/isel-cse-line.ll +++ b/llvm/test/DebugInfo/X86/isel-cse-line.ll @@ -73,10 +73,10 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) !4 = !DIDerivedType(tag: DW_TAG_typedef, name: "fp_t", file: !1, line: 1, baseType: !5) !5 = !DIBasicType(name: "double", size: 64, align: 64, encoding: DW_ATE_float) !6 = !{!7, !10} -!7 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "glb_start", scope: !0, file: !1, line: 4, type: !8, isLocal: false, isDefinition: true)) +!7 = distinct !DIGlobalVariable(name: "glb_start", scope: !0, file: !1, line: 4, type: !8, isLocal: false, isDefinition: true) !8 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_t", file: !1, line: 2, baseType: !9) !9 = !DIBasicType(name: "long unsigned int", size: 64, align: 64, encoding: DW_ATE_unsigned) -!10 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "glb_end", scope: !0, file: !1, line: 5, type: !8, isLocal: false, isDefinition: true)) +!10 = distinct !DIGlobalVariable(name: "glb_end", scope: !0, file: !1, line: 5, type: !8, isLocal: false, isDefinition: true) !11 = !{i32 2, !"Dwarf Version", i32 4} !12 = !{i32 2, !"Debug Info Version", i32 3} !13 = !{!"clang version 3.9.0 (trunk 268246)"} diff --git a/llvm/test/DebugInfo/X86/linkage-name.ll b/llvm/test/DebugInfo/X86/linkage-name.ll index cd8ac31..a84cde7 100644 --- a/llvm/test/DebugInfo/X86/linkage-name.ll +++ b/llvm/test/DebugInfo/X86/linkage-name.ll @@ -39,7 +39,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !12 = !{!13} !13 = !DISubprogram(name: "a", linkageName: "_ZN1A1aEi", line: 2, isLocal: false, isDefinition: false, virtualIndex: 6, flags: DIFlagPrivate | DIFlagPrototyped, isOptimized: false, file: !6, scope: !11, type: !7) !18 = !{!20} -!20 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 9, isLocal: false, isDefinition: true, scope: null, file: !6, type: !11)) +!20 = !DIGlobalVariable(name: "a", line: 9, isLocal: false, isDefinition: true, scope: null, file: !6, type: !11) !21 = !DILocalVariable(name: "this", line: 5, arg: 1, flags: DIFlagArtificial, scope: !5, file: !6, type: !22) !22 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !11) !23 = !DILocation(line: 5, column: 8, scope: !5) diff --git a/llvm/test/DebugInfo/X86/live-debug-values.ll b/llvm/test/DebugInfo/X86/live-debug-values.ll index a380ccb..d7a8298 100644 --- a/llvm/test/DebugInfo/X86/live-debug-values.ll +++ b/llvm/test/DebugInfo/X86/live-debug-values.ll @@ -119,7 +119,7 @@ attributes #4 = { nounwind } !13 = !DILocalVariable(name: "argv", arg: 2, scope: !4, file: !1, line: 6, type: !8) !14 = !DILocalVariable(name: "n", scope: !4, file: !1, line: 7, type: !7) !15 = !{!16} -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true)) +!16 = !DIGlobalVariable(name: "m", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true) !17 = !{i32 2, !"Dwarf Version", i32 4} !18 = !{i32 2, !"Debug Info Version", i32 3} !19 = !{!"clang version 3.8.0 (trunk 253049) "} diff --git a/llvm/test/DebugInfo/X86/memberfnptr.ll b/llvm/test/DebugInfo/X86/memberfnptr.ll index 5c646a4..6d54824 100644 --- a/llvm/test/DebugInfo/X86/memberfnptr.ll +++ b/llvm/test/DebugInfo/X86/memberfnptr.ll @@ -35,7 +35,7 @@ declare void @_ZN1A3fooEv(%struct.A*) !8 = !{null, !9} !9 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer, baseType: !4) !10 = !{!11} -!11 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "p", line: 5, isLocal: false, isDefinition: true, scope: null, file: !12, type: !13)) +!11 = !DIGlobalVariable(name: "p", line: 5, isLocal: false, isDefinition: true, scope: null, file: !12, type: !13) !12 = !DIFile(filename: "memberfnptr.cpp", directory: "") !13 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, size: 64, baseType: !7, extraData: !4) !14 = !{i32 2, !"Dwarf Version", i32 2} diff --git a/llvm/test/DebugInfo/X86/misched-dbg-value.ll b/llvm/test/DebugInfo/X86/misched-dbg-value.ll index 9ea7c94..5b923ff 100644 --- a/llvm/test/DebugInfo/X86/misched-dbg-value.ll +++ b/llvm/test/DebugInfo/X86/misched-dbg-value.ll @@ -132,23 +132,23 @@ attributes #1 = { nounwind readnone } !27 = !DILocalVariable(name: "IntLoc", line: 186, scope: !12, file: !3, type: !21) !28 = !DILocalVariable(name: "IntIndex", line: 187, scope: !12, file: !3, type: !21) !29 = !{!30, !35, !36, !38, !39, !40, !42, !46, !63} -!30 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Version", line: 111, isLocal: false, isDefinition: true, scope: null, file: !3, type: !31)) +!30 = !DIGlobalVariable(name: "Version", line: 111, isLocal: false, isDefinition: true, scope: null, file: !3, type: !31) !31 = !DICompositeType(tag: DW_TAG_array_type, size: 32, align: 8, baseType: !32, elements: !33) !32 = !DIBasicType(tag: DW_TAG_base_type, name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char) !33 = !{!34} !34 = !DISubrange(count: 4) -!35 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "IntGlob", line: 171, isLocal: false, isDefinition: true, scope: null, file: !3, type: !16)) -!36 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "BoolGlob", line: 172, isLocal: false, isDefinition: true, scope: null, file: !3, type: !37)) +!35 = !DIGlobalVariable(name: "IntGlob", line: 171, isLocal: false, isDefinition: true, scope: null, file: !3, type: !16) +!36 = !DIGlobalVariable(name: "BoolGlob", line: 172, isLocal: false, isDefinition: true, scope: null, file: !3, type: !37) !37 = !DIDerivedType(tag: DW_TAG_typedef, name: "boolean", line: 149, file: !82, baseType: !16) -!38 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Char1Glob", line: 173, isLocal: false, isDefinition: true, scope: null, file: !3, type: !32)) -!39 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Char2Glob", line: 174, isLocal: false, isDefinition: true, scope: null, file: !3, type: !32)) -!40 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Array1Glob", line: 175, isLocal: false, isDefinition: true, scope: null, file: !3, type: !41)) +!38 = !DIGlobalVariable(name: "Char1Glob", line: 173, isLocal: false, isDefinition: true, scope: null, file: !3, type: !32) +!39 = !DIGlobalVariable(name: "Char2Glob", line: 174, isLocal: false, isDefinition: true, scope: null, file: !3, type: !32) +!40 = !DIGlobalVariable(name: "Array1Glob", line: 175, isLocal: false, isDefinition: true, scope: null, file: !3, type: !41) !41 = !DIDerivedType(tag: DW_TAG_typedef, name: "Array1Dim", line: 135, file: !82, baseType: !18) -!42 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Array2Glob", line: 176, isLocal: false, isDefinition: true, scope: null, file: !3, type: !43)) +!42 = !DIGlobalVariable(name: "Array2Glob", line: 176, isLocal: false, isDefinition: true, scope: null, file: !3, type: !43) !43 = !DIDerivedType(tag: DW_TAG_typedef, name: "Array2Dim", line: 136, file: !82, baseType: !44) !44 = !DICompositeType(tag: DW_TAG_array_type, size: 83232, align: 32, baseType: !16, elements: !45) !45 = !{!20, !20} -!46 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "PtrGlb", line: 177, isLocal: false, isDefinition: true, scope: null, file: !3, type: !47)) +!46 = !DIGlobalVariable(name: "PtrGlb", line: 177, isLocal: false, isDefinition: true, scope: null, file: !3, type: !47) !47 = !DIDerivedType(tag: DW_TAG_typedef, name: "RecordPtr", line: 148, file: !82, baseType: !48) !48 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !49) !49 = !DIDerivedType(tag: DW_TAG_typedef, name: "RecordType", line: 147, file: !82, baseType: !50) @@ -165,7 +165,7 @@ attributes #1 = { nounwind readnone } !60 = !DICompositeType(tag: DW_TAG_array_type, size: 248, align: 8, baseType: !32, elements: !61) !61 = !{!62} !62 = !DISubrange(count: 31) -!63 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "PtrGlbNext", line: 178, isLocal: false, isDefinition: true, scope: null, file: !3, type: !47)) +!63 = !DIGlobalVariable(name: "PtrGlbNext", line: 178, isLocal: false, isDefinition: true, scope: null, file: !3, type: !47) !64 = !DILocation(line: 181, scope: !12) !65 = !DILocation(line: 182, scope: !12) !66 = !DILocation(line: 183, scope: !12) diff --git a/llvm/test/DebugInfo/X86/multiple-aranges.ll b/llvm/test/DebugInfo/X86/multiple-aranges.ll index 6972079..77e1eee 100644 --- a/llvm/test/DebugInfo/X86/multiple-aranges.ll +++ b/llvm/test/DebugInfo/X86/multiple-aranges.ll @@ -48,13 +48,13 @@ target triple = "x86_64-unknown-linux-gnu" !1 = !DIFile(filename: "test1.c", directory: "/home/kayamon") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "kittens", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6)) +!4 = !DIGlobalVariable(name: "kittens", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !6) !5 = !DIFile(filename: "test1.c", directory: "/home/kayamon") !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 ", isOptimized: false, emissionKind: FullDebug, file: !8, enums: !2, retainedTypes: !2, globals: !9, imports: !2) !8 = !DIFile(filename: "test2.c", directory: "/home/kayamon") !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "rainbows", line: 1, isLocal: false, isDefinition: true, scope: null, file: !11, type: !6)) +!10 = !DIGlobalVariable(name: "rainbows", line: 1, isLocal: false, isDefinition: true, scope: null, file: !11, type: !6) !11 = !DIFile(filename: "test2.c", directory: "/home/kayamon") !12 = !{i32 2, !"Dwarf Version", i32 4} !13 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/multiple-at-const-val.ll b/llvm/test/DebugInfo/X86/multiple-at-const-val.ll index 497a345..fcfd48f 100644 --- a/llvm/test/DebugInfo/X86/multiple-at-const-val.ll +++ b/llvm/test/DebugInfo/X86/multiple-at-const-val.ll @@ -56,8 +56,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !960 = distinct !DISubprogram(name: "main", line: 73, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 73, file: !1802, scope: null, type: !54, variables: !955) !961 = !DIFile(filename: "student2.cpp", directory: "/privite/tmp") !1786 = !{!1800} -!1800 = !DIGlobalVariableExpression(var: !1804, expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value)) +!1800 = !DIGlobalVariable(name: "badbit", linkageName: "badbit", line: 331, isLocal: true, isDefinition: true, scope: !5, file: !5, type: !78, expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value), declaration: !77) !1801 = !DIFile(filename: "os_base.h", directory: "/privite/tmp") !1802 = !DIFile(filename: "student2.cpp", directory: "/privite/tmp") !1803 = !{i32 1, !"Debug Info Version", i32 3} -!1804 = distinct !DIGlobalVariable(name: "badbit", linkageName: "badbit", line: 331, isLocal: true, isDefinition: true, scope: !5, file: !5, type: !78, declaration: !77) diff --git a/llvm/test/DebugInfo/X86/nondefault-subrange-array.ll b/llvm/test/DebugInfo/X86/nondefault-subrange-array.ll index 3b734b9..9f1b2502 100644 --- a/llvm/test/DebugInfo/X86/nondefault-subrange-array.ll +++ b/llvm/test/DebugInfo/X86/nondefault-subrange-array.ll @@ -33,7 +33,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.3 (trunk 169136)", isOptimized: false, emissionKind: FullDebug, file: !20, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "t.cpp", directory: "/Volumes/Sandbox/llvm") !7 = !DICompositeType(tag: DW_TAG_class_type, name: "A", line: 1, align: 32, file: !20, elements: !8) !8 = !{!9, !14} diff --git a/llvm/test/DebugInfo/X86/objc-fwd-decl.ll b/llvm/test/DebugInfo/X86/objc-fwd-decl.ll index 0b7db01..9a6895a 100644 --- a/llvm/test/DebugInfo/X86/objc-fwd-decl.ll +++ b/llvm/test/DebugInfo/X86/objc-fwd-decl.ll @@ -15,7 +15,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_ObjC, producer: "clang version 3.1 (trunk 152054 trunk 152094)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, file: !13, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 3, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 3, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "foo.m", directory: "/Users/echristo") !7 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !8) !8 = !DICompositeType(tag: DW_TAG_structure_type, name: "FooBarBaz", line: 1, flags: DIFlagFwdDecl, runtimeLang: DW_LANG_ObjC, file: !13) diff --git a/llvm/test/DebugInfo/X86/pointer-type-size.ll b/llvm/test/DebugInfo/X86/pointer-type-size.ll index d8a4d11..6de3596 100644 --- a/llvm/test/DebugInfo/X86/pointer-type-size.ll +++ b/llvm/test/DebugInfo/X86/pointer-type-size.ll @@ -14,7 +14,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1 (trunk 147882)", isOptimized: false, emissionKind: FullDebug, file: !13, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "crass", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "crass", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "foo.c", directory: "/Users/echristo/tmp") !7 = !DICompositeType(tag: DW_TAG_structure_type, name: "crass", line: 1, size: 64, align: 64, file: !13, elements: !8) !8 = !{!9} diff --git a/llvm/test/DebugInfo/X86/pr12831.ll b/llvm/test/DebugInfo/X86/pr12831.ll index 7ff01f7..2b0400d 100644 --- a/llvm/test/DebugInfo/X86/pr12831.ll +++ b/llvm/test/DebugInfo/X86/pr12831.ll @@ -174,7 +174,7 @@ entry: !126 = distinct !DISubprogram(name: "function >", linkageName: "_ZN8functionIFvvEEC2IZN17BPLFunctionWriter9writeExprEvE3$_0EET_", line: 8, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 8, file: !6, scope: null, type: !23, templateParams: !47, declaration: !22, variables: !1) !127 = distinct !DISubprogram(name: "_M_not_empty_function >", linkageName: "_ZN13_Base_manager21_M_not_empty_functionIZN17BPLFunctionWriter9writeExprEvE3$_0EEvRKT_", line: 3, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 3, file: !6, scope: null, type: !117, templateParams: !120, declaration: !116, variables: !1) !128 = !{!130} -!130 = !DIGlobalVariableExpression(var: !163, expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value)) +!130 = !DIGlobalVariable(name: "__stored_locally", linkageName: "__stored_locally", line: 2, isLocal: true, isDefinition: true, scope: !114, file: !6, type: !131, expr: !DIExpression(DW_OP_constu, 1, DW_OP_stack_value)) !131 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !132) !132 = !DIBasicType(tag: DW_TAG_base_type, name: "bool", size: 8, align: 8, encoding: DW_ATE_boolean) !133 = !DILocalVariable(name: "this", line: 19, arg: 1, flags: DIFlagArtificial, scope: !5, file: !6, type: !134) @@ -207,4 +207,3 @@ entry: !160 = !DIFile(filename: "BPLFunctionWriter2.ii", directory: "/home/peter/crashdelta") !161 = !DIFile(filename: "BPLFunctionWriter.cpp", directory: "/home/peter/crashdelta") !162 = !{i32 1, !"Debug Info Version", i32 3} -!163 = distinct !DIGlobalVariable(name: "__stored_locally", linkageName: "__stored_locally", line: 2, isLocal: true, isDefinition: true, scope: !114, file: !6, type: !131) diff --git a/llvm/test/DebugInfo/X86/ref_addr_relocation.ll b/llvm/test/DebugInfo/X86/ref_addr_relocation.ll index cb9a9f8..167a154 100644 --- a/llvm/test/DebugInfo/X86/ref_addr_relocation.ll +++ b/llvm/test/DebugInfo/X86/ref_addr_relocation.ll @@ -65,12 +65,12 @@ !4 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", line: 1, size: 8, align: 8, file: !5, elements: !2, identifier: "_ZTS3foo") !5 = !DIFile(filename: "./hdr.h", directory: "/Users/manmanren/test-Nov/type_unique_air/ref_addr") !6 = !{!7} -!7 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 2, isLocal: false, isDefinition: true, scope: null, file: !8, type: !4)) +!7 = !DIGlobalVariable(name: "f", line: 2, isLocal: false, isDefinition: true, scope: null, file: !8, type: !4) !8 = !DIFile(filename: "tu1.cpp", directory: "/Users/manmanren/test-Nov/type_unique_air/ref_addr") !9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.4 (trunk 191799)", isOptimized: false, emissionKind: FullDebug, file: !10, enums: !2, retainedTypes: !3, globals: !11, imports: !2) !10 = !DIFile(filename: "tu2.cpp", directory: "/Users/manmanren/test-Nov/type_unique_air/ref_addr") !11 = !{!12} -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "g", line: 2, isLocal: false, isDefinition: true, scope: null, file: !13, type: !4)) +!12 = !DIGlobalVariable(name: "g", line: 2, isLocal: false, isDefinition: true, scope: null, file: !13, type: !4) !13 = !DIFile(filename: "tu2.cpp", directory: "/Users/manmanren/test-Nov/type_unique_air/ref_addr") !14 = !{i32 2, !"Dwarf Version", i32 2} !15 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/llvm/test/DebugInfo/X86/split-global.ll b/llvm/test/DebugInfo/X86/split-global.ll deleted file mode 100644 index 536ed04..0000000 --- a/llvm/test/DebugInfo/X86/split-global.ll +++ /dev/null @@ -1,60 +0,0 @@ -; RUN: llc -mtriple=x86_64-apple-darwin %s -o - -filetype=obj | \ -; RUN: llvm-dwarfdump --debug-dump=info - | FileCheck %s -; -; Test emitting debug info for fragmented global values. -; This is a handcrafted example of an SROAed global variable. -target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-apple-macosx10.12.0" - -%struct.anon = type { i32, i32 } - -; CHECK: DW_TAG_variable -; CHECK-NEXT: DW_AT_name {{.*}}"point" -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_location [DW_FORM_exprloc] (<0x16> 03 04 00 00 00 00 00 00 00 93 04 03 00 00 00 00 00 00 00 00 93 04 ) -; [0x0000000000000004], piece 0x00000004, [0x0000000000000000], piece 0x00000004 -; CHECK-NOT: DW_TAG -; CHECK: DW_TAG -; CHECK: DW_TAG_variable -; CHECK-NEXT: DW_AT_name {{.*}}"part_const" -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_location [DW_FORM_exprloc] (<0x10> 03 08 00 00 00 00 00 00 00 93 04 10 02 9f 93 04 ) -; [0x0000000000000008], piece 0x00000004, constu 0x00000002, stack-value, piece 0x00000004 -; CHECK-NOT: DW_TAG -; CHECK: DW_TAG_variable -; CHECK-NEXT: DW_AT_name {{.*}}"full_const" -; CHECK-NOT: DW_TAG -; CHECK: DW_AT_location [DW_FORM_exprloc] (<0xa> 10 01 9f 93 04 10 02 9f 93 04 ) -; constu 0x00000001, stack-value, piece 0x00000004, constu 0x00000002, stack-value, piece 0x00000004 -; CHECK-NOT: DW_TAG -@point.y = global i32 2, align 4, !dbg !13 -@point.x = global i32 1, align 4, !dbg !12 - -@part_const.x = global i32 1, align 4, !dbg !15 - -!llvm.dbg.cu = !{!1} -!llvm.module.flags = !{!10, !11} - -!0 = distinct !DIGlobalVariable(name: "point", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) -!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: !4) -!2 = !DIFile(filename: "g.c", directory: "/") -!3 = !{} -!4 = !{!12, !13, !14, !15, !17, !18} -!5 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !2, line: 1, size: 64, elements: !6) -!6 = !{!7, !9} -!7 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !5, file: !2, line: 1, baseType: !8, size: 32) -!8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!9 = !DIDerivedType(tag: DW_TAG_member, name: "y", scope: !5, file: !2, line: 1, baseType: !8, size: 32, offset: 32) -!10 = !{i32 2, !"Dwarf Version", i32 4} -!11 = !{i32 2, !"Debug Info Version", i32 3} -!12 = !DIGlobalVariableExpression(var: !0, expr: !DIExpression(DW_OP_LLVM_fragment, 0, 32)) -!13 = !DIGlobalVariableExpression(var: !0, expr: !DIExpression(DW_OP_LLVM_fragment, 32, 32)) -!14 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression(DW_OP_LLVM_fragment, 0, 32)) -!15 = !DIGlobalVariableExpression(var: !16, expr: !DIExpression(DW_OP_constu, 2, - DW_OP_stack_value, DW_OP_LLVM_fragment, 32, 32)) -!16 = distinct !DIGlobalVariable(name: "part_const", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) -!17 = !DIGlobalVariableExpression(var: !19, expr: !DIExpression(DW_OP_constu, 1, - DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 32)) -!18 = !DIGlobalVariableExpression(var: !19, expr: !DIExpression(DW_OP_constu, 2, - DW_OP_stack_value, DW_OP_LLVM_fragment, 32, 32)) -!19 = distinct !DIGlobalVariable(name: "full_const", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) diff --git a/llvm/test/DebugInfo/X86/stack-value-dwarf4.ll b/llvm/test/DebugInfo/X86/stack-value-dwarf4.ll index 5f9213f..ad2aeb2 100644 --- a/llvm/test/DebugInfo/X86/stack-value-dwarf4.ll +++ b/llvm/test/DebugInfo/X86/stack-value-dwarf4.ll @@ -25,14 +25,13 @@ target triple = "x86_64-unknown-linux-gnu" !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang", file: !4, globals: !1, emissionKind: FullDebug) !1 = !{!2} -!2 = !DIGlobalVariableExpression(var: !8, expr: !3) +!2 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true, expr: !3, type: !5) !3 = !DIExpression(DW_OP_constu, 4, DW_OP_constu, 4, DW_OP_stack_value) !4 = !DIFile(filename: "", directory: "/") !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !6 = !{i32 2, !"Dwarf Version", i32 2} !7 = !{i32 2, !"Debug Info Version", i32 3} -!8 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true, type: !5) !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!6, !7} diff --git a/llvm/test/DebugInfo/X86/static_member_array.ll b/llvm/test/DebugInfo/X86/static_member_array.ll index e3afb8e..7377ab3 100644 --- a/llvm/test/DebugInfo/X86/static_member_array.ll +++ b/llvm/test/DebugInfo/X86/static_member_array.ll @@ -48,12 +48,12 @@ target triple = "x86_64-apple-macosx10.12.0" !llvm.module.flags = !{!17, !18, !19} !llvm.ident = !{!20} -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "fully_specified", linkageName: "_ZN1A15fully_specifiedE", scope: !1, file: !2, line: 7, type: !7, isLocal: false, isDefinition: true, declaration: !13)) +!0 = distinct !DIGlobalVariable(name: "fully_specified", linkageName: "_ZN1A15fully_specifiedE", scope: !1, file: !2, line: 7, type: !7, isLocal: false, isDefinition: true, declaration: !13) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "static_member_array.cpp", directory: "/Volumes/Data/radar/28706946") !3 = !{} !4 = !{!0, !5} -!5 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "smem", linkageName: "_ZN1A4smemE", scope: !1, file: !2, line: 8, type: !6, isLocal: false, isDefinition: true, declaration: !10)) +!5 = distinct !DIGlobalVariable(name: "smem", linkageName: "_ZN1A4smemE", scope: !1, file: !2, line: 8, type: !6, isLocal: false, isDefinition: true, declaration: !10) !6 = !DICompositeType(tag: DW_TAG_array_type, baseType: !7, size: 128, elements: !8) !7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) !8 = !{!9} diff --git a/llvm/test/DebugInfo/X86/stringpool.ll b/llvm/test/DebugInfo/X86/stringpool.ll index 43636d1..87d1c61 100644 --- a/llvm/test/DebugInfo/X86/stringpool.ll +++ b/llvm/test/DebugInfo/X86/stringpool.ll @@ -9,7 +9,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1 (trunk 143009)", isOptimized: true, emissionKind: FullDebug, file: !8, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "yyyy", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "yyyy", line: 1, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "z.c", directory: "/home/nicholas") !7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !8 = !DIFile(filename: "z.c", directory: "/home/nicholas") diff --git a/llvm/test/DebugInfo/X86/struct-loc.ll b/llvm/test/DebugInfo/X86/struct-loc.ll index 641d70c..b3acab0 100644 --- a/llvm/test/DebugInfo/X86/struct-loc.ll +++ b/llvm/test/DebugInfo/X86/struct-loc.ll @@ -17,7 +17,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.1 (trunk 152837) (llvm/trunk 152845)", isOptimized: false, emissionKind: FullDebug, file: !11, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", line: 5, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "f", line: 5, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "struct_bug.c", directory: "/Users/echristo/tmp") !7 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", line: 1, size: 32, align: 32, file: !11, elements: !8) !8 = !{!9} diff --git a/llvm/test/DebugInfo/X86/template.ll b/llvm/test/DebugInfo/X86/template.ll index bc5eea9..d17874d 100644 --- a/llvm/test/DebugInfo/X86/template.ll +++ b/llvm/test/DebugInfo/X86/template.ll @@ -119,8 +119,8 @@ attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe !28 = distinct !DISubprogram(name: "", linkageName: "_GLOBAL__sub_I_template.cpp", isLocal: true, isDefinition: true, flags: DIFlagArtificial, isOptimized: false, unit: !0, file: !1, scope: !11, type: !29, variables: !2) !29 = !DISubroutineType(types: !2) !30 = !{!31, !32} -!31 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "glbl", line: 3, isLocal: false, isDefinition: true, scope: null, file: !11, type: !7)) -!32 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "n", line: 4, isLocal: false, isDefinition: true, scope: null, file: !11, type: !8)) +!31 = !DIGlobalVariable(name: "glbl", line: 3, isLocal: false, isDefinition: true, scope: null, file: !11, type: !7) +!32 = !DIGlobalVariable(name: "n", line: 4, isLocal: false, isDefinition: true, scope: null, file: !11, type: !8) !33 = !{i32 2, !"Dwarf Version", i32 4} !34 = !{i32 2, !"Debug Info Version", i32 3} !35 = !{!"clang version 3.6.0 (trunk 224394) (llvm/trunk 224384)"} diff --git a/llvm/test/DebugInfo/X86/tls.ll b/llvm/test/DebugInfo/X86/tls.ll index a251c63..40c356b 100644 --- a/llvm/test/DebugInfo/X86/tls.ll +++ b/llvm/test/DebugInfo/X86/tls.ll @@ -123,8 +123,8 @@ attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointe !10 = !DITemplateValueParameter(tag: DW_TAG_template_value_parameter, name: "I", type: !11, value: i32* @glbl) !11 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !8) !12 = !{!13, !14} -!13 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8)) -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "glbl", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8)) +!13 = !DIGlobalVariable(name: "tls", line: 1, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8) +!14 = !DIGlobalVariable(name: "glbl", line: 2, isLocal: false, isDefinition: true, scope: null, file: !5, type: !8) !15 = !{i32 2, !"Dwarf Version", i32 4} !16 = !{i32 1, !"Debug Info Version", i32 3} !17 = !{!"clang version 3.5 "} diff --git a/llvm/test/DebugInfo/X86/type_units_with_addresses.ll b/llvm/test/DebugInfo/X86/type_units_with_addresses.ll index 5a1e16a..e145626 100644 --- a/llvm/test/DebugInfo/X86/type_units_with_addresses.ll +++ b/llvm/test/DebugInfo/X86/type_units_with_addresses.ll @@ -140,12 +140,12 @@ !25 = !{!26} !26 = !DITemplateValueParameter(tag: DW_TAG_template_value_parameter, name: "T", type: !7, value: i32* @i) !27 = !{!28, !30, !31, !32, !33} -!28 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", line: 1, isLocal: false, isDefinition: true, scope: null, file: !29, type: !8)) +!28 = !DIGlobalVariable(name: "i", line: 1, isLocal: false, isDefinition: true, scope: null, file: !29, type: !8) !29 = !DIFile(filename: "tu.cpp", directory: "/tmp/dbginfo") -!30 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 6, isLocal: false, isDefinition: true, scope: null, file: !29, type: !4)) -!31 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s2", line: 15, isLocal: false, isDefinition: true, scope: null, file: !29, type: !9)) -!32 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s3", line: 27, isLocal: false, isDefinition: true, scope: null, file: !29, type: !13)) -!33 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "s4", line: 39, isLocal: false, isDefinition: true, scope: null, file: !29, type: !19)) +!30 = !DIGlobalVariable(name: "a", line: 6, isLocal: false, isDefinition: true, scope: null, file: !29, type: !4) +!31 = !DIGlobalVariable(name: "s2", line: 15, isLocal: false, isDefinition: true, scope: null, file: !29, type: !9) +!32 = !DIGlobalVariable(name: "s3", line: 27, isLocal: false, isDefinition: true, scope: null, file: !29, type: !13) +!33 = !DIGlobalVariable(name: "s4", line: 39, isLocal: false, isDefinition: true, scope: null, file: !29, type: !19) !34 = !{i32 2, !"Dwarf Version", i32 4} !35 = !{i32 1, !"Debug Info Version", i32 3} !36 = !{!"clang version 3.5.0 "} diff --git a/llvm/test/DebugInfo/X86/unattached-global.ll b/llvm/test/DebugInfo/X86/unattached-global.ll index 5d4be737..d271e4e 100644 --- a/llvm/test/DebugInfo/X86/unattached-global.ll +++ b/llvm/test/DebugInfo/X86/unattached-global.ll @@ -1,23 +1,19 @@ -; RUN: %llc_dwarf -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s +; RUN: llc -o - %s | FileCheck %s target datalayout = "e-p:64:64" target triple = "x86_64-unknown-linux-gnu" -; CHECK: DW_TAG_variable -; CHECK: DW_AT_name {{.*}}"a" -; CHECK-NOT: DW_AT_location -; CHECK: DW_TAG +; CHECK: .byte 0 # DW_AT_location -!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang", file: !5, globals: !1, emissionKind: FullDebug) +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang", file: !4, globals: !1, emissionKind: FullDebug) !1 = !{!2} -!2 = !DIGlobalVariableExpression(var: !3, expr: !4) -!3 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true, type: !6) -!4 = !DIExpression(DW_OP_plus, 4) -!5 = !DIFile(filename: "", directory: "/") -!6 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!2 = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true, expr: !3, type: !5) +!3 = !DIExpression(DW_OP_plus, 4) +!4 = !DIFile(filename: "", directory: "/") +!5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!7 = !{i32 2, !"Dwarf Version", i32 2} -!8 = !{i32 2, !"Debug Info Version", i32 3} +!6 = !{i32 2, !"Dwarf Version", i32 2} +!7 = !{i32 2, !"Debug Info Version", i32 3} !llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!7, !8} +!llvm.module.flags = !{!6, !7} diff --git a/llvm/test/DebugInfo/X86/union-template.ll b/llvm/test/DebugInfo/X86/union-template.ll index 6b9398b..437d616 100644 --- a/llvm/test/DebugInfo/X86/union-template.ll +++ b/llvm/test/DebugInfo/X86/union-template.ll @@ -38,7 +38,7 @@ attributes #1 = { nounwind readnone } !7 = !{null, !8} !8 = !DIBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float) !9 = !{!10} -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "f", linkageName: "_ZN7PR156371fE", line: 6, isLocal: false, isDefinition: true, scope: !5, file: !11, type: !12)) +!10 = !DIGlobalVariable(name: "f", linkageName: "_ZN7PR156371fE", line: 6, isLocal: false, isDefinition: true, scope: !5, file: !11, type: !12) !11 = !DIFile(filename: "foo.cc", directory: "/usr/local/google/home/echristo/tmp") !12 = !DICompositeType(tag: DW_TAG_union_type, name: "Value", line: 2, size: 32, align: 32, file: !1, scope: !5, elements: !13, templateParams: !21) !13 = !{!14, !16} diff --git a/llvm/test/DebugInfo/X86/vector.ll b/llvm/test/DebugInfo/X86/vector.ll index e755ca4..3bd5e6f 100644 --- a/llvm/test/DebugInfo/X86/vector.ll +++ b/llvm/test/DebugInfo/X86/vector.ll @@ -15,7 +15,7 @@ !0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.3 (trunk 171825) (llvm/trunk 171822)", isOptimized: false, emissionKind: FullDebug, file: !12, enums: !1, retainedTypes: !1, globals: !3, imports: !1) !1 = !{} !3 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 3, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7)) +!5 = !DIGlobalVariable(name: "a", line: 3, isLocal: false, isDefinition: true, scope: null, file: !6, type: !7) !6 = !DIFile(filename: "foo.c", directory: "/Users/echristo") !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "v4si", line: 1, file: !12, baseType: !8) !8 = !DICompositeType(tag: DW_TAG_array_type, size: 128, align: 128, flags: DIFlagVector, baseType: !9, elements: !10) diff --git a/llvm/test/Instrumentation/AddressSanitizer/debug-info-global-var.ll b/llvm/test/Instrumentation/AddressSanitizer/debug-info-global-var.ll index c30651a..2848538 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/debug-info-global-var.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/debug-info-global-var.ll @@ -10,10 +10,9 @@ target triple = "x86_64-apple-macosx10.12.0" !llvm.module.flags = !{!10, !11, !12} !llvm.ident = !{!13} -; Should not have an expression: -; CHECK: ![[GV]] = !DIGlobalVariableExpression(var: ![[GVAR:.*]]) -; CHECK: ![[GVAR]] = !DIGlobalVariable(name: "version" -!0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "version", scope: !1, file: !2, line: 2, type: !5, isLocal: false, isDefinition: true)) +; CHECK: ![[GV]] = distinct !DIGlobalVariable(name: "version" +; CHECK-NOT: expr: +!0 = distinct !DIGlobalVariable(name: "version", scope: !1, file: !2, line: 2, type: !5, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang version 4.0.0 (trunk 281923) (llvm/trunk 281916)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "version.c", directory: "/Volumes/Fusion/Data/radar/24899262") !3 = !{} diff --git a/llvm/test/LTO/X86/Inputs/type-mapping-src.ll b/llvm/test/LTO/X86/Inputs/type-mapping-src.ll index 7019dbb..3a80560 100644 --- a/llvm/test/LTO/X86/Inputs/type-mapping-src.ll +++ b/llvm/test/LTO/X86/Inputs/type-mapping-src.ll @@ -9,7 +9,7 @@ target triple = "x86_64-pc-windows-msvc18.0.0" !llvm.dbg.cu = !{!1} !llvm.module.flags = !{!12} -!0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "bar", linkageName: "bar", scope: !1, file: !2, line: 2, type: !5, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "bar", linkageName: "bar", scope: !1, file: !2, line: 2, type: !5, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "b", directory: "/") !3 = !{} diff --git a/llvm/test/LTO/X86/type-mapping-bug.ll b/llvm/test/LTO/X86/type-mapping-bug.ll index 7df328f..c2aeb88 100644 --- a/llvm/test/LTO/X86/type-mapping-bug.ll +++ b/llvm/test/LTO/X86/type-mapping-bug.ll @@ -36,7 +36,7 @@ target triple = "x86_64-pc-windows-msvc18.0.0" !2 = !DIFile(filename: "a", directory: "/") !3 = !{} !4 = !{!5} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "foo", linkageName: "foo", scope: !1, file: !2, line: 5, type: !6, isLocal: false, isDefinition: true)) +!5 = distinct !DIGlobalVariable(name: "foo", linkageName: "foo", scope: !1, file: !2, line: 5, type: !6, isLocal: false, isDefinition: true) !6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !2, line: 5, size: 8, elements: !7, identifier: ".?AUS@@") !7 = !{!8} !8 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !6, baseType: !9) diff --git a/llvm/test/Linker/2011-08-04-Metadata.ll b/llvm/test/Linker/2011-08-04-Metadata.ll index 95eb0c6..bbcc3fc 100644 --- a/llvm/test/Linker/2011-08-04-Metadata.ll +++ b/llvm/test/Linker/2011-08-04-Metadata.ll @@ -5,12 +5,10 @@ ; CHECK: @x = internal global i32 0, align 4, !dbg [[DI1:![0-9]+]] ; CHECK: @x.1 = internal global i32 0, align 4, !dbg [[DI2:![0-9]+]] -; CHECK: [[DI1]] = !DIGlobalVariableExpression(var: [[V1:.*]]) -; CHECK: [[V1]] = !DIGlobalVariable(name: "x", -; CHECK-NOT: linkageName: -; CHECK: [[DI2]] = !DIGlobalVariableExpression(var: [[V2:.*]]) -; CHECK: [[V2]] = !DIGlobalVariable(name: "x", -; CHECK-NOT: linkageName: +; CHECK: [[DI1]] = !DIGlobalVariable(name: "x", +; CHECK-NOT: linkageName: +; CHECK: [[DI2]] = !DIGlobalVariable(name: "x", +; CHECK-NOT: linkageName: target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-macosx10.7.0" @@ -30,7 +28,7 @@ entry: !2 = !DIFile(filename: "/tmp/one.c", directory: "/Volumes/Lalgate/Slate/D") !3 = !DISubroutineType(types: !4) !4 = !{null} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 2, isLocal: true, isDefinition: true, scope: !0, file: !2, type: !6)) +!5 = !DIGlobalVariable(name: "x", line: 2, isLocal: true, isDefinition: true, scope: !0, file: !2, type: !6) !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !DILocation(line: 3, column: 14, scope: !8) !8 = distinct !DILexicalBlock(line: 3, column: 12, file: !9, scope: !1) diff --git a/llvm/test/Linker/2011-08-04-Metadata2.ll b/llvm/test/Linker/2011-08-04-Metadata2.ll index 34bd088..f15a841 100644 --- a/llvm/test/Linker/2011-08-04-Metadata2.ll +++ b/llvm/test/Linker/2011-08-04-Metadata2.ll @@ -22,7 +22,7 @@ entry: !2 = !DIFile(filename: "/tmp/two.c", directory: "/Volumes/Lalgate/Slate/D") !3 = !DISubroutineType(types: !4) !4 = !{null} -!5 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 1, isLocal: true, isDefinition: true, scope: !0, file: !2, type: !6)) +!5 = !DIGlobalVariable(name: "x", line: 1, isLocal: true, isDefinition: true, scope: !0, file: !2, type: !6) !6 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !7 = !DILocation(line: 2, column: 14, scope: !8) !8 = distinct !DILexicalBlock(line: 2, column: 12, file: !9, scope: !1) diff --git a/llvm/test/Linker/debug-info-global-var.ll b/llvm/test/Linker/debug-info-global-var.ll index 196e574..a5bff74 100644 --- a/llvm/test/Linker/debug-info-global-var.ll +++ b/llvm/test/Linker/debug-info-global-var.ll @@ -10,9 +10,8 @@ target triple = "x86_64-apple-macosx10.12.0" !llvm.module.flags = !{!6, !7, !8} !llvm.ident = !{!9} -; CHECK: ![[G]] = !DIGlobalVariableExpression(var: ![[GVAR:.*]]) -; CHECK: ![[GVAR]] = distinct !DIGlobalVariable(name: "g" -!0 = !DIGlobalVariableExpression(var: !10) +; CHECK: ![[G]] = distinct !DIGlobalVariable(name: "g" +!0 = distinct !DIGlobalVariable(name: "g", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "debug-info-global-var.c", directory: "/") !3 = !{} @@ -22,4 +21,3 @@ target triple = "x86_64-apple-macosx10.12.0" !7 = !{i32 2, !"Debug Info Version", i32 3} !8 = !{i32 1, !"PIC Level", i32 2} !9 = !{!"clang version 4.0.0 (trunk 286129) (llvm/trunk 286128)"} -!10 = distinct !DIGlobalVariable(name: "g", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) diff --git a/llvm/test/Linker/odr.ll b/llvm/test/Linker/odr.ll index cca42d6..a3ca855f 100644 --- a/llvm/test/Linker/odr.ll +++ b/llvm/test/Linker/odr.ll @@ -14,5 +14,5 @@ !3 = distinct !DICompositeType(tag: DW_TAG_class_type, scope: !4, file: !1, identifier: "zed") !4 = distinct !DISubprogram(name: "b", scope: null, isLocal: false, isDefinition: true, isOptimized: false, unit: !0) !5 = !{!6} -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c", scope: null, isLocal: false, isDefinition: true)) +!6 = distinct !DIGlobalVariable(name: "c", scope: null, isLocal: false, isDefinition: true) !7 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/Linker/only-needed-debug-metadata.ll b/llvm/test/Linker/only-needed-debug-metadata.ll index 216c20c..2d1949f 100644 --- a/llvm/test/Linker/only-needed-debug-metadata.ll +++ b/llvm/test/Linker/only-needed-debug-metadata.ll @@ -38,8 +38,8 @@ define i32 @unused() !dbg !10 { !11 = !DISubroutineType(types: !12) !12 = !{!7} !13 = !{!14, !15} -!14 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "X", scope: !0, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true)) -!15 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "U", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true)) +!14 = !DIGlobalVariable(name: "X", scope: !0, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true) +!15 = !DIGlobalVariable(name: "U", scope: !0, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true) !16 = !{i32 2, !"Dwarf Version", i32 4} !17 = !{i32 2, !"Debug Info Version", i32 3} !18 = !{!"clang version 3.8.0 (trunk 251407) (llvm/trunk 251401)"} diff --git a/llvm/test/ThinLTO/X86/Inputs/crash_debuginfo.ll b/llvm/test/ThinLTO/X86/Inputs/crash_debuginfo.ll index fa5945a..2f70787 100644 --- a/llvm/test/ThinLTO/X86/Inputs/crash_debuginfo.ll +++ b/llvm/test/ThinLTO/X86/Inputs/crash_debuginfo.ll @@ -17,7 +17,7 @@ define void @bar(i32 %arg) { !1 = !DIFile(filename: "2.cpp", directory: "some_dir") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a_global", linkageName: "a_global", scope: null, line: 52, type: !5, isLocal: true, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "a_global", linkageName: "a_global", scope: null, line: 52, type: !5, isLocal: true, isDefinition: true) !5 = !DISubroutineType(types: !2) !6 = !{i32 2, !"Debug Info Version", i32 3} !7 = distinct !DILocation(line: 728, column: 71, scope: !8, inlinedAt: !14) diff --git a/llvm/test/ThinLTO/X86/crash_debuginfo.ll b/llvm/test/ThinLTO/X86/crash_debuginfo.ll index ba35315..b906357 100644 --- a/llvm/test/ThinLTO/X86/crash_debuginfo.ll +++ b/llvm/test/ThinLTO/X86/crash_debuginfo.ll @@ -29,7 +29,7 @@ declare void @bar(i32) !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "Apple LLVM version 8.0.0 (clang-800.0.24.1)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, globals: !2) !1 = !DIFile(filename: "1.cpp", directory: "/another_dir") !2 = !{!3} -!3 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "_", linkageName: "some_global", scope: null, file: !1, line: 20, type: !4, isLocal: true, isDefinition: true)) +!3 = distinct !DIGlobalVariable(name: "_", linkageName: "some_global", scope: null, file: !1, line: 20, type: !4, isLocal: true, isDefinition: true) !4 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "slice_nil", file: !1, line: 13, size: 64, align: 64, elements: !5, identifier: "_ZTSN5boost6python3api9slice_nilE") !5 = !{} !6 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/ThinLTO/X86/debuginfo-cu-import.ll b/llvm/test/ThinLTO/X86/debuginfo-cu-import.ll index 23602e1..f4846ad 100644 --- a/llvm/test/ThinLTO/X86/debuginfo-cu-import.ll +++ b/llvm/test/ThinLTO/X86/debuginfo-cu-import.ll @@ -77,4 +77,4 @@ entry: !35 = !{!36} !36 = !DICompositeType(tag: DW_TAG_structure_type, name: "Base", line: 1, size: 32, align: 32, file: !1, elements: !30, identifier: "_ZTS4Base") !37 = !{!38} -!38 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "version", scope: !5, file: !1, line: 2, type: !36, isLocal: false, isDefinition: true)) +!38 = !DIGlobalVariable(name: "version", scope: !5, file: !1, line: 2, type: !36, isLocal: false, isDefinition: true) diff --git a/llvm/test/Transforms/GCOVProfiling/return-block.ll b/llvm/test/Transforms/GCOVProfiling/return-block.ll index 0170569..51dde57 100644 --- a/llvm/test/Transforms/GCOVProfiling/return-block.ll +++ b/llvm/test/Transforms/GCOVProfiling/return-block.ll @@ -61,7 +61,7 @@ attributes #2 = { nounwind } !6 = !DISubroutineType(types: !7) !7 = !{null} !8 = !{!9} -!9 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "A", line: 3, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10)) +!9 = !DIGlobalVariable(name: "A", line: 3, isLocal: false, isDefinition: true, scope: null, file: !5, type: !10) !10 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !11 = !{i32 2, !"Dwarf Version", i32 4} !12 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/Transforms/GlobalMerge/debug-info.ll b/llvm/test/Transforms/GlobalMerge/debug-info.ll index 2ec7b11..04f81b5 100644 --- a/llvm/test/Transforms/GlobalMerge/debug-info.ll +++ b/llvm/test/Transforms/GlobalMerge/debug-info.ll @@ -14,14 +14,12 @@ define void @use1() { ret void } -; CHECK: [[A]] = !DIGlobalVariableExpression(var: [[AVAR:![0-9]+]]) -; CHECK: [[AVAR]] = !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true) -; CHECK: [[B]] = !DIGlobalVariableExpression(var: [[BVAR:![0-9]+]], expr: [[EXPR:![0-9]+]]) -; CHECK: [[BVAR]] = !DIGlobalVariable(name: "b", scope: null, isLocal: false, isDefinition: true) +; CHECK: [[A]] = distinct !DIGlobalVariable(name: "a", scope: null, isLocal: false, isDefinition: true) +; CHECK: [[B]] = distinct !DIGlobalVariable(name: "b", scope: null, isLocal: false, isDefinition: true, expr: [[EXPR:![0-9]+]]) ; CHECK: [[EXPR]] = !DIExpression(DW_OP_plus, 4) !llvm.module.flags = !{!2, !3} -!0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a")) -!1 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b")) +!0 = distinct !DIGlobalVariable(name: "a") +!1 = distinct !DIGlobalVariable(name: "b") !2 = !{i32 2, !"Debug Info Version", i32 3} !3 = !{i32 2, !"Dwarf Version", i32 4} diff --git a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll b/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll index ed77e31..587ec9b 100644 --- a/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll +++ b/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll @@ -55,7 +55,7 @@ return: ; preds = %bb2 declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnone !llvm.dbg.cu = !{!1} -!0 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "Stop", line: 2, isLocal: true, isDefinition: true, scope: !1, file: !1, type: !2)) +!0 = !DIGlobalVariable(name: "Stop", line: 2, isLocal: true, isDefinition: true, scope: !1, file: !1, type: !2) !1 = distinct !DICompileUnit(language: DW_LANG_C89, producer: "4.2.1 (Based on Apple Inc. build 5658) (LLVM build)", isOptimized: true, emissionKind: FullDebug, file: !20, enums: !21, retainedTypes: !21, globals: !{!0}) !2 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !3 = !DILocalVariable(name: "i", line: 4, arg: 1, scope: !4, file: !1, type: !2) diff --git a/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll b/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll index aeb7e05..78b888f 100644 --- a/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll +++ b/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll @@ -107,8 +107,8 @@ attributes #3 = { noreturn nounwind } !23 = !{null} !24 = distinct !DISubprogram(name: "fn5", linkageName: "_Z3fn5v", line: 13, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 13, file: !5, scope: !16, type: !22, variables: !2) !25 = !{!26, !27} -!26 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !4)) -!27 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !4)) +!26 = !DIGlobalVariable(name: "a", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !4) +!27 = !DIGlobalVariable(name: "b", line: 4, isLocal: false, isDefinition: true, scope: null, file: !16, type: !4) !28 = !{i32 2, !"Dwarf Version", i32 4} !29 = !{i32 2, !"Debug Info Version", i32 3} !30 = !{!"clang version 3.7.0 (trunk 227480) (llvm/trunk 227517)"} diff --git a/llvm/test/Transforms/LoopVectorize/dbg.value.ll b/llvm/test/Transforms/LoopVectorize/dbg.value.ll index b780f36..c5ad195 100644 --- a/llvm/test/Transforms/LoopVectorize/dbg.value.ll +++ b/llvm/test/Transforms/LoopVectorize/dbg.value.ll @@ -54,12 +54,12 @@ attributes #1 = { nounwind readnone } !9 = !DILocalVariable(name: "i", line: 6, scope: !10, file: !4, type: !7) !10 = distinct !DILexicalBlock(line: 6, column: 0, file: !25, scope: !3) !11 = !{!12, !16, !17} -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "A", line: 1, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13)) +!12 = !DIGlobalVariable(name: "A", line: 1, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13) !13 = !DICompositeType(tag: DW_TAG_array_type, size: 32768, align: 32, baseType: !7, elements: !14) !14 = !{!15} !15 = !{i32 786465, i64 0, i64 1024} -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "B", line: 2, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13)) -!17 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "C", line: 3, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13)) +!16 = !DIGlobalVariable(name: "B", line: 2, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13) +!17 = !DIGlobalVariable(name: "C", line: 3, isLocal: false, isDefinition: true, scope: null, file: !4, type: !13) !18 = !DILocation(line: 6, scope: !10) !19 = !DILocation(line: 7, scope: !20) !20 = distinct !DILexicalBlock(line: 6, column: 0, file: !25, scope: !10) diff --git a/llvm/test/Transforms/SampleProfile/cov-zero-samples.ll b/llvm/test/Transforms/SampleProfile/cov-zero-samples.ll index 9ec87ef..9ffa8ca 100644 --- a/llvm/test/Transforms/SampleProfile/cov-zero-samples.ll +++ b/llvm/test/Transforms/SampleProfile/cov-zero-samples.ll @@ -98,7 +98,7 @@ declare i32 @printf(i8*, ...) !9 = !DISubroutineType(types: !10) !10 = !{!7} !11 = !{!12} -!12 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "N", scope: !0, file: !1, line: 3, type: !13, isLocal: false, isDefinition: true)) +!12 = !DIGlobalVariable(name: "N", scope: !0, file: !1, line: 3, type: !13, isLocal: false, isDefinition: true) !13 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !14) !14 = !DIBasicType(name: "long long int", size: 64, align: 64, encoding: DW_ATE_signed) !15 = !{i32 2, !"Dwarf Version", i32 4} diff --git a/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll b/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll index d2da839..94e32de 100644 --- a/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll +++ b/llvm/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll @@ -46,13 +46,13 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #4 !1 = !DIFile(filename: "csmith107.i.c", directory: "/tmp") !2 = !{} !3 = !{!4, !6, !10} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: null, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true)) +!4 = !DIGlobalVariable(name: "a", scope: null, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 16, align: 16, encoding: DW_ATE_signed) -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: null, file: !1, line: 3, type: !7, isLocal: false, isDefinition: true)) +!6 = !DIGlobalVariable(name: "b", scope: null, file: !1, line: 3, type: !7, isLocal: false, isDefinition: true) !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !1, line: 1, baseType: !8) !8 = !DIDerivedType(tag: DW_TAG_typedef, name: "__u32_t", file: !1, baseType: !9) !9 = !DIBasicType(name: "unsigned long", size: 32, align: 16, encoding: DW_ATE_unsigned) -!10 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "c", scope: null, file: !1, line: 4, type: !11, isLocal: false, isDefinition: true)) +!10 = !DIGlobalVariable(name: "c", scope: null, file: !1, line: 4, type: !11, isLocal: false, isDefinition: true) !11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 16, align: 16) !12 = !{i32 2, !"Dwarf Version", i32 4} !13 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll b/llvm/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll index 463064a..0d08627 100644 --- a/llvm/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll +++ b/llvm/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll @@ -23,7 +23,7 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !5 = !DILocalVariable(name: "y", line: 3, scope: !6, file: !1, type: !7) !6 = distinct !DILexicalBlock(line: 2, column: 0, file: !12, scope: !0) !7 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!8 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "x", line: 1, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !7)) +!8 = !DIGlobalVariable(name: "x", line: 1, isLocal: false, isDefinition: true, scope: !1, file: !1, type: !7) !9 = !{i32 0} !10 = !DILocation(line: 3, scope: !6) !11 = !DILocation(line: 4, scope: !6) diff --git a/llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll b/llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll index 69e4f26..4e454ba 100644 --- a/llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll +++ b/llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll @@ -13,7 +13,7 @@ entry: !3 = !DISubroutineType(types: !4) !4 = !{!5} !5 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) -!6 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "i", linkageName: "i", line: 2, isLocal: true, isDefinition: true, scope: !1, file: !1, type: !7)) +!6 = !DIGlobalVariable(name: "i", linkageName: "i", line: 2, isLocal: true, isDefinition: true, scope: !1, file: !1, type: !7) !7 = !DIDerivedType(tag: DW_TAG_const_type, file: !10, scope: !1, baseType: !5) !8 = !DILocation(line: 3, column: 13, scope: !9) !9 = distinct !DILexicalBlock(line: 3, column: 11, file: !10, scope: !0) diff --git a/llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll b/llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll index a29427e..2116db4 100644 --- a/llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll +++ b/llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll @@ -46,8 +46,8 @@ attributes #2 = { nounwind readonly ssp } !13 = !DILocalVariable(name: "bb", line: 5, scope: !14, file: !5, type: !9) !14 = distinct !DILexicalBlock(line: 5, column: 0, file: !1, scope: !3) !15 = !DILocalVariable(name: "i", line: 7, arg: 1, scope: !10, file: !5, type: !9) -!16 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "abcd", line: 2, isLocal: true, isDefinition: true, scope: !5, file: !5, type: !9)) -!17 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "xyz", line: 3, isLocal: false, isDefinition: true, scope: !5, file: !5, type: !9)) +!16 = !DIGlobalVariable(name: "abcd", line: 2, isLocal: true, isDefinition: true, scope: !5, file: !5, type: !9) +!17 = !DIGlobalVariable(name: "xyz", line: 3, isLocal: false, isDefinition: true, scope: !5, file: !5, type: !9) !18 = !DILocation(line: 6, scope: !19) !19 = distinct !DILexicalBlock(line: 6, column: 0, file: !1, scope: !6) !20 = !DILocation(line: 7, scope: !10) diff --git a/llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-containingtypes.ll b/llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-containingtypes.ll index f21710a..6c6b499 100644 --- a/llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-containingtypes.ll +++ b/llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-containingtypes.ll @@ -51,7 +51,7 @@ attributes #2 = { nounwind } ; CHECK-NEG-NOT: !DI{{Basic|Composite|Derived}}Type -!0 = distinct !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "b", scope: !1, file: !2, line: 5, type: !5, isLocal: false, isDefinition: true)) +!0 = distinct !DIGlobalVariable(name: "b", scope: !1, file: !2, line: 5, type: !5, isLocal: false, isDefinition: true) !1 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 4.0.0 (trunk 282583) (llvm/trunk 282611)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4) !2 = !DIFile(filename: "t.cpp", directory: "/") !3 = !{} diff --git a/llvm/test/Verifier/diglobalvariable.ll b/llvm/test/Verifier/diglobalvariable.ll deleted file mode 100644 index 3b5b79d..0000000 --- a/llvm/test/Verifier/diglobalvariable.ll +++ /dev/null @@ -1,14 +0,0 @@ -; RUN: not opt -S <%s 2>&1| FileCheck %s - -; CHECK: !dbg attachment of global variable must be a DIGlobalVariableExpression -@g = common global i32 0, align 4, !dbg !0 - -!llvm.dbg.cu = !{!1} -!llvm.module.flags = !{!6, !7} - -!0 = distinct !DIGlobalVariable(name: "g", scope: !1, file: !2, line: 1, type: !5, isLocal: false, isDefinition: true) -!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, emissionKind: FullDebug) -!2 = !DIFile(filename: "a.c", directory: "/") -!5 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!6 = !{i32 2, !"Dwarf Version", i32 4} -!7 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll b/llvm/test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll index eff24c0..461db5a 100644 --- a/llvm/test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll +++ b/llvm/test/tools/llvm-objdump/Hexagon/source-interleave-hexagon.ll @@ -45,7 +45,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "source-interleave-hexagon.c", directory: "SRC_COMPDIR") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !6 = !{i32 2, !"Dwarf Version", i32 4} !7 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll b/llvm/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll index 63d11b3..09f1636 100644 --- a/llvm/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll +++ b/llvm/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll @@ -46,7 +46,7 @@ attributes #1 = { nounwind readnone } !1 = !DIFile(filename: "source-interleave-x86_64.c", directory: "SRC_COMPDIR") !2 = !{} !3 = !{!4} -!4 = !DIGlobalVariableExpression(var: !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true)) +!4 = distinct !DIGlobalVariable(name: "a", scope: !0, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true) !5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) !6 = !{i32 2, !"Dwarf Version", i32 4} !7 = !{i32 2, !"Debug Info Version", i32 3} diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp index 4ee931d..ab6785c 100644 --- a/llvm/unittests/IR/MetadataTest.cpp +++ b/llvm/unittests/IR/MetadataTest.cpp @@ -1828,13 +1828,16 @@ TEST_F(DIGlobalVariableTest, get) { DIType *Type = getDerivedType(); bool IsLocalToUnit = false; bool IsDefinition = true; + auto *Expr = DIExpression::get(Context, {1, 2}); + auto *Expr2 = DIExpression::get(Context, {1, 2, 3}); DIDerivedType *StaticDataMemberDeclaration = cast(getDerivedType()); uint32_t AlignInBits = 8; auto *N = DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits); + Expr, StaticDataMemberDeclaration, + AlignInBits); EXPECT_EQ(dwarf::DW_TAG_variable, N->getTag()); EXPECT_EQ(Scope, N->getScope()); EXPECT_EQ(Name, N->getName()); @@ -1844,88 +1847,68 @@ TEST_F(DIGlobalVariableTest, get) { EXPECT_EQ(Type, N->getType()); EXPECT_EQ(IsLocalToUnit, N->isLocalToUnit()); EXPECT_EQ(IsDefinition, N->isDefinition()); + EXPECT_EQ(Expr, N->getExpr()); EXPECT_EQ(StaticDataMemberDeclaration, N->getStaticDataMemberDeclaration()); EXPECT_EQ(AlignInBits, N->getAlignInBits()); EXPECT_EQ(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, getSubprogram(), Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, "other", LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, "other", File, Line, - Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Type, IsLocalToUnit, IsDefinition, Expr, + StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, getFile(), - Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Line, Type, IsLocalToUnit, IsDefinition, Expr, + StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line + 1, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, getDerivedType(), IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, !IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, !IsDefinition, - StaticDataMemberDeclaration, AlignInBits)); + Expr, StaticDataMemberDeclaration, + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - cast(getDerivedType()), + Expr2, StaticDataMemberDeclaration, AlignInBits)); + EXPECT_NE(N, + DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, + Type, IsLocalToUnit, IsDefinition, Expr, + cast(getDerivedType()), + AlignInBits)); EXPECT_NE(N, DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, + Expr, StaticDataMemberDeclaration, (AlignInBits << 1))); TempDIGlobalVariable Temp = N->clone(); EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp))); } -typedef MetadataTest DIGlobalVariableExpressionTest; - -TEST_F(DIGlobalVariableExpressionTest, get) { - DIScope *Scope = getSubprogram(); - StringRef Name = "name"; - StringRef LinkageName = "linkage"; - DIFile *File = getFile(); - unsigned Line = 5; - DIType *Type = getDerivedType(); - bool IsLocalToUnit = false; - bool IsDefinition = true; - auto *Expr = DIExpression::get(Context, {1, 2}); - auto *Expr2 = DIExpression::get(Context, {1, 2, 3}); - DIDerivedType *StaticDataMemberDeclaration = - cast(getDerivedType()); - uint32_t AlignInBits = 8; - - auto *Var = DIGlobalVariable::get(Context, Scope, Name, LinkageName, File, - Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits); - auto *Var2 = DIGlobalVariable::get(Context, Scope, "other", LinkageName, File, - Line, Type, IsLocalToUnit, IsDefinition, - StaticDataMemberDeclaration, AlignInBits); - auto *N = DIGlobalVariableExpression::get(Context, Var, Expr); - - EXPECT_EQ(Var, N->getVariable()); - EXPECT_EQ(Expr, N->getExpression()); - EXPECT_EQ(N, DIGlobalVariableExpression::get(Context, Var, Expr)); - EXPECT_NE(N, DIGlobalVariableExpression::get(Context, Var2, Expr)); - EXPECT_NE(N, DIGlobalVariableExpression::get(Context, Var, Expr2)); - - TempDIGlobalVariableExpression Temp = N->clone(); - EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp))); -} - typedef MetadataTest DILocalVariableTest; TEST_F(DILocalVariableTest, get) { -- 2.7.4