[IR] Make TypeFinder aware of DIArgList values
authorDavid Stenberg <david.stenberg@ericsson.com>
Fri, 28 May 2021 14:37:47 +0000 (16:37 +0200)
committerDavid Stenberg <david.stenberg@ericsson.com>
Fri, 28 May 2021 15:09:45 +0000 (17:09 +0200)
commitb6e1fb7e32535cd299656372bd40a2597899b022
treebc92fd5ff4fc9376e601b9fe6a6a900641a09796
parent4c6e2774d8273ecf8b23f376066249fee5e6f9f6
[IR] Make TypeFinder aware of DIArgList values

TypeFinder did not find types under DIArgList. This resulted in a case
of invalid IR after GlobalOpt removed a global that was the only
non-DIArgList use of a struct type.

  error: use of undefined type named 'struct.S'
    call void @llvm.dbg.value(
      metadata !DIArgList([1 x %struct.S]* undef, i64 %idxprom),
      metadata !24, metadata !DIExpression([...]))

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D103306
llvm/lib/IR/TypeFinder.cpp
llvm/test/Transforms/GlobalOpt/deadglobal-diarglist-use.ll [new file with mode: 0644]