diff options
| author | David Blaikie <dblaikie@gmail.com> | 2013-11-20 18:40:16 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2013-11-20 18:40:16 +0000 |
| commit | bcb418e56f879a8df2428211e727e06f2b23b535 (patch) | |
| tree | cf21f6c187029b51ab7b573ec0da66d7f531a14d /llvm/lib/CodeGen/AsmPrinter | |
| parent | c74010df48919a8360e3e095b1cdcbb71dda14be (diff) | |
| download | bcm5719-llvm-bcb418e56f879a8df2428211e727e06f2b23b535.tar.gz bcm5719-llvm-bcb418e56f879a8df2428211e727e06f2b23b535.zip | |
CR feedback for r195166: Add comments regarding type unit mapping and type units disabling cross-CU sharing.
Changes suggested by Manman Ren.
llvm-svn: 195262
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 9 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 2489002f7fd..688791e04ff 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -112,8 +112,13 @@ int64_t CompileUnit::getDefaultLowerBound() const { /// Check whether the DIE for this MDNode can be shared across CUs. static bool isShareableAcrossCUs(DIDescriptor D) { - // When the MDNode can be part of the type system, the DIE can be - // shared across CUs. + // When the MDNode can be part of the type system, the DIE can be shared + // across CUs. + // Combining type units and cross-CU DIE sharing is lower value (since + // cross-CU DIE sharing is used in LTO and removes type redundancy at that + // level already) but may be implementable for some value in projects + // building multiple independent libraries with LTO and then linking those + // together. return (D.isType() || (D.isSubprogram() && !DISubprogram(D).isDefinition())) && !GenerateTypeUnits; diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index c3b12997317..5ba7cbf9d73 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -443,7 +443,11 @@ class DwarfDebug { ImportedEntityMap; ImportedEntityMap ScopesWithImportedEntities; - // Holder for types that are going to be extracted out into a type unit. + // Map from type MDNodes to a pair used as a union. If the pointer is + // non-null, proxy DIEs in CUs meant to reference this type should be stored + // in the vector. The hash will be added to these DIEs once it is computed. If + // the pointer is null, the hash is immediately available in the uint64_t and + // should be directly used for proxy DIEs. DenseMap<const MDNode *, std::pair<uint64_t, SmallVectorImpl<DIE*>* > > TypeUnits; // Whether to emit the pubnames/pubtypes sections. |

