1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/test/Assembler
Peter Collingbourne 413c7840e0 IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals.
This change is motivated by an upcoming change to the metadata representation
used for CFI. The indirect function call checker needs type information for
external function declarations in order to correctly generate jump table
entries for such declarations. We currently associate such type information
with declarations using a global metadata node, but I plan [1] to move all
such metadata to global object attachments.

In bitcode, metadata attachments for function declarations appear in the
global metadata block. This seems reasonable to me because I expect metadata
attachments on declarations to be uncommon. In the long term I'd also expect
this to be the case for CFI, because we'd want to use some specialized bitcode
format for this metadata that could be read as part of the ThinLTO thin-link
phase, which would mean that it would not appear in the global metadata block.

To solve the lazy loaded metadata issue I was seeing with D20147, I use the
same bitcode representation for metadata attachments for global variables as I
do for function declarations. Since there's a use case for metadata attachments
in the global metadata block, we might as well use that representation for
global variables as well, at least until we have a mechanism for lazy loading
global variables.

In the assembly format, the metadata attachments appear after the "declare"
keyword in order to avoid a parsing ambiguity.

[1] http://lists.llvm.org/pipermail/llvm-dev/2016-June/100462.html

Differential Revision: http://reviews.llvm.org/D21052

llvm-svn: 273336
2016-06-21 23:42:48 +00:00
..
2002-03-08-NameCollision2.ll
2002-03-08-NameCollision.ll
2002-04-07-HexFloatConstants.ll
2002-04-07-InfConstant.ll
2002-04-29-NameBinding.ll
2002-05-02-InvalidForwardRef.ll
2002-07-14-OpaqueType.ll
2002-07-25-QuoteInString.ll
2002-07-25-ReturnPtrFunction.ll
2002-07-31-SlashInString.ll
2002-08-15-CastAmbiguity.ll
2002-08-15-ConstantExprProblem.ll
2002-08-15-UnresolvedGlobalReference.ll
2002-08-16-ConstExprInlined.ll
2002-08-19-BytecodeReader.ll
2002-08-22-DominanceProblem.ll
2002-10-08-LargeArrayPerformance.ll
2002-10-13-ConstantEncodingProblem.ll
2002-12-15-GlobalResolve.ll
2003-01-30-UnsignedString.ll
2003-04-15-ConstantInitAssertion.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-04-25-UnresolvedGlobalReference.ll
2003-05-03-BytecodeReaderProblem.ll
2003-05-12-MinIntProblem.ll
2003-05-15-AssemblerProblem.ll
2003-05-15-SwitchBug.ll
2003-05-21-ConstantShiftExpr.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-05-21-EmptyStructTest.ll
2003-05-21-MalformedShiftCrash.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-05-21-MalformedStructCrash.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-08-20-ConstantExprGEP-Fold.ll
2003-08-21-ConstantExprCast-Fold.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-11-05-ConstantExprShift.ll
2003-11-11-ImplicitRename.ll
2003-11-12-ConstantExprCast.ll
2003-11-24-SymbolTableCrash.ll
2004-01-11-getelementptrfolding.ll
2004-01-20-MaxLongLong.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2004-02-01-NegativeZero.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2004-02-27-SelfUseAssertError.ll
2004-03-07-FunctionAddressAlignment.ll
2004-03-30-UnclosedFunctionCrash.ll
2004-04-04-GetElementPtrIndexTypes.ll
2004-06-07-VerifierBug.ll
2004-10-22-BCWriterUndefBug.ll
2004-11-28-InvalidTypeCrash.ll
2005-01-03-FPConstantDisassembly.ll
2005-01-31-CallingAggregateFunction.ll
2005-05-05-OpaqueUndefValues.ll
2005-12-21-ZeroInitVector.ll
2006-09-28-CrashOnInvalid.ll
2006-12-09-Cast-To-Bool.ll
2007-01-02-Undefined-Arg-Type.ll
2007-01-05-Cmp-ConstExpr.ll
2007-01-16-CrashOnBadCast2.ll
2007-01-16-CrashOnBadCast.ll
2007-03-18-InvalidNumberedVar.ll
2007-03-19-NegValue.ll
2007-04-20-AlignedLoad.ll
2007-04-20-AlignedStore.ll
2007-04-25-AssemblerFoldExternWeak.ll
2007-05-21-Escape.ll
2007-07-19-ParamAttrAmbiguity.ll
2007-08-06-AliasInvalid.ll
2007-09-10-AliasFwdRef.ll
2007-09-29-GC.ll
2007-11-26-AttributeOverload.ll
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll
2008-02-18-IntPointerCrash.ll
2008-07-10-APInt.ll
2008-09-02-FunctionNotes2.ll
2008-09-02-FunctionNotes.ll
2008-09-29-RetAttr.ll
2008-10-14-QuoteInName.ll
2009-02-01-UnnamedForwardRef.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2009-02-28-CastOpc.ll
2009-02-28-StripOpaqueName.ll
2009-03-24-ZextConstantExpr.ll
2009-07-24-ZeroArgGEP.ll
2010-02-05-FunctionLocalMetadataBecomesNull.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
addrspacecast-alias.ll
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll AsmParser: Make the code for parsing unnamed aliases more closely resemble that for unnamed globals. 2015-11-25 02:54:07 +00:00
alias-use-list-order.ll
align-inst-alloca.ll
align-inst-load.ll
align-inst-store.ll
align-inst.ll
alignstack.ll
alloca-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll
anon-functions.ll
atomic.ll
attribute-builtin.ll
auto_upgrade_intrinsics.ll Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
autoupgrade-thread-pointer.ll [AArch64] [ARM] Make a target-independent llvm.thread.pointer intrinsic. 2016-04-19 20:51:05 +00:00
bcwrap.ll
call-invalid-1.ll
comment.ll
ConstantExprFold.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
ConstantExprFoldCast.ll Fix constant folding of addrspacecast of null 2016-05-21 00:14:04 +00:00
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll
debug-info.ll Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
dicompileunit.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dicompositetype-members.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
diexpression.ll
difile-escaped-chars.ll
diglobalvariable.ll
diimportedentity.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilexicalblock.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilocalvariable-arg-large.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilocalvariable.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dilocation.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dimodule.ll
dinamespace.ll
diobjcproperty.ll
distinct-mdnode.ll
disubprogram.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
disubrange-empty-array.ll
disubroutinetype.ll [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
ditemplateparameter.ll
ditype-large-values.ll
drop-debug-info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll
flags.ll
generic-debug-node.ll
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_idx1.ll
getelementptr_vec_idx2.ll
getelementptr_vec_idx3.ll
getelementptr_vec_idx4.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
getelementptr_vec_struct.ll
getelementptr.ll
getInt.ll
global-addrspace-forwardref.ll
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
ifunc-asm.ll [IFUNC] Fix ifunc-asm.ll test 2016-04-08 06:45:19 +00:00
ifunc-use-list-order.ll [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
inalloca.ll
incorrect-tdep-attrs-parsing.ll
inline-asm-clobber.ll
insertextractvalue.ll
insertvalue-invalid-idx.ll
insertvalue-invalid-type-1.ll
insertvalue-invalid-type.ll
internal-hidden-alias.ll
internal-hidden-function.ll
internal-hidden-variable.ll
internal-protected-alias.ll
internal-protected-function.ll
internal-protected-variable.ll
invalid_cast2.ll
invalid_cast3.ll
invalid_cast4.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
invalid_cast.ll
invalid-alias-mismatched-explicit-type.ll
invalid-attrgrp.ll
invalid-comdat2.ll
invalid-comdat.ll
invalid-datalayout1.ll
invalid-datalayout2.ll
invalid-datalayout3.ll
invalid-datalayout4.ll
invalid-datalayout5.ll
invalid-datalayout6.ll
invalid-datalayout7.ll
invalid-datalayout8.ll
invalid-datalayout9.ll
invalid-datalayout10.ll
invalid-datalayout11.ll
invalid-datalayout12.ll
invalid-datalayout13.ll
invalid-datalayout14.ll
invalid-datalayout15.ll
invalid-datalayout16.ll
invalid-datalayout17.ll
invalid-datalayout18.ll
invalid-datalayout19.ll
invalid-datalayout20.ll
invalid-datalayout21.ll
invalid-datalayout22.ll
invalid-datalayout23.ll
invalid-datalayout24.ll
invalid-debug-info-version.ll
invalid-dicompileunit-emissionkind-bad.ll Move the DebugEmissionKind enum from DIBuilder into DICompileUnit. 2016-03-31 23:56:58 +00:00
invalid-dicompileunit-language-bad.ll
invalid-dicompileunit-language-overflow.ll
invalid-dicompileunit-missing-language.ll
invalid-dicompileunit-null-file.ll
invalid-dicompileunit-uniqued.ll
invalid-dicompositetype-missing-tag.ll
invalid-diderivedtype-missing-basetype.ll
invalid-diderivedtype-missing-tag.ll
invalid-dienumerator-missing-name.ll
invalid-dienumerator-missing-value.ll
invalid-diexpression-large.ll
invalid-diexpression-verify.ll
invalid-difile-missing-directory.ll
invalid-difile-missing-filename.ll
invalid-diglobalvariable-empty-name.ll
invalid-diglobalvariable-missing-name.ll
invalid-diimportedentity-missing-scope.ll
invalid-diimportedentity-missing-tag.ll
invalid-dilexicalblock-missing-scope.ll
invalid-dilexicalblock-null-scope.ll
invalid-dilexicalblockfile-missing-discriminator.ll
invalid-dilexicalblockfile-missing-scope.ll
invalid-dilexicalblockfile-null-scope.ll
invalid-dilocalvariable-arg-large.ll
invalid-dilocalvariable-arg-negative.ll
invalid-dilocalvariable-missing-scope.ll
invalid-dilocalvariable-null-scope.ll
invalid-dilocation-field-bad.ll
invalid-dilocation-field-twice.ll
invalid-dilocation-missing-scope-2.ll
invalid-dilocation-missing-scope.ll
invalid-dilocation-null-scope.ll
invalid-dilocation-overflow-column.ll
invalid-dilocation-overflow-line.ll
invalid-dinamespace-missing-namespace.ll
invalid-disubprogram-uniqued-definition.ll
invalid-disubrange-count-large.ll
invalid-disubrange-count-missing.ll
invalid-disubrange-count-negative.ll
invalid-disubrange-lowerBound-max.ll
invalid-disubrange-lowerBound-min.ll
invalid-disubroutinetype-missing-types.ll
invalid-ditemplatetypeparameter-missing-type.ll
invalid-ditemplatevalueparameter-missing-value.ll
invalid-fp80hex.ll
invalid-fwdref1.ll
invalid-fwdref2.ll
invalid-generic-debug-node-tag-bad.ll
invalid-generic-debug-node-tag-missing.ll
invalid-generic-debug-node-tag-overflow.ll
invalid-generic-debug-node-tag-wrong-type.ll
invalid-gep-mismatched-explicit-type.ll
invalid-gep-missing-explicit-type.ll
invalid-hexint.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
invalid-inline-constraint.ll
invalid-label.ll
invalid-landingpad.ll
invalid-load-mismatched-explicit-type.ll
invalid-load-missing-explicit-type.ll
invalid-mdnode-badref.ll AsmParser: Don't crash on unresolved !tbaa 2016-04-06 02:06:40 +00:00
invalid-mdnode-vector2.ll
invalid-mdnode-vector.ll
invalid-metadata-attachment-has-type.ll
invalid-metadata-function-local-attachments.ll
invalid-metadata-function-local-complex-1.ll
invalid-metadata-function-local-complex-2.ll
invalid-metadata-function-local-complex-3.ll
invalid-metadata-has-type.ll
invalid-name2.ll
invalid-name.ll
invalid-safestack-param.ll
invalid-safestack-return.ll
invalid-specialized-mdnode.ll
invalid-untyped-metadata.ll
invalid-uselistorder_bb-missing-bb.ll
invalid-uselistorder_bb-missing-body.ll
invalid-uselistorder_bb-missing-func.ll
invalid-uselistorder_bb-not-bb.ll
invalid-uselistorder_bb-not-func.ll
invalid-uselistorder_bb-numbered.ll
invalid-uselistorder-function-between-blocks.ll
invalid-uselistorder-function-missing-named.ll
invalid-uselistorder-function-missing-numbered.ll
invalid-uselistorder-global-missing.ll
invalid-uselistorder-indexes-duplicated.ll
invalid-uselistorder-indexes-empty.ll
invalid-uselistorder-indexes-one.ll
invalid-uselistorder-indexes-ordered.ll
invalid-uselistorder-indexes-range.ll
invalid-uselistorder-indexes-toofew.ll
invalid-uselistorder-indexes-toomany.ll
invalid-uselistorder-type.ll
large-comdat.ll
local-unnamed-addr.ll IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
metadata-decl.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
metadata-function-local.ll
metadata-null-operands.ll
metadata.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
missing-tbaa.ll AsmParser: Don't crash on unresolved !tbaa 2016-04-06 02:06:40 +00:00
MultipleReturnValueType.ll
musttail-invalid-1.ll
musttail-invalid-2.ll
musttail.ll
named-metadata.ll
no-mdstring-upgrades.ll IR: Stop upgrading !llvm.loop attachments via MDString 2016-03-25 00:56:13 +00:00
numbered-values.ll
private-hidden-alias.ll
private-hidden-function.ll
private-hidden-variable.ll
private-protected-alias.ll
private-protected-function.ll
private-protected-variable.ll
select.ll
short-hexpair.ll
source-filename-backslash.ll Use existing PrintEscapedString in AssemblyWriter 2016-03-30 22:17:28 +00:00
source-filename.ll Restore "[ThinLTO] Serialize the Module SourceFileName to/from LLVM assembly" 2016-03-30 18:15:08 +00:00
tls-models.ll
token.ll
unnamed-addr.ll
unnamed-alias.ll AsmParser: Make the code for parsing unnamed aliases more closely resemble that for unnamed globals. 2015-11-25 02:54:07 +00:00
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
uselistorder_bb.ll
uselistorder.ll
vbool-cmp.ll
vector-cmp.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
vector-select.ll
vector-shift.ll
x86mmx.ll