Lines Matching full:cu

84     "split-dwarf-cross-cu-references", cl::Hidden,
85 cl::desc("Enable cross-cu references in DWO files"), cl::init(false));
530 template <typename Func> static void forBothCUs(DwarfCompileUnit &CU, Func F) { in forBothCUs() argument
531 F(CU); in forBothCUs()
532 if (auto *SkelCU = CU.getSkeleton()) in forBothCUs()
533 if (CU.getCUNode()->getSplitDebugInlining()) in forBothCUs()
552 // Avoid building the original CU if it won't be used in constructAbstractSubprogramScopeDIE()
555 auto &CU = getOrCreateDwarfCompileUnit(SP->getUnit()); in constructAbstractSubprogramScopeDIE() local
556 if (auto *SkelCU = CU.getSkeleton()) { in constructAbstractSubprogramScopeDIE()
557 (shareAcrossDWOCUs() ? CU : SrcCU) in constructAbstractSubprogramScopeDIE()
559 if (CU.getCUNode()->getSplitDebugInlining()) in constructAbstractSubprogramScopeDIE()
562 CU.constructAbstractSubprogramScopeDIE(Scope); in constructAbstractSubprogramScopeDIE()
875 DwarfCompileUnit &CU, DIE &ScopeDIE, in constructCallSiteEntryDIEs() argument
886 CU.addFlag(ScopeDIE, CU.getDwarf5OrGNUAttr(dwarf::DW_AT_call_all_calls)); in constructCallSiteEntryDIEs()
970 (!IsTail || CU.useGNUAnalogForDwarf5Feature()) in constructCallSiteEntryDIEs()
988 DIE &CallSiteDIE = CU.constructCallSiteEntryDIE( in constructCallSiteEntryDIEs()
996 CU.constructCallSiteParmEntryDIEs(CallSiteDIE, Params); in constructCallSiteEntryDIEs()
1040 // skeleton CU and so we don't need to duplicate it here. in finishUnitAttributes()
1060 // This CU is either a clang module DWO or a skeleton CU. in finishUnitAttributes()
1064 // This is a prefabricated skeleton CU. in finishUnitAttributes()
1076 if (auto *CU = CUMap.lookup(DIUnit)) in getOrCreateDwarfCompileUnit() local
1077 return *CU; in getOrCreateDwarfCompileUnit()
1197 DwarfCompileUnit &CU = getOrCreateDwarfCompileUnit(CUNode); in beginModule() local
1201 // Don't bother adding DIGlobalVariableExpressions listed in the CU if we in beginModule()
1214 CU.getOrCreateGlobalVariableDIE(GV, sortGlobalExprs(GVMap[GV])); in beginModule()
1218 CU.getOrCreateTypeDIE(cast<DIType>(Ty)); in beginModule()
1225 CU.getOrCreateTypeDIE(RT); in beginModule()
1248 [&](DwarfCompileUnit &CU) { CU.finishSubprogramDefinition(SP); }); in finishSubprogramDefinitions() argument
1259 // Include the DWO file name in the hash if there's more than one CU. in finalizeModuleInfo()
1261 // duplicate with the same CU partially imported into another ThinLTO unit. in finalizeModuleInfo()
1278 // Add CU specific attributes if we need to add any. in finalizeModuleInfo()
1280 // CU then add the dwo id to it. in finalizeModuleInfo()
1298 // Emit a unique identifier for this CU. in finalizeModuleInfo()
1340 // We don't keep track of which addresses are used in which CU so this in finalizeModuleInfo()
1412 DwarfCompileUnit *CU = &*P.second; in endModule() local
1417 "Unexpected function-local entity in 'imports' CU field."); in endModule()
1418 CU->getOrCreateImportedEntityDIE(IE); in endModule()
1420 for (const auto *D : CU->getDeferredLocalDecls()) { in endModule()
1422 CU->getOrCreateImportedEntityDIE(IE); in endModule()
1428 CU->createBaseTypeDIEs(); in endModule()
1432 // conditionalized on the presence of the llvm.dbg.cu metadata node) in endModule()
1502 void DwarfDebug::ensureAbstractEntityIsCreatedIfScoped(DwarfCompileUnit &CU, in ensureAbstractEntityIsCreatedIfScoped() argument
1504 if (CU.getExistingAbstractEntity(Node)) in ensureAbstractEntityIsCreatedIfScoped()
1509 CU.createAbstractEntity(Node, Scope); in ensureAbstractEntityIsCreatedIfScoped()
2225 DwarfCompileUnit &CU = getOrCreateDwarfCompileUnit(SP->getUnit()); in beginFunctionImpl() local
2228 getDwarfCompileUnitIDForLineTable(CU)); in beginFunctionImpl()
2236 DwarfDebug::getDwarfCompileUnitIDForLineTable(const DwarfCompileUnit &CU) { in getDwarfCompileUnitIDForLineTable() argument
2238 // belongs to so that we add to the correct per-cu line table in the in getDwarfCompileUnitIDForLineTable()
2244 return CU.getUniqueID(); in getDwarfCompileUnitIDForLineTable()
2247 void DwarfDebug::terminateLineTable(const DwarfCompileUnit *CU) { in terminateLineTable() argument
2248 const auto &CURanges = CU->getRanges(); in terminateLineTable()
2250 getDwarfCompileUnitIDForLineTable(*CU)); in terminateLineTable()
2251 // Add the last range label for the given CU. in terminateLineTable()
2289 // Add the range of this function to the list of ranges for the CU. in endFunctionImpl()
2436 // dwarf pubnames - offset/name pairs where the offset is the offset into the CU
2440 // into the CU and the index value is computed according to the type of value
2447 /// computeIndexValue - Compute the gdb index value for the DIE and CU.
2448 static dwarf::PubIndexEntryDescriptor computeIndexValue(DwarfUnit *CU, in computeIndexValue() argument
2450 // Entities that ended up only in a Type Unit reference the CU instead (since in computeIndexValue()
2451 // the pub entry has offsets within the CU there's no real offset that can be in computeIndexValue()
2480 dwarf::isCPlusPlus((dwarf::SourceLanguage)CU->getLanguage()) in computeIndexValue()
2525 void DwarfDebug::emitSectionReference(const DwarfCompileUnit &CU) { in emitSectionReference() argument
2527 Asm->emitDwarfOffset(CU.getSection()->getBeginSymbol(), in emitSectionReference()
2528 CU.getDebugSectionOffset()); in emitSectionReference()
2530 Asm->emitDwarfSymbolReference(CU.getLabelBegin()); in emitSectionReference()
2594 const DwarfCompileUnit *CU) { in emitDebugLocEntry() argument
2621 Streamer.emitDIERef(*CU->ExprRefedBaseTypes[Op.getRawOperand(I)].Die); in emitDebugLocEntry()
2762 const DwarfCompileUnit *CU) { in emitDebugLocEntryLocation() argument
2777 emitDebugLocEntry(Streamer, Entry, CU); in emitDebugLocEntryLocation()
2821 const DwarfCompileUnit &CU, unsigned BaseAddressx, unsigned OffsetPair, in emitRangeList() argument
2840 const MCSymbol *CUBase = CU.getBaseAddress(); in emitRangeList()
2917 *List.CU, dwarf::DW_LLE_base_addressx, in emitLocList()
2922 DD.emitDebugLocEntryLocation(E, List.CU); in emitLocList()
2980 emitDebugLocEntryLocation(Entry, List.CU); in emitDebugLocDWO()
2990 // Emit a debug aranges section, containing a CU lookup for any
2991 // address we can tie back to a CU.
3027 assert(Cur.CU); in emitDebugARanges()
3028 Spans[Cur.CU].push_back(Span); in emitDebugARanges()
3042 // Try and build the longest span we can within the same CU. in emitDebugARanges()
3043 if (Cur.CU != Prev.CU) { in emitDebugARanges()
3047 assert(Prev.CU); in emitDebugARanges()
3048 Spans[Prev.CU].push_back(Span); in emitDebugARanges()
3063 DwarfCompileUnit *CU = it.first; in emitDebugARanges() local
3064 CUs.push_back(CU); in emitDebugARanges()
3067 // Sort the CU list (again, to ensure consistent output order). in emitDebugARanges()
3072 // Emit an arange table for each CU we used. in emitDebugARanges()
3073 for (DwarfCompileUnit *CU : CUs) { in emitDebugARanges()
3074 std::vector<ArangeSpan> &List = Spans[CU]; in emitDebugARanges()
3076 // Describe the skeleton CU's offset and length, not the dwo file's. in emitDebugARanges()
3077 if (auto *Skel = CU->getSkeleton()) in emitDebugARanges()
3078 CU = Skel; in emitDebugARanges()
3083 Asm->getDwarfOffsetByteSize() + // Offset of CU in the .debug_info in emitDebugARanges()
3102 emitSectionReference(*CU); in emitDebugARanges()
3143 emitRangeList(DD, Asm, List.Label, List.Ranges, *List.CU, in emitRangeList()
3147 List.CU->getCUNode()->getRangesBaseAddress() || in emitRangeList()
3194 const DwarfCompileUnit &CU, uint16_t DwarfVersion) { in emitMacroHeader() argument
3214 Asm->emitDwarfSymbolReference(CU.getLineTableStartSym()); in emitMacroHeader()
3351 DwarfCompileUnit &DwarfDebug::constructSkeletonCU(const DwarfCompileUnit &CU) { in constructSkeletonCU() argument
3354 CU.getUniqueID(), CU.getCUNode(), Asm, this, &SkeletonHolder, in constructSkeletonCU()
3364 initSkeletonUnit(CU, NewCU.getUnitDie(), std::move(OwnedUnit)); in constructSkeletonCU()
3415 MCDwarfDwoLineTable *DwarfDebug::getDwoLineTable(const DwarfCompileUnit &CU) { in getDwoLineTable() argument
3418 const DICompileUnit *DIUnit = CU.getCUNode(); in getDwoLineTable()
3436 void DwarfDebug::addDwarfTypeUnitType(DwarfCompileUnit &CU, in addDwarfTypeUnitType() argument
3447 CU.addDIETypeSignature(RefDie, Ins.first->second); in addDwarfTypeUnitType()
3456 CU, Asm, this, &InfoHolder, NumTypeUnitsCreated++, getDwoLineTable(CU)); in addDwarfTypeUnitType()
3462 CU.getLanguage()); in addDwarfTypeUnitType()
3471 // know from which CU a type unit came from. These two attrbutes help it to in addDwarfTypeUnitType()
3491 CU.applyStmtList(UnitDie); in addDwarfTypeUnitType()
3515 // Construct this type in the CU directly. in addDwarfTypeUnitType()
3519 setCurrentDWARF5AccelTable(DWARF5AccelTableKind::CU); in addDwarfTypeUnitType()
3520 CU.constructTypeDIE(RefDie, cast<DICompositeType>(CTy)); in addDwarfTypeUnitType()
3540 setCurrentDWARF5AccelTable(DWARF5AccelTableKind::CU); in addDwarfTypeUnitType()
3542 CU.addDIETypeSignature(RefDie, Signature); in addDwarfTypeUnitType()
3575 "Kind is CU but TU is being processed."); in addAccelNameImpl()
3579 "Kind is TU but CU is being processed."); in addAccelNameImpl()
3664 bool DwarfDebug::alwaysUseRanges(const DwarfCompileUnit &CU) const { in alwaysUseRanges()