1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/Assembler
Peter Collingbourne 5b721561aa DI: Reverse direction of subprogram -> function edge.
Previously, subprograms contained a metadata reference to the function they
described. Because most clients need to get or set a subprogram for a given
function rather than the other way around, this created unneeded inefficiency.

For example, many passes needed to call the function llvm::makeSubprogramMap()
to build a mapping from functions to subprograms, and the IR linker needed to
fix up function references in a way that caused quadratic complexity in the IR
linking phase of LTO.

This change reverses the direction of the edge by storing the subprogram as
function-level metadata and removing DISubprogram's function field.

Since this is an IR change, a bitcode upgrade has been provided.

Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is
attached to the PR.

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

llvm-svn: 252219
2015-11-05 22:03:56 +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 [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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
2003-04-25-UnresolvedGlobalReference.ll
2003-05-03-BytecodeReaderProblem.ll
2003-05-12-MinIntProblem.ll
2003-05-15-AssemblerProblem.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2003-05-15-SwitchBug.ll
2003-05-21-ConstantShiftExpr.ll
2003-05-21-EmptyStructTest.ll
2003-05-21-MalformedShiftCrash.ll
2003-05-21-MalformedStructCrash.ll
2003-08-20-ConstantExprGEP-Fold.ll
2003-08-21-ConstantExprCast-Fold.ll
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
2004-02-01-NegativeZero.ll
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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2007-09-29-GC.ll
2007-11-26-AttributeOverload.ll
2007-12-11-AddressSpaces.ll
2008-01-11-VarargAttrs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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
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 DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
addrspacecast-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
alias-use-list-order.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
atomic.ll
attribute-builtin.ll
auto_upgrade_intrinsics.ll
bcwrap.ll
call-invalid-1.ll
comment.ll
ConstantExprFold.ll
ConstantExprFoldCast.ll
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
debug-info.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
dicompileunit.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
diexpression.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
difile-escaped-chars.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diglobalvariable.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diimportedentity.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
dilexicalblock.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
dilocalvariable-arg-large.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
dilocalvariable.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
dilocation.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
dimodule.ll Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
dinamespace.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
diobjcproperty.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
distinct-mdnode.ll
disubprogram.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
disubrange-empty-array.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
disubroutinetype.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
ditemplateparameter.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
ditype-large-values.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
drop-debug-info.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll
flags.ll
generic-debug-node.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_idx1.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx2.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx3.ll Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
getelementptr_vec_idx4.ll
getelementptr_vec_struct.ll
getelementptr.ll Make the test introduced in r239015 more targeted. 2015-06-04 07:21:42 +00:00
getInt.ll
global-addrspace-forwardref.ll Allow global address space forward decls using IDs in .ll files. 2015-09-03 18:06:44 +00:00
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
inalloca.ll
incorrect-tdep-attrs-parsing.ll [IR] Have AttrBuilder::clear clear TargetDepAttrs. 2015-09-03 22:27:42 +00:00
inline-asm-clobber.ll
insertextractvalue.ll
insertvalue-invalid-idx.ll
insertvalue-invalid-type-1.ll
insertvalue-invalid-type.ll
internal-hidden-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
internal-hidden-function.ll
internal-hidden-variable.ll
internal-protected-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
internal-protected-function.ll
internal-protected-variable.ll
invalid_cast2.ll
invalid_cast3.ll
invalid_cast4.ll
invalid_cast.ll
invalid-alias-mismatched-explicit-type.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
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-language-bad.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-language-overflow.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-missing-language.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-null-file.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompileunit-uniqued.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
invalid-dicompositetype-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diderivedtype-missing-basetype.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diderivedtype-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dienumerator-missing-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dienumerator-missing-value.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diexpression-large.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diexpression-verify.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-difile-missing-directory.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-difile-missing-filename.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diglobalvariable-empty-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diglobalvariable-missing-name.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diimportedentity-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-diimportedentity-missing-tag.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblock-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblock-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-missing-discriminator.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilexicalblockfile-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocalvariable-arg-large.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-arg-negative.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-missing-scope.ll DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
invalid-dilocalvariable-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-field-bad.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-field-twice.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-missing-scope-2.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-missing-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-null-scope.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-overflow-column.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dilocation-overflow-line.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-dinamespace-missing-namespace.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubprogram-uniqued-definition.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
invalid-disubrange-count-large.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-count-missing.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-count-negative.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-lowerBound-max.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubrange-lowerBound-min.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-disubroutinetype-missing-types.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-ditemplatetypeparameter-missing-type.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-ditemplatevalueparameter-missing-value.ll DebugInfo: Rename testcases from MD* to DI*, NFC 2015-06-02 17:13:25 +00:00
invalid-fp80hex.ll Fix bug in method LLLexer::FP80HexToIntPair 2015-08-31 21:36:14 +00:00
invalid-fwdref1.ll
invalid-fwdref2.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-generic-debug-node-tag-bad.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-missing.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-overflow.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-generic-debug-node-tag-wrong-type.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
invalid-gep-mismatched-explicit-type.ll
invalid-gep-missing-explicit-type.ll
invalid-hexint.ll
invalid-inline-constraint.ll Remove binary characters from test file. 2015-09-03 15:41:38 +00:00
invalid-label.ll
invalid-landingpad.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invalid-load-mismatched-explicit-type.ll
invalid-load-missing-explicit-type.ll
invalid-mdnode-badref.ll
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-OperatorConstraint.ll [WinEH] Add cleanupendpad instruction 2015-09-03 09:09:43 +00:00
invalid-safestack-param.ll Add safestack attribute to LLVMAttribute enum and Go bindings. Correct 2015-06-15 22:16:51 +00:00
invalid-safestack-return.ll Add safestack attribute to LLVMAttribute enum and Go bindings. Correct 2015-06-15 22:16:51 +00:00
invalid-specialized-mdnode.ll
invalid-untyped-metadata.ll Fix assertion failure in LLParser::ConvertValIDToValue 2015-09-03 16:18:32 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-empty.ll
invalid-uselistorder-indexes-one.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-ordered.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-range.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-toofew.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-indexes-toomany.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
invalid-uselistorder-type.ll
large-comdat.ll
metadata-function-local.ll
metadata-null-operands.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
metadata.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
MultipleReturnValueType.ll
musttail-invalid-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
musttail-invalid-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
musttail.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
named-metadata.ll
numbered-values.ll
private-hidden-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
private-hidden-function.ll
private-hidden-variable.ll
private-protected-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
private-protected-function.ll
private-protected-variable.ll
select.ll
short-hexpair.ll
tls-models.ll
token.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
unnamed-addr.ll
unnamed-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
upgrade-loop-metadata.ll
uselistorder_bb.ll
uselistorder.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
vbool-cmp.ll
vector-cmp.ll
vector-select.ll
vector-shift.ll
x86mmx.ll