Remove support for versioned debug info.
authorDavid Blaikie <dblaikie@gmail.com>
Mon, 11 Mar 2013 23:39:23 +0000 (23:39 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Mon, 11 Mar 2013 23:39:23 +0000 (23:39 +0000)
commitdc69ebb1fc296dcec58981ead221aece6cb4940d
tree66faa21e50f6d4ebddc6e38703b99d715c67ea45
parent085abe38e4b25c4d0457c793a0d3f80b5d76faa6
Remove support for versioned debug info.

Versioned debug info support has been a burden to maintain & also compromised
current debug info verification by causing test cases testing old debug info to
remain rather than being updated to the latest. It also makes it hard to add or
change the metadata schema by requiring various backwards-compatibility in the
DI* hierarchy.

So it's being removed in preparation for new changes to the schema to tidy up
old/unnecessary fields and add new fields needed for new debug info (well, new
to LLVM at least).

The more surprising part of this is the changes to DI*::Verify - this became
necessary due to the changes to AsmWriter. AsmWriter was relying on the version
test to decide which bits of metadata were actually debug info when printing
the comment annotations. Without the version information the tag numbers were
too common & it would print debug info on random metadata that happened to
start with an integer that matched a tag number. Instead this change makes the
Verify functions more precise (just adding "number of operands" checks - not
type checking those operands yet) & relies on that to decide which metadata is
debug info metadata.

llvm-svn: 176838
llvm/include/llvm/DebugInfo.h
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/DebugInfo.cpp