We currently visit them twice.
Once, through visitMDNode() -> (the code generated by) ../include/llvm/IR/Metadata.def:109 -> visitDIGlobalVariable()
Then, through visitMDNode() -> visitDIGlobalVariableExpression() -> visitDIGlobalVariable()
This results in verification failures printed twice, e.g.:
$ ./opt -verify ../../test/DebugInfo/pr34186.ll missing global variable type !4 = distinct !DIGlobalVariable(name: "pat", scope: !0, file: !1, line: 27, isLocal: true, isDefinition: true) missing global variable type !4 = distinct !DIGlobalVariable(name: "pat", scope: !0, file: !1, line: 27, isLocal: true, isDefinition: true) ./opt: ../../test/DebugInfo/pr34186.ll: error: input module is broken!
The patch removes one call so we ensure each GV is visited exactly once.