HomePhabricator

[Verifier] Check parentage of GVs in dbg metadata

Description

[Verifier] Check parentage of GVs in dbg metadata

Summary:
Before this the Verifier didn't complain if the GlobalVariable
referenced from a DIGlobalVariable was not in fact in the correct
module (it would crash while writing bitcode though). Fix this by
always checking parantage of GlobalValues while walking constant
expressions and changing the DIGlobalVariable visitor to also
visit the constant it contains.

Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D16059

Details

Committed
kfischerJan 14 2016, 2:42 PM
Differential Revision
D16059: [Verifier] Check parentage of GVs in dbg metadata
Parents
rL257824: [sancov] html report
Branches
Unknown
Tags
Unknown

Event Timeline

Hello Keno!

It seems that your two changes, this one and r257823 significantly slow down the LTO build. On a target that usually takes 4 minutes, it adds 33% and the time becomes 5m20s. On larger targets, such as Chrome, it becomes 1+ hour (vs 27 minutes normally).

See https://crbug.com/578339 for more details. Please, let me know, if I should file an LLVM issue for that.

Please, take a look, if that's possible.

krasin

krasin added a subscriber: krasin.Jan 19 2016, 4:00 PM

Hi Keno,

I have filed https://llvm.org/bugs/show_bug.cgi?id=26214 and included the profile for linking Chrome with LTO. I used Clang + LLVM synced at r257825 (this CL)