llvm-6502/lib
Manman Ren 620f436b20 Debug Info: remove duplication of DIEs when a DIE is part of the type system
and it is shared across CUs.

We add a few maps in DwarfDebug to map MDNodes for the type system to the
corresponding DIEs: MDTypeNodeToDieMap, MDSPNodeToDieMap, and
MDStaticMemberNodeToDieMap. These DIEs can be shared across CUs, that is why we
keep the maps in DwarfDebug instead of CompileUnit.

Sometimes, when we try to add an attribute to a DIE, the DIE is not yet added
to its owner yet, so we don't know whether we should use ref_addr or ref4.
We create a worklist that will be processed during finalization to add
attributes with the correct form (ref_addr or ref4).

We add addDIEEntry to DwarfDebug to be a wrapper around DIE->addValue. It checks
whether we know the correct form, if not, we update the worklist
(DIEEntryWorklist).

A testing case is added to show that we only create a single DIE for a type
MDNode and we use ref_addr to refer to the type DIE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191792 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-01 19:52:23 +00:00
..
Analysis Remove several unused variables. 2013-10-01 13:32:03 +00:00
AsmParser Remove several unused variables. 2013-10-01 13:32:03 +00:00
Bitcode AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. 2013-09-28 00:22:27 +00:00
CodeGen Debug Info: remove duplication of DIEs when a DIE is part of the type system 2013-10-01 19:52:23 +00:00
DebugInfo [DebugInfo] Simplify and speedup .debug_aranges parsing 2013-10-01 16:52:46 +00:00
ExecutionEngine Fixing MCJIT multiple module linking for OSX 2013-10-01 16:42:50 +00:00
IR Reuse variable 2013-09-30 23:31:50 +00:00
IRReader Add 'const' qualifiers to static const char* variables. 2013-07-16 01:17:10 +00:00
Linker Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
LTO Move command line options to the users of libLTO. Fixes --enable-shared build. 2013-09-30 16:39:19 +00:00
MC [MC] When MCInstPrint::printAnnotation uses a comment stream, it has to ensure 2013-10-01 19:21:24 +00:00
Object Object/COFF: Rename getXXX{Begin,End} -> xxx_{begin,end}. 2013-09-27 21:47:05 +00:00
Option Fix another mistake in r190442. 2013-09-10 23:22:56 +00:00
Support Add non-blocking Wait() for launched processes 2013-10-01 14:28:18 +00:00
TableGen Add an error check for a typo I accidentally made in a td file that caused an assert to fire. 2013-08-20 04:22:09 +00:00
Target R600: add a pass that merges clauses. 2013-10-01 19:32:58 +00:00
Transforms Don't merge tiny functions. 2013-10-01 18:05:30 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00