llvm-project/llvm/test/Linker
Shiva Chen 2c864551df [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.
In order to set breakpoints on labels and list source code around
labels, we need collect debug information for labels, i.e., label
name, the function label belong, line number in the file, and the
address label located. In order to keep these information in LLVM
IR and to allow backend to generate debug information correctly.
We create a new kind of metadata for labels, DILabel. The format
of DILabel is

!DILabel(scope: !1, name: "foo", file: !2, line: 3)

We hope to keep debug information as much as possible even the
code is optimized. So, we create a new kind of intrinsic for label
metadata to avoid the metadata is eliminated with basic block.
The intrinsic will keep existing if we keep it from optimized out.
The format of the intrinsic is

llvm.dbg.label(metadata !1)

It has only one argument, that is the DILabel metadata. The
intrinsic will follow the label immediately. Backend could get the
label metadata through the intrinsic's parameter.

We also create DIBuilder API for labels to be used by Frontend.
Frontend could use createLabel() to allocate DILabel objects, and use
insertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.

Differential Revision: https://reviews.llvm.org/D45024

Patch by Hsiangkai Wang.

llvm-svn: 331841
2018-05-09 02:40:45 +00:00
..
Inputs [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
2002-07-17-GlobalFail.ll
2002-07-17-LinkTest2.ll
2002-08-20-ConstantExpr.ll
2003-01-30-LinkerRename.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
2003-01-30-LinkerTypeRename.ll
2003-04-23-LinkOnceLost.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
2003-04-26-NullPtrLinkProblem.ll
2003-05-15-TypeProblem.ll
2003-05-31-LinkerRename.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
2003-06-02-TypeResolveProblem.ll
2003-06-02-TypeResolveProblem2.ll
2003-08-20-OpaqueTypeResolve.ll
2003-08-23-GlobalVarLinking.ll
2003-08-23-RecursiveOpaqueTypeResolve.ll
2003-08-24-InheritPtrSize.ll
2003-08-28-TypeResolvesGlobal.ll
2003-08-28-TypeResolvesGlobal2.ll
2003-08-28-TypeResolvesGlobal3.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-10-27-LinkOncePromote.ll
2003-11-18-TypeResolution.ll
2004-02-17-WeakStrongLinkage.ll
2004-05-07-TypeResolution1.ll
2004-05-07-TypeResolution2.ll
2004-12-03-DisagreeingType.ll
2005-02-12-ConstantGlobals-2.ll
2005-02-12-ConstantGlobals.ll
2005-12-06-AppendingZeroLengthArrays.ll
2006-01-19-ConstantPacked.ll
2008-03-05-AliasReference.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-03-05-AliasReference2.ll
2008-03-07-DroppedSection_a.ll
2008-03-07-DroppedSection_b.ll
2008-06-13-LinkOnceRedefinition.ll
2008-06-26-AddressSpace.ll
2008-07-06-AliasFnDecl.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-07-06-AliasFnDecl2.ll
2008-07-06-AliasWeakDest.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-07-06-AliasWeakDest2.ll
2009-09-03-mdnode.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2009-09-03-mdnode2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-DebugLoc.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-DebugLoc2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-Metadata.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
2011-08-04-Metadata2.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
2011-08-18-unique-class-type.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-class-type2.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-debug-type.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-18-unique-debug-type2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
AppendingLinkage.ll
AppendingLinkage2.ll
ConstantGlobals.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
DbgDeclare.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
DbgDeclare2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LinkOnce.ll
PR8300.ll
alias-2.ll Fix PR26152. 2016-01-20 22:05:50 +00:00
alias-3.ll IRLinker: fix double scheduling of mapping a global value because of an alias 2016-05-25 21:00:44 +00:00
alias.ll Slit lib/Linker in two. 2015-12-10 14:19:35 +00:00
alignment.ll
apple-version.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
available_externally_a.ll Linker: Move special casing for available_externally in IRMover to clients. NFCI. 2017-02-02 05:12:15 +00:00
available_externally_b.ll
available_externally_over_decl.ll Fix another case where the linkage was not set. 2015-12-10 18:44:26 +00:00
basiclink.ll
broken.ll Don't verify inputs to the Linker if ODR merging. 2016-06-29 18:31:48 +00:00
comdat-rm-dst.ll Drop comdats from the dst module if they are not selected. 2016-03-22 21:35:47 +00:00
comdat.ll
comdat2.ll
comdat4.ll
comdat5.ll
comdat6.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
comdat7.ll
comdat8.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
comdat9.ll Fix lazy linking of comdat members. 2016-03-24 00:06:03 +00:00
comdat10.ll
comdat11.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat12.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat13.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat14.ll ModuleLinker: Do not import linkonce/weak as "external_weak" 2016-04-19 16:11:05 +00:00
comdat15.ll Also copy private linkage globals when needed. 2015-12-02 20:57:33 +00:00
comdat16.ll Fix logic for which symbols to keep with comdats. 2016-03-23 21:16:33 +00:00
comdat_group.ll Pass .ll directly to llvm-link 2015-11-27 23:21:45 +00:00
constructor-comdat.ll Fix logic for which symbols to keep with comdats. 2016-03-23 21:16:33 +00:00
ctors.ll Avoid writing to source directory of tests 2015-11-30 20:36:23 +00:00
ctors2.ll Correctly handle llvm.global_ctors merging. 2015-11-29 03:29:42 +00:00
ctors3.ll Fix another llvm.ctors merging bug. 2015-11-30 18:54:24 +00:00
ctors4.ll Add an interesting case we already get right. 2015-12-02 15:02:43 +00:00
ctors5.ll Change how the linker handles the old llvm.global_ctors. 2015-12-07 13:24:23 +00:00
datalayout.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
debug-info-global-var.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
debug-info-version-a.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
debug-info-version-b.ll
dicompositetype-unique.ll IR: Enable debug info type ODR uniquing for forward decls 2016-04-19 18:00:19 +00:00
distinct-cycles.ll
distinct.ll Restore "Move metadata linking after lazy global materialization/linking." 2015-11-06 17:50:53 +00:00
dllstorage-a.ll
dllstorage-b.ll
drop-debug.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
func-attrs-a.ll
func-attrs-b.ll
funcimport.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
funcimport2.ll ThinLTO/ModuleLinker: add a flag to not always pull-in linkonce when performing importing 2016-04-21 01:59:39 +00:00
funcimport_appending_global.ll Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
funcimport_comdat.ll Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
global_ctors.ll Simplify test. NFC. 2015-12-01 15:46:46 +00:00
ident.ll
inlineasm.ll
internalize-lazy.ll Add a test showing that we internalize lazily linked GVs. 2015-12-08 02:38:14 +00:00
link-arm-and-thumb-module-inline-asm.ll [Linker] Add directives to support mixing ARM/Thumb module-level inline asm. 2017-07-12 11:52:28 +00:00
link-arm-and-thumb.ll [Linker] Remove llc usage from link-arm-and-thumb.ll test case. 2017-06-07 09:59:22 +00:00
link-flags.ll [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
link-global-to-func.ll
link-type-names.ll
linkage.ll
linkage2.ll
linkmdnode.ll
linkmdnode2.ll
linknamedmdnode.ll
linknamedmdnode2.ll
lto-attributes.ll
mdlocation.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
metadata-a.ll
metadata-attach.ll Linker: Remove unnecessary call to copyMetadata in IRLinker::linkGlobalVariable. 2016-11-14 23:18:38 +00:00
metadata-b.ll
metadata-function.ll
metadata-global.ll Remap metadata attached to global variables. 2017-05-04 23:29:39 +00:00
metadata-source.ll [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
metadata-with-global-value-operand.ll IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
module-flags-1-a.ll
module-flags-1-b.ll
module-flags-2-a.ll
module-flags-2-b.ll
module-flags-3-a.ll
module-flags-3-b.ll
module-flags-4-a.ll Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
module-flags-4-b.ll Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
module-flags-5-a.ll
module-flags-5-b.ll
module-flags-6-a.ll
module-flags-6-b.ll
module-flags-7-a.ll
module-flags-7-b.ll
module-flags-8-a.ll
module-flags-8-b.ll
module-flags-dont-change-others.ll
module-flags-pic-1-a.ll [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level 2017-08-21 21:49:13 +00:00
module-flags-pic-2-a.ll Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
multiple-merged-structs.ll
null_mapping_constant.ll ValueMapper: fix assertion when null-mapping a constant for linking metadata 2016-05-28 17:26:03 +00:00
objectivec-class-property-flag-mismatch.ll Fix autoupgrade logic for Objective-C class properties module flag 2016-09-16 00:38:18 +00:00
odr-lambda-1.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
odr.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
only-needed-compiler-used.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-ctors1.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-ctors2.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-debug-metadata.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
only-needed-dtors1.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-dtors2.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-named-metadata.ll Revert obsolete llvm-link -preserve-modules option/test 2016-01-21 14:28:52 +00:00
only-needed-recurse.ll Fix recursive -only-needed. 2016-04-21 14:56:33 +00:00
only-needed-used.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
opaque.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
override-different-linkage.ll
override-with-internal-linkage-2.ll
override-with-internal-linkage.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
override.ll
partial-type-refinement-link.ll
partial-type-refinement.ll
pr21374.ll
pr21494.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
pr22807.ll
pr26037.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr27044.ll Fix another case where we were unconditionally linking linkonce GVs. 2016-03-24 15:23:01 +00:00
prologuedata.ll Make this test less strict. 2015-11-29 14:53:06 +00:00
redefinition.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
replaced-function-matches-first-subprogram.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
subprogram-linkonce-weak.ll [DebugInfo] Support DWARF v5 source code embedding extension 2018-02-23 23:01:06 +00:00
syncscopes.ll Enhance synchscope representation 2017-07-11 22:23:00 +00:00
targettriple.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
testlink.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
thinlto_funcimport_debug.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
transitive-lazy-link.ll
type-unique-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
type-unique-dst-types.ll [IRMover] Add comment and fix test case 2018-01-25 08:35:52 +00:00
type-unique-inheritance.ll
type-unique-name.ll
type-unique-odr-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-odr-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-opaque.ll
type-unique-simple-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple2-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple2-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple2.ll llvm-dwarfdump: Make -brief the default and add a -verbose option instead. 2017-09-11 23:05:20 +00:00
type-unique-src-type.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
type-unique-type-array-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-type-array-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-unrelated.ll
unique-fwd-decl-a.ll
unique-fwd-decl-order.ll
uniqued-distinct-cycles.ll
unnamed-addr-err-a.ll
unnamed-addr-err-b.ll
unnamed-addr1-a.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
unnamed-addr1-b.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
visibility.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
weakextern.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00