llvm/lib/MC
Reid Kleckner 200dc330a0 [CodeView] Use assembler directives for line tables
Adds a new family of .cv_* directives to LLVM's variant of GAS syntax:

- .cv_file: Similar to DWARF .file directives

- .cv_loc: Similar to the DWARF .loc directive, but starts with a
  function id. CodeView line tables are emitted by function instead of
  by compilation unit, so we needed an extra field to communicate this.
  Rather than overloading the .loc direction further, we decided it was
  better to have our own directive.

- .cv_stringtable: Emits the codeview string table at the current
  position. Currently this just contains the filenames as
  null-terminated strings.

- .cv_filechecksums: Emits the file checksum table for all files used
  with .cv_file so far. There is currently no support for emitting
  actual checksums, just filenames.

This moves the line table emission code down into the assembler.  This
is in preparation for implementing the inlined call site line table
format. The inline line table format encoding algorithm requires knowing
the absolute code offsets, so it must run after the assembler has laid
out the code.

David Majnemer collaborated on this patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259117 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-28 23:31:52 +00:00
..
MCDisassembler One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
MCParser [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
CMakeLists.txt [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
ConstantPools.cpp [ARM,AArch64] Store source location of asm constant pool entries 2015-11-16 16:25:47 +00:00
ELFObjectWriter.cpp Accept subtractions involving a weak symbol. 2016-01-20 18:57:48 +00:00
LLVMBuild.txt Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MachObjectWriter.cpp Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
MCAsmBackend.cpp [MC, COFF] Add .reloc support for WinCOFF 2016-01-19 23:05:27 +00:00
MCAsmInfo.cpp MCAsmInfo: Allow targets to specify when the .section directive should be omitted 2015-09-25 21:41:14 +00:00
MCAsmInfoCOFF.cpp [MC] Use LShr for constant evaluation of ">>" on non-arm64 darwin. 2015-11-11 00:51:36 +00:00
MCAsmInfoDarwin.cpp [MC] Use LShr for constant evaluation of ">>" on non-arm64 darwin. 2015-11-11 00:51:36 +00:00
MCAsmInfoELF.cpp [WebAssembly] Don't create a needless .note.GNU-stack section 2016-01-15 23:59:13 +00:00
MCAsmStreamer.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
MCAssembler.cpp Use larger write sizes for MCFillFragment. 2016-01-19 17:47:48 +00:00
MCCodeEmitter.cpp MC: Move target specific fixup info descriptors to TargetAsmBackend instead of 2010-12-16 03:20:06 +00:00
MCCodeGenInfo.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCCodeView.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
MCContext.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
MCDwarf.cpp Rename MCLineEntry to MCDwarfLineEntry 2016-01-21 01:59:03 +00:00
MCELFObjectTargetWriter.cpp Always sort by offset first. NFC. 2015-12-17 15:08:24 +00:00
MCELFStreamer.cpp Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
MCExpr.cpp [WebAssembly] Define WebAssembly-specific relocation codes. 2016-01-11 23:38:05 +00:00
MCFragment.cpp Simplify MCFillFragment. 2016-01-19 16:57:08 +00:00
MCInst.cpp Teach MCOperand::print how to print FPImm operands. 2015-12-21 16:47:10 +00:00
MCInstPrinter.cpp [llvm] Parameterizing the output stream for dumpbytes and outputting directly to stream. 2015-05-28 18:39:50 +00:00
MCInstrAnalysis.cpp MC: Disassembled CFG reconstruction. 2013-05-24 01:07:04 +00:00
MCInstrDesc.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
MCLabel.cpp Release build: guard dump functions with 2012-09-12 05:06:18 +00:00
MCLinkerOptimizationHint.cpp MC: Tidy up LOH naming a bit. NFC. 2015-06-01 23:55:06 +00:00
MCMachObjectTargetWriter.cpp MC: Remove obsolete MachO UseAggressiveSymbolFolding. 2015-06-04 20:27:42 +00:00
MCMachOStreamer.cpp Simplify MCFillFragment. 2016-01-19 16:57:08 +00:00
MCNullStreamer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCObjectFileInfo.cpp ARMv7k: base ABI decision on v7k Arch rather than watchos OS. 2016-01-27 19:32:29 +00:00
MCObjectStreamer.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
MCObjectWriter.cpp Fix pr24486. 2015-10-05 12:07:05 +00:00
MCRegisterInfo.cpp Make SubRegIndex size mandatory, following r183020. 2013-05-31 23:45:26 +00:00
MCSchedule.cpp Add <type_traits> for is_pod, fixing r241947 2015-07-10 22:17:49 +00:00
MCSection.cpp MC: Remove implicit ilist iterator conversions, NFC 2015-10-10 00:13:11 +00:00
MCSectionCOFF.cpp Sink COFF.h MC include into .cpp files 2015-09-03 16:41:50 +00:00
MCSectionELF.cpp Bring r252305 back with a test fix. 2015-11-06 15:30:45 +00:00
MCSectionMachO.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
MCStreamer.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
MCSubtargetInfo.cpp (NFC) Change SubtargetFeatures::ToggleFeature and 2016-01-05 10:25:56 +00:00
MCSymbol.cpp [ptr-traits] Provide a real MCFragment address for the sentinel instead 2015-12-29 09:32:18 +00:00
MCSymbolELF.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCTargetOptions.cpp [MC, COFF] Support link /incremental conditionally 2015-12-21 22:09:27 +00:00
MCValue.cpp Use operator<< instead of print in a few more places. 2015-05-27 13:05:42 +00:00
MCWin64EH.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCWinEH.cpp Stop producing .data.rel sections. 2015-11-18 06:02:15 +00:00
StringTableBuilder.cpp [CodeView] Use assembler directives for line tables 2016-01-28 23:31:52 +00:00
SubtargetFeature.cpp (NFC) Change SubtargetFeatures::ToggleFeature and 2016-01-05 10:25:56 +00:00
WinCOFFObjectWriter.cpp [COFF] Simplify SetSectionName 2016-01-24 20:46:11 +00:00
WinCOFFStreamer.cpp Simplify MCFillFragment. 2016-01-19 16:57:08 +00:00
YAML.cpp Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00