1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Assembler
Teresa Johnson 44ebb78e5e [ThinLTO] Efficiency fix for writing type id records in per-module indexes
Summary:
In D49565/r337503, the type id record writing was fixed so that only
referenced type ids were emitted into each per-module index for ThinLTO
distributed builds. However, this still left an efficiency issue: each
per-module index checked all type ids for membership in the referenced
set, yielding O(M*N) performance (M indexes and N type ids).

Change the TypeIdMap in the summary to be indexed by GUID, to facilitate
correlating with type identifier GUIDs referenced in the function
summary TypeIdInfo structures. This allowed simplifying other
places where a map from type id GUID to type id map entry was previously
being used to aid this correlation.

Also fix AsmWriter code to handle the rare case of type id GUID
collision.

For a large internal application, this reduced the thin link time by
almost 15%.

Reviewers: pcc, vitalybuka

Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, llvm-commits

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

llvm-svn: 343021
2018-09-25 20:14:40 +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 Don't output bitcode to stdout in 2002-07-31-SlashInString.ll test 2018-02-27 11:15:05 +00:00
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
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
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
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
addrspacecast-alias.ll
aggregate-constant-values.ll
aggregate-return-single-value.ll
alias-redefinition.ll
alias-use-list-order.ll
align-inst-alloca.ll
align-inst-load.ll
align-inst-store.ll
align-inst.ll
alignstack.ll
alloca-addrspace0.ll
alloca-addrspace-elems.ll Fix assembler for alloca of multiple elements in non-zero addr space 2017-10-14 03:23:18 +00:00
alloca-addrspace-parse-error-0.ll
alloca-addrspace-parse-error-1.ll
alloca-invalid-type-2.ll
alloca-invalid-type.ll
alloca-size-one.ll
anon-functions.ll
asm-path-writer.ll [ThinLTO] Escape module paths when printing 2018-07-12 14:40:21 +00:00
atomic.ll
attribute-builtin.ll
auto_upgrade_intrinsics.ll
auto_upgrade_nvvm_intrinsics.ll
autoupgrade-thread-pointer.ll
bcwrap.ll
call-invalid-1.ll
call-nonzero-program-addrspace-2.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
call-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
comment.ll
ConstantExprFold.ll
ConstantExprFoldCast.ll
ConstantExprFoldSelect.ll
ConstantExprNoFold.ll ConstantFold: Don't fold global address vs. null for addrspace != 0 2018-06-26 18:55:43 +00:00
datalayout-alloca-addrspace-mismatch-0.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-1.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace-mismatch-2.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
datalayout-alloca-addrspace.ll
datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
debug-info.ll [test] Fix Assembler/debug-info.ll 2018-09-21 12:28:44 +00:00
debug-label-bitcode.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debug-variant-discriminator.ll Ensure that variant part discriminator is read by MetadataLoader 2018-09-21 12:03:14 +00:00
dicompileunit.ll
dicompositetype-members.ll
DIEnumerator.ll Re-commit r324489: [DebugInfo] Improvements to representation of enumeration types (PR36168) 2018-02-12 16:10:09 +00:00
diexpression.ll
difile-escaped-chars.ll
diglobalvariable.ll
DIGlobalVariableExpression.ll
diimportedentity.ll
dilexicalblock.ll
dilocalvariable-arg-large.ll
dilocalvariable.ll
dilocation.ll [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
DIMacroFile.ll
dimodule.ll
dinamespace.ll
diobjcproperty.ll
distinct-mdnode.ll
disubprogram.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
disubrange-empty-array.ll
disubroutinetype.ll
ditemplateparameter.ll
ditype-large-values.ll
dllimport-dsolocal-diag.ll Represent runtime preemption in the IR. 2017-10-26 15:00:26 +00:00
drop-debug-info-nonzero-alloca.ll LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
drop-debug-info.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
empty-string.s [MC, RISCV] Fixed StringRef Assertion `Index < Length && "Invalid index!"' 2018-08-25 01:34:32 +00:00
externally-initialized.ll
extractvalue-invalid-idx.ll
extractvalue-no-idx.ll
fast-math-flags.ll [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
flags.ll
generic-debug-node.ll
getelementptr_invalid_ptr.ll
getelementptr_struct.ll
getelementptr_vec_ce2.ll
getelementptr_vec_ce.ll [ConstantFold] Support vector index when factoring out GEP index into preceding dimensions 2017-12-04 19:56:33 +00:00
getelementptr_vec_idx1.ll
getelementptr_vec_idx2.ll
getelementptr_vec_idx3.ll
getelementptr_vec_idx4.ll
getelementptr_vec_struct.ll
getelementptr.ll
getInt.ll
global-addrspace-forwardref.ll
globalvariable-attributes.ll
gv-invalid-type.ll
half-constprop.ll
half-conv.ll
half.ll
huge-array.ll
ifunc-asm.ll
ifunc-dsolocal.ll Allow dso_local on ifunc. 2018-01-12 17:03:43 +00:00
ifunc-use-list-order.ll
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
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-datalayout-alloca-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
invalid-datalayout-program-addrspace.ll Add default address space for functions to the data layout (1/3) 2018-02-19 09:56:22 +00:00
invalid-debug-info-version.ll
invalid-dicompileunit-emissionkind-bad.ll
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-count-node.ll [Metadata] Extend 'count' field of DISubrange to take a metadata node 2018-01-24 09:56:07 +00:00
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
invalid-inline-constraint.ll
invalid-inttype.ll
invalid-label.ll
invalid-landingpad.ll
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-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
invoke-nonzero-program-addrspace.ll Allow creating llvm::Function in non-zero address spaces 2018-08-23 09:25:17 +00:00
large-comdat.ll
local-unnamed-addr.ll
max-inttype.ll
metadata-decl.ll
metadata-function-local.ll
metadata-null-operands.ll
metadata.ll
missing-tbaa.ll
MultipleReturnValueType.ll
musttail-invalid-1.ll
musttail-invalid-2.ll
musttail.ll
named-metadata.ll
no-mdstring-upgrades.ll
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
return-column.s Move REQUIRES: line to the top 2018-06-26 17:44:23 +00:00
select.ll
short-hexpair.ll
source-filename-backslash.ll
source-filename.ll
thinlto-bad-summary1.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary2.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-bad-summary3.ll [ThinLTO] Parse module summary index from assembly 2018-06-26 13:56:49 +00:00
thinlto-summary.ll [ThinLTO] Efficiency fix for writing type id records in per-module indexes 2018-09-25 20:14:40 +00:00
tls-models.ll
token.ll
unnamed-addr.ll
unnamed-alias.ll
unnamed-comdat.ll
unnamed.ll
unsized-recursive-type.ll
uselistorder_bb.ll
uselistorder.ll
vbool-cmp.ll
vector-cmp.ll
vector-select.ll
vector-shift.ll
x86mmx.ll