[PATCH] D16440: [ThinLTO] Link in only necessary DICompileUnit operands

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 22 17:37:25 PST 2016


We still have an issue with this patch, when compiling this with thinlto and debug info: https://github.com/adobe/webkit/blob/master/Source/WebCore/inspector/InspectorRuntimeAgent.cpp

I haven't had time to narrow it unfortunately, it seems that "baseType" for some DIDerivedType entries are not present.
What we see is a broken LLVM Module straight after the FunctionImporter. The output looks like this:

unresolved type ref
!"_ZTSN3JSC14ScopeLabelInfoE"
!121713 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN3JSC14ScopeLabelInfoE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC15DeclarationTypeE"
!121577 = !DISubroutineType(types: !121578)
unresolved type ref
!"_ZTSN3JSC17AssignmentContextE"
!121580 = !DISubroutineType(types: !121581)
unresolved type ref
!"_ZTSN3JSC17DestructuringKindE"
!121577 = !DISubroutineType(types: !121578)
unresolved type ref
!"_ZTSN3JSC21DeclarationImportTypeE"
!121606 = !DISubroutineType(types: !121607)
unresolved type ref
!"_ZTSN3JSC23SourceProviderCacheItemE"
!121621 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !"_ZTSN3JSC23SourceProviderCacheItemE")
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE10LexerStateE"
!121743 = !DISubroutineType(types: !121744)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE15AutoPopScopeRefE"
!121600 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerIhEEE15AutoPopScopeRefE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE20ExpressionErrorClassE"
!121571 = !DISubroutineType(types: !121572)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE23AutoCleanupLexicalScopeE"
!121604 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerIhEEE23AutoCleanupLexicalScopeE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE25ExpressionErrorClassifierE"
!121535 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerIhEEE25ExpressionErrorClassifierE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerIhEEE9SavePointE"
!121751 = !DISubroutineType(types: !121752)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE10LexerStateE"
!122000 = !DISubroutineType(types: !122001)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE15AutoPopScopeRefE"
!121866 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerItEEE15AutoPopScopeRefE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE20ExpressionErrorClassE"
!121838 = !DISubroutineType(types: !121839)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE23AutoCleanupLexicalScopeE"
!121870 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerItEEE23AutoCleanupLexicalScopeE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE25ExpressionErrorClassifierE"
!121803 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN3JSC6ParserINS_5LexerItEEE25ExpressionErrorClassifierE", size: 64, align: 64)
unresolved type ref
!"_ZTSN3JSC6ParserINS_5LexerItEEE9SavePointE"
!122008 = !DISubroutineType(types: !122009)
unresolved type ref
!"_ZTSN3JSC9ScopeNodeE"
!121635 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !"_ZTSN3JSC9ScopeNodeE", size: 64, align: 64)


-- 
Mehdi


> On Feb 22, 2016, at 2:20 PM, Teresa Johnson <tejohnson at google.com> wrote:
> 
> tejohnson updated this revision to Diff 48732.
> tejohnson added a comment.
> 
> Handle a null MD passed to MapMetadata to address problem reported by
> ahatanak.
> 
> 
> http://reviews.llvm.org/D16440
> 
> Files:
>  include/llvm/Linker/IRMover.h
>  lib/Linker/IRMover.cpp
>  lib/Linker/LinkModules.cpp
>  lib/Transforms/Utils/ValueMapper.cpp
>  test/Linker/thinlto_funcimport_debug.ll
>  test/Transforms/FunctionImport/Inputs/funcimport_debug.ll
>  test/Transforms/FunctionImport/funcimport_debug.ll
> 
> <D16440.48732.patch>



More information about the llvm-commits mailing list