llvm-project/llvm/lib/CodeGen/AsmPrinter
Zachary Turner 629cb7d8cc [CodeView] Finish decoupling TypeDatabase from TypeDumper.
Previously the type dumper itself was passed around to a lot of different
places and manipulated in ways that were more appropriate on the type
database. For example, the entire TypeDumper was passed into the symbol
dumper, when all the symbol dumper wanted to do was lookup the name of a
TypeIndex so it could print it. That's what the TypeDatabase is for --
mapping type indices to names.

Another example is how if the user runs llvm-pdbdump with the option to
dump symbols but not types, we still have to visit all types so that we
can print minimal information about the type of a symbol, but just without
dumping full symbol records. The way we did this before is by hacking it
up so that we run everything through the type dumper with a null printer,
so that the output goes to /dev/null. But really, we don't need to dump
anything, all we want to do is build the type database. Since
TypeDatabaseVisitor now exists independently of TypeDumper, we can do
this. We just build a custom visitor callback pipeline that includes a
database visitor but not a dumper.

All the hackery around printers etc goes away. After this patch, we could
probably even delete the entire CVTypeDumper class since really all it is
at this point is a thin wrapper that hides the details of how to build a
useful visitation pipeline. It's not a priority though, so CVTypeDumper
remains for now.

After this patch we will be able to easily plug in a different style of
type dumper by only implementing the proper visitation methods to dump
one-line output and then sticking it on the pipeline.

Differential Revision: https://reviews.llvm.org/D28524

llvm-svn: 291724
2017-01-11 23:24:22 +00:00
..
ARMException.cpp PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
AddressPool.cpp Move helpers into anonymous namespaces. NFC. 2016-08-06 11:13:10 +00:00
AddressPool.h One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
AsmPrinter.cpp PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
AsmPrinterDwarf.cpp Reapply "[CodeGen] Fix invalid DWARF info on Win64" 2017-01-02 03:00:19 +00:00
AsmPrinterHandler.h Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC 2016-02-26 20:30:37 +00:00
AsmPrinterInlineAsm.cpp MC: support passing search paths to the IAS 2017-01-05 05:56:39 +00:00
ByteStreamer.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
CodeViewDebug.cpp [CodeView] Finish decoupling TypeDatabase from TypeDumper. 2017-01-11 23:24:22 +00:00
CodeViewDebug.h Move VariableDbgInfo from MachineModuleInfo to MachineFunction 2016-11-30 23:48:50 +00:00
DIE.cpp DebugInfo: support for DW_FORM_implicit_const 2017-01-10 21:18:26 +00:00
DIEHash.cpp Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DIEHash.h Apply another batch of fixes from clang-tidy's performance-unnecessary-value-param. 2016-06-17 20:41:14 +00:00
DbgValueHistoryCalculator.cpp CodeGen: Give MachineBasicBlock::reverse_iterator a handle to the current MI 2016-09-11 18:51:28 +00:00
DbgValueHistoryCalculator.h One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
DebugHandlerBase.cpp Refactor the DIExpression fragment query interface (NFC) 2016-12-22 05:27:12 +00:00
DebugHandlerBase.h Recommit r288212: Emit 'no line' information for interesting 'orphan' instructions. 2016-12-12 20:49:11 +00:00
DebugLocEntry.h Refactor the DIExpression fragment query interface (NFC) 2016-12-22 05:27:12 +00:00
DebugLocStream.cpp
DebugLocStream.h
DwarfAccelTable.cpp This change removes the dependency on DwarfDebug that was used for DW_FORM_ref_addr by making a new DIEUnit class in DIE.cpp. 2016-12-01 18:56:29 +00:00
DwarfAccelTable.h Remove LLVM_CONSTEXPR. 2016-10-23 19:39:16 +00:00
DwarfCFIException.cpp PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
DwarfCompileUnit.cpp [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
DwarfCompileUnit.h [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
DwarfDebug.cpp Refactor the DIExpression fragment query interface (NFC) 2016-12-22 05:27:12 +00:00
DwarfDebug.h DebugInfo: Address non-deterministic output (iterating a SmallPtrSet) in 289697 2016-12-15 23:37:38 +00:00
DwarfException.h Emit .cfi_sections before the first .cfi_startproc 2017-01-02 18:05:27 +00:00
DwarfExpression.cpp Fix an assertion in DwarfExpression when emitting fragments in vector registers 2016-12-22 06:10:41 +00:00
DwarfExpression.h Fix an assertion in DwarfExpression when emitting fragments in vector registers 2016-12-22 06:10:41 +00:00
DwarfFile.cpp Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfFile.h Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfStringPool.cpp
DwarfStringPool.h
DwarfUnit.cpp DebugInfo: support for DW_FORM_implicit_const 2017-01-10 21:18:26 +00:00
DwarfUnit.h Fix LLVM's use of DW_OP_bit_piece in DWARF expressions. 2016-12-09 20:43:40 +00:00
EHStreamer.cpp Move most EH from MachineModuleInfo to MachineFunction 2016-12-01 19:32:15 +00:00
EHStreamer.h Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC 2016-02-26 20:30:37 +00:00
ErlangGCPrinter.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
LLVMBuild.txt Prune unused libdeps. 2016-12-08 15:28:02 +00:00
OcamlGCPrinter.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
WinException.cpp [WinEH] Don't assume endFunction is called while in .text 2016-12-28 19:05:12 +00:00
WinException.h [WinEH] Don't assume endFunction is called while in .text 2016-12-28 19:05:12 +00:00