[PATCH] D53596: [ThinLTO] Fix a crash in lazy loading of Metadata
Teresa Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 14 10:23:38 PST 2018
tejohnson added a comment.
In https://reviews.llvm.org/D53596#1288273, @tejohnson wrote:
> In https://reviews.llvm.org/D53596#1287638, @dexonsmith wrote:
>
> > In https://reviews.llvm.org/D53596#1287633, @dexonsmith wrote:
> >
> > > Hmm. I remember writing this code. I have a faint recollection of proving at the time that these could never be forward refs, and that it was important for bitcode reading performance.
> >
> >
> > Sorry, I neglected to say anything actionable.
> >
> > - If any bitcode writer in a released Clang has written forward refs for scope/inline-at, then clearly we need to handle this in the reader. But if that's not the case, perhaps we can instead change the writer to make it impossible again. (I think I might have intentionally used `dyn_cast` instead of `dyn_cast_or_null` as an assertion in the reader.)
>
>
> It looks like this code was already handling forward refs for the scope/inline-at, since it was calling getMDNodeFwdRefOrNull - so is it possible that changed at some point?
>
> > - Either way, you might look at a bitcode-reading profile and see if this is still something to be careful about for compile-time.
> > - Note: I wrote that code way back before we had lazy loading of metadata and I don't remember if/how things changed there.
>
> For lazy loading of metadata, I don't think it matters whether it is a forward reference originally, we won't load it until we need it.
>
> I don't think the patch changes whether it handles forward references, or am I misunderstanding how the code currently works?
Ping on this comment/question - I don't think I am changing anything here on the handling of forward references in the non-lazy loading case, and I believe the need to handle them as "forward refs" is inherent in the lazy loading.
Repository:
rL LLVM
https://reviews.llvm.org/D53596
More information about the llvm-commits
mailing list