Lines Matching refs:Unit
46 for (auto &Unit : Dwarf.compile_units()) { in getDebugInfoSize() local
47 Size += Unit->getLength(); in getDebugInfoSize()
463 const DWARFFile &File, CompileUnit &Unit, CompileUnit::DIEInfo &MyInfo, in shouldKeepSubprogramDIE() argument
484 if (Unit.hasLabelAt(*LowPc)) in shouldKeepSubprogramDIE()
487 DWARFUnit &OrigUnit = Unit.getOrigUnit(); in shouldKeepSubprogramDIE()
495 Unit.addLabelLowPc(*LowPc, MyInfo.AddrAdjust); in shouldKeepSubprogramDIE()
510 Unit.addFunctionRange(*LowPc, *HighPc, MyInfo.AddrAdjust); in shouldKeepSubprogramDIE()
518 CompileUnit &Unit, in shouldKeepDIE() argument
527 return shouldKeepSubprogramDIE(RelocMgr, Ranges, DIE, File, Unit, MyInfo, in shouldKeepDIE()
627 DWARFUnit &Unit = CU.getOrigUnit(); in lookForRefDIEsToKeep() local
628 DWARFDataExtractor Data = Unit.getDebugInfoExtractor(); in lookForRefDIEsToKeep()
638 Unit.getFormParams()); in lookForRefDIEsToKeep()
642 Val.extractValue(Data, &Offset, Unit.getFormParams(), &Unit); in lookForRefDIEsToKeep()
697 DWARFUnit &Unit = CU.getOrigUnit(); in lookForParentDIEsToKeep() local
698 DWARFDie ParentDIE = Unit.getDIEAtIndex(AncestorIdx); in lookForParentDIEsToKeep()
871 CompileUnit &Unit) { in cloneDieReferenceAttribute() argument
872 const DWARFUnit &U = Unit.getOrigUnit(); in cloneDieReferenceAttribute()
909 (Unit.hasODR() && isODRAttribute(AttrSpec.Attr))) { in cloneDieReferenceAttribute()
926 Unit.noteForwardReference( in cloneDieReferenceAttribute()
942 CompileUnit &Unit, SmallVectorImpl<uint8_t> &OutputBuffer) { in cloneExpression() argument
977 auto RefDie = Unit.getOrigUnit().getDIEForOffset(RefOffset); in cloneExpression()
978 CompileUnit::DIEInfo &Info = Unit.getInfo(RefDie); in cloneExpression()
1005 DIE &Die, const DWARFFile &File, CompileUnit &Unit, AttributeSpec AttrSpec, in cloneBlockAttribute() argument
1035 DWARFUnit &OrigUnit = Unit.getOrigUnit(); in cloneBlockAttribute()
1040 cloneExpression(Data, Expr, File, Unit, Buffer); in cloneBlockAttribute()
1061 const CompileUnit &Unit, AttributesInfo &Info) { in cloneAddressAttribute() argument
1067 return Unit.getOrigUnit().getAddressByteSize(); in cloneAddressAttribute()
1074 Unit.getOrigUnit().getAddrOffsetSectionBase()) { in cloneAddressAttribute()
1077 StartOffset + Unit.getOrigUnit().getAddressByteSize(); in cloneAddressAttribute()
1104 Addr = Unit.getLowPc(); in cloneAddressAttribute()
1111 if (uint64_t HighPc = Unit.getHighPc()) in cloneAddressAttribute()
1133 return Unit.getOrigUnit().getAddressByteSize(); in cloneAddressAttribute()
1138 CompileUnit &Unit, AttributeSpec AttrSpec, const DWARFFormValue &Val, in cloneScalarAttribute() argument
1164 if (Unit.getLowPc() == -1ULL) in cloneScalarAttribute()
1167 Value = Unit.getHighPc() - Unit.getLowPc(); in cloneScalarAttribute()
1184 Unit.noteRangeAttribute(Die, Patch); in cloneScalarAttribute()
1194 Unit.noteLocationAttribute(Patch, Info.PCOffset); in cloneScalarAttribute()
1206 CompileUnit &Unit, OffsetsStringPool &StringPool, const DWARFFormValue &Val, in cloneAttribute() argument
1209 const DWARFUnit &U = Unit.getOrigUnit(); in cloneAttribute()
1226 File, Unit); in cloneAttribute()
1232 return cloneBlockAttribute(Die, File, Unit, AttrSpec, Val, AttrSize, in cloneAttribute()
1236 return cloneAddressAttribute(Die, AttrSpec, Val, Unit, Info); in cloneAttribute()
1246 return cloneScalarAttribute(Die, InputDIE, File, Unit, AttrSpec, Val, in cloneAttribute()
1263 void DWARFLinker::DIECloner::addObjCAccelerator(CompileUnit &Unit, in addObjCAccelerator() argument
1281 Unit.addNameAccelerator(Die, StringPool.getEntry(Selector), SkipPubSection); in addObjCAccelerator()
1286 Unit.addObjCAccelerator(Die, StringPool.getEntry(ClassName), SkipPubSection); in addObjCAccelerator()
1292 Unit.addObjCAccelerator(Die, StringPool.getEntry(ClassNameNoCategory), in addObjCAccelerator()
1299 Unit.addNameAccelerator(Die, StringPool.getEntry(MethodNameNoCategory), in addObjCAccelerator()
1333 const DWARFFile &File, CompileUnit &Unit, in cloneDIE() argument
1338 DWARFUnit &U = Unit.getOrigUnit(); in cloneDIE()
1340 CompileUnit::DIEInfo &Info = Unit.getInfo(Idx); in cloneDIE()
1343 if (!Unit.getInfo(Idx).Keep) in cloneDIE()
1358 if ((Unit.hasODR() || Unit.isClangModule()) && !Info.Incomplete && in cloneDIE()
1360 Info.Ctxt != Unit.getInfo(Info.ParentIdx).Ctxt && in cloneDIE()
1365 Info.Ctxt->setCanonicalDIEOffset(OutOffset + Unit.getStartOffset()); in cloneDIE()
1441 OutOffset += cloneAttribute(*Die, InputDIE, File, Unit, StringPool, Val, in cloneDIE()
1455 Unit.addNameAccelerator(Die, AttrInfo.MangledName, in cloneDIE()
1459 Unit.addNameAccelerator(Die, AttrInfo.NameWithoutTemplate, in cloneDIE()
1461 Unit.addNameAccelerator(Die, AttrInfo.Name, in cloneDIE()
1465 addObjCAccelerator(Unit, Die, AttrInfo.Name, StringPool, in cloneDIE()
1471 Unit.addNamespaceAccelerator(Die, AttrInfo.Name); in cloneDIE()
1475 uint32_t Hash = hashFullyQualifiedName(InputDIE, Unit, File); in cloneDIE()
1484 Unit.addTypeAccelerator(Die, AttrInfo.Name, ObjCClassIsImplementation, in cloneDIE()
1492 if (Unit.getInfo(Idx).Keep) { in cloneDIE()
1516 if (DIE *Clone = cloneDIE(Child, File, Unit, StringPool, PCOffset, in cloneDIE()
1533 void DWARFLinker::patchRangesForUnit(const CompileUnit &Unit, in patchRangesForUnit() argument
1537 const auto &FunctionRanges = Unit.getFunctionRanges(); in patchRangesForUnit()
1538 unsigned AddressSize = Unit.getOrigUnit().getAddressByteSize(); in patchRangesForUnit()
1543 DWARFUnit &OrigUnit = Unit.getOrigUnit(); in patchRangesForUnit()
1551 UnitPcOffset = int64_t(OrigLowPc) - Unit.getLowPc(); in patchRangesForUnit()
1553 for (const auto &RangeAttribute : Unit.getRangesAttributes()) { in patchRangesForUnit()
1588 void DWARFLinker::generateUnitRanges(CompileUnit &Unit) const { in generateUnitRanges()
1589 auto Attr = Unit.getUnitRangesAttribute(); in generateUnitRanges()
1592 TheDwarfEmitter->emitUnitRangesEntries(Unit, static_cast<bool>(Attr)); in generateUnitRanges()
1640 void DWARFLinker::patchLineTableForUnit(CompileUnit &Unit, in patchLineTableForUnit() argument
1643 DWARFDie CUDie = Unit.getOrigUnit().getUnitDIE(); in patchLineTableForUnit()
1649 if (auto *OutputDIE = Unit.getOutputUnitDIE()) in patchLineTableForUnit()
1660 OrigDwarf.isLittleEndian(), Unit.getOrigUnit().getAddressByteSize()); in patchLineTableForUnit()
1666 &Unit.getOrigUnit(), OrigDwarf.getWarningHandler())) in patchLineTableForUnit()
1676 const auto &FunctionRanges = Unit.getFunctionRanges(); in patchLineTableForUnit()
1779 Unit.getOrigUnit().getAddressByteSize()); in patchLineTableForUnit()
1783 void DWARFLinker::emitAcceleratorEntriesForUnit(CompileUnit &Unit) { in emitAcceleratorEntriesForUnit() argument
1786 emitAppleAcceleratorEntriesForUnit(Unit); in emitAcceleratorEntriesForUnit()
1789 emitDwarfAcceleratorEntriesForUnit(Unit); in emitAcceleratorEntriesForUnit()
1792 emitPubAcceleratorEntriesForUnit(Unit); in emitAcceleratorEntriesForUnit()
1800 void DWARFLinker::emitAppleAcceleratorEntriesForUnit(CompileUnit &Unit) { in emitAppleAcceleratorEntriesForUnit() argument
1802 for (const auto &Namespace : Unit.getNamespaces()) in emitAppleAcceleratorEntriesForUnit()
1804 Namespace.Die->getOffset() + Unit.getStartOffset()); in emitAppleAcceleratorEntriesForUnit()
1807 for (const auto &Pubname : Unit.getPubnames()) in emitAppleAcceleratorEntriesForUnit()
1809 Pubname.Die->getOffset() + Unit.getStartOffset()); in emitAppleAcceleratorEntriesForUnit()
1812 for (const auto &Pubtype : Unit.getPubtypes()) in emitAppleAcceleratorEntriesForUnit()
1814 Pubtype.Name, Pubtype.Die->getOffset() + Unit.getStartOffset(), in emitAppleAcceleratorEntriesForUnit()
1821 for (const auto &ObjC : Unit.getObjC()) in emitAppleAcceleratorEntriesForUnit()
1822 AppleObjc.addName(ObjC.Name, ObjC.Die->getOffset() + Unit.getStartOffset()); in emitAppleAcceleratorEntriesForUnit()
1825 void DWARFLinker::emitDwarfAcceleratorEntriesForUnit(CompileUnit &Unit) { in emitDwarfAcceleratorEntriesForUnit() argument
1826 for (const auto &Namespace : Unit.getNamespaces()) in emitDwarfAcceleratorEntriesForUnit()
1828 Namespace.Die->getTag(), Unit.getUniqueID()); in emitDwarfAcceleratorEntriesForUnit()
1829 for (const auto &Pubname : Unit.getPubnames()) in emitDwarfAcceleratorEntriesForUnit()
1831 Pubname.Die->getTag(), Unit.getUniqueID()); in emitDwarfAcceleratorEntriesForUnit()
1832 for (const auto &Pubtype : Unit.getPubtypes()) in emitDwarfAcceleratorEntriesForUnit()
1834 Pubtype.Die->getTag(), Unit.getUniqueID()); in emitDwarfAcceleratorEntriesForUnit()
1837 void DWARFLinker::emitPubAcceleratorEntriesForUnit(CompileUnit &Unit) { in emitPubAcceleratorEntriesForUnit() argument
1838 TheDwarfEmitter->emitPubNamesForUnit(Unit); in emitPubAcceleratorEntriesForUnit()
1839 TheDwarfEmitter->emitPubTypesForUnit(Unit); in emitPubAcceleratorEntriesForUnit()
1969 static uint64_t getDwoId(const DWARFDie &CUDie, const DWARFUnit &Unit) { in getDwoId() argument
1989 bool DWARFLinker::registerModuleReference(DWARFDie CUDie, const DWARFUnit &Unit, in registerModuleReference() argument
2004 uint64_t DwoId = getDwoId(CUDie, Unit); in registerModuleReference()
2068 std::unique_ptr<CompileUnit> Unit; in loadClangModule() local
2079 if (Unit) { in loadClangModule()
2103 Unit = std::make_unique<CompileUnit>(*CU, UnitID++, !Options.NoODR, in loadClangModule()
2105 Unit->setHasInterestingContent(); in loadClangModule()
2106 analyzeContextInfo(CUDie, 0, *Unit, &ODRContexts.getRoot(), ODRContexts, in loadClangModule()
2112 Unit->markEverythingAsKept(); in loadClangModule()
2115 assert(Unit && "CompileUnit is not set!"); in loadClangModule()
2116 if (!Unit->getOrigUnit().getUnitDIE().hasChildren()) in loadClangModule()
2124 CompileUnits.push_back(std::move(Unit)); in loadClangModule()