[codeview] Shrink inlined call site line info tables
authorReid Kleckner <rnk@google.com>
Thu, 14 Jul 2016 23:47:15 +0000 (23:47 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 14 Jul 2016 23:47:15 +0000 (23:47 +0000)
commitc29b4f07f9cf6fdbaac1b3565f9677421710ae09
treed04f57000dab6f4f30e339164c2364dd0f94efe9
parent1a3fd1377679cff451a34ef1ac03a656b0ea2736
[codeview] Shrink inlined call site line info tables

For a fully inlined call chain like a -> b -> c -> d, we were emitting
line info for 'd' 3 separate times: once for d's actual InlineSite line
table, and twice for 'b' and 'c'. This is particularly inefficient when
all these functions are in different headers, because now we need to
encode the file change. Windbg was coping with our suboptimal output, so
this should not be noticeable from the debugger.

llvm-svn: 275502
llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
llvm/lib/MC/MCCodeView.cpp
llvm/test/DebugInfo/COFF/inlining-header.ll [new file with mode: 0644]
llvm/test/DebugInfo/COFF/inlining.ll
llvm/test/MC/COFF/cv-inline-linetable.s