[PATCH] D50066: [IRMover] Don't materialise values from different source module

Xin Tong via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 14 09:20:53 PDT 2018


On Tue, Aug 14, 2018 at 8:31 AM Eugene Leviant via Phabricator
<reviews at reviews.llvm.org> wrote:
>
> evgeny777 added a comment.
>
> > Out of curiosity, what makes it look like it might be synthetic?
>
> I'm not a debug info expert, but this looks unusual:
>
>   !8 = distinct !DISubprogram(unit: !2)
>   !9 = !DICompositeType(tag: DW_TAG_array_type, identifier: "SHARED", scope: !8)
>
> With no code in `Inputs/fwd-decl.ll` actually referencing !8 or !9

Initially we had a really large program which we saw this problem in.
We reduced it to 2 modules needed to reproduce the issue. However,
these 2 modules are still very large and the metadata needed to
reproduced the problem is also very large. I looked in the debugger
how this issue manifested and know we need ODR (uniquing of
DICompositeTypes) to happen and we need opaque type in the 2nd module.
With these in mind, I constructed the test case starting from the test
case in https://reviews.llvm.org/D47898.  And then I go back to look
in the debugger and make sure the path taken to crash is the same as
what we have with the 2 large modules.

Thanks,
-Xin
>
>
> https://reviews.llvm.org/D50066
>
>
>


More information about the llvm-commits mailing list