[MC] Add support for encoding CodeView variable definition ranges
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 5 Feb 2016 01:55:49 +0000 (01:55 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 5 Feb 2016 01:55:49 +0000 (01:55 +0000)
commit408b5e660300f96d9a231ba0e18e75d8e69d17bb
treee9209cea4a29570a15cbcdb349cf6413b453e3aa
parentadc2376375f32b96daa8c548b11237738945f623
[MC] Add support for encoding CodeView variable definition ranges

CodeView, like most other debug formats, represents the live range of a
variable so that debuggers might print them out.

They use a variety of records to represent how a particular variable
might be available (in a register, in a frame pointer, etc.) along with
a set of ranges where this debug information is relevant.

However, the format only allows us to use ranges which are limited to a
maximum of 0xF000 in size.  This means that we need to split our debug
information into chunks of 0xF000.

Because the layout of code is not known until *very* late, we must use a
new fragment to record the information we need until we can know
*exactly* what the range is.

llvm-svn: 259868
16 files changed:
llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
llvm/include/llvm/MC/MCAssembler.h
llvm/include/llvm/MC/MCCodeView.h
llvm/include/llvm/MC/MCFragment.h
llvm/include/llvm/MC/MCObjectStreamer.h
llvm/include/llvm/MC/MCStreamer.h
llvm/lib/MC/MCAsmStreamer.cpp
llvm/lib/MC/MCAssembler.cpp
llvm/lib/MC/MCCodeView.cpp
llvm/lib/MC/MCFragment.cpp
llvm/lib/MC/MCObjectStreamer.cpp
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/MC/MCStreamer.cpp
llvm/lib/MC/WinCOFFObjectWriter.cpp
llvm/test/MC/COFF/cv-def-range.s [new file with mode: 0644]
llvm/test/MC/X86/reloc-directive.s