[llvm] 8e04896 - NFC: DebugInfo: Refactor RangeSpanList to be a struct, like DebugLocStream::List

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 17:45:48 PST 2019


Hi,

Just a heads-up that the lldb / debuginfo-tests bot started failing when this landed:

http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/4676/ <http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/4676/>

Stack dump:
0.	Program arguments: /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/clang-10 -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -main-file-name foreach.m -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-rounding-math -masm-verbose -munwind-tables -target-sdk-version=10.14 -target-cpu penryn -dwarf-column-info -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=lldb -target-linker-version 409.12 -resource-dir /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/lib/clang/10.0.99 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -internal-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/local/include -internal-isystem /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/lib/clang/10.0.99/include -internal-externc-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include -O0 -fdebug-compilation-dir /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/projects/debuginfo-tests/llgdb-tests -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-10.14.0 -fobjc-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o /Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/projects/debuginfo-tests/llgdb-tests/Output/foreach.m.tmp.o -x objective-c /Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/debuginfo-tests/llgdb-tests/foreach.m 
1.	<eof> parser at end of file
2.	Code generation
0  clang-10                 0x000000010a6d1785 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  clang-10                 0x000000010a6d0698 llvm::sys::RunSignalHandlers() + 248
2  clang-10                 0x000000010a6d1d76 SignalHandler(int) + 262
3  libsystem_platform.dylib 0x00007fff588d1b3d _sigtramp + 29
4  clang-10                 0x000000010a2d2ca0 llvm::MCObjectStreamer::EmitBytes(llvm::StringRef) + 144
5  clang-10                 0x000000010a2ca553 (anonymous namespace)::MCMachOStreamer::EmitLabel(llvm::MCSymbol*, llvm::SMLoc) + 35
6  clang-10                 0x000000010b1b139d llvm::DwarfDebug::emitDebugRangesImpl(llvm::DwarfFile const&, llvm::MCSection*) + 429
7  clang-10                 0x000000010b1a8c58 llvm::DwarfDebug::endModule() + 376
8  clang-10                 0x000000010b177d5e llvm::AsmPrinter::doFinalization(llvm::Module&) + 1998
9  clang-10                 0x0000000109f51c96 llvm::FPPassManager::doFinalization(llvm::Module&) + 54
10 clang-10                 0x0000000109f52206 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1334
11 clang-10                 0x000000010a916cd2 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream> >) + 13698
12 clang-10                 0x000000010abda154 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 1108
13 clang-10                 0x000000010bc292b3 clang::ParseAST(clang::Sema&, bool, bool) + 643
14 clang-10                 0x000000010aeeb4d3 clang::FrontendAction::Execute() + 99
15 clang-10                 0x000000010ae7c3e3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1619
16 clang-10                 0x000000010af60a0c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1772
17 clang-10                 0x0000000108849979 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2233

vedant

> On Dec 12, 2019, at 4:54 PM, David Blaikie via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> 
> 
> Author: David Blaikie
> Date: 2019-12-12T16:53:59-08:00
> New Revision: 8e04896288d22ed8bef7ac367923374f96b753d6
> 
> URL: https://github.com/llvm/llvm-project/commit/8e04896288d22ed8bef7ac367923374f96b753d6
> DIFF: https://github.com/llvm/llvm-project/commit/8e04896288d22ed8bef7ac367923374f96b753d6.diff
> 
> LOG: NFC: DebugInfo: Refactor RangeSpanList to be a struct, like DebugLocStream::List
> 
> Move these data structures closer together so their emission code can
> eventually share more of its implementation.
> 
> Added: 
> 
> 
> Modified: 
>    llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
>    llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>    llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
>    llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
> 
> Removed: 
> 
> 
> 
> ################################################################################
> diff  --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
> index 0f3d8c689fa0..5707f962b4be 100644
> --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
> +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
> @@ -503,10 +503,10 @@ void DwarfCompileUnit::addScopeRangeList(DIE &ScopeDIE,
>     const MCSymbol *RangeSectionSym =
>         TLOF.getDwarfRangesSection()->getBeginSymbol();
>     if (isDwoUnit())
> -      addSectionDelta(ScopeDIE, dwarf::DW_AT_ranges, List.getSym(),
> +      addSectionDelta(ScopeDIE, dwarf::DW_AT_ranges, List.Label,
>                       RangeSectionSym);
>     else
> -      addSectionLabel(ScopeDIE, dwarf::DW_AT_ranges, List.getSym(),
> +      addSectionLabel(ScopeDIE, dwarf::DW_AT_ranges, List.Label,
>                       RangeSectionSym);
>   }
> }
> 
> diff  --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> index aa33659cd06e..62745f9bee72 100644
> --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> @@ -2331,7 +2331,7 @@ static MCSymbol *emitRnglistsTableHeader(AsmPrinter *Asm,
>   Asm->OutStreamer->EmitLabel(Holder.getRnglistsTableBaseSym());
> 
>   for (const RangeSpanList &List : Holder.getRangeLists())
> -    Asm->EmitLabelDifference(List.getSym(), Holder.getRnglistsTableBaseSym(),
> +    Asm->EmitLabelDifference(List.Label, Holder.getRnglistsTableBaseSym(),
>                              4);
> 
>   return TableEnd;
> @@ -2688,11 +2688,11 @@ void DwarfDebug::emitDebugARanges() {
> /// Emit a single range list. We handle both DWARF v5 and earlier.
> static void emitRangeList(DwarfDebug &DD, AsmPrinter *Asm,
>                           const RangeSpanList &List) {
> -  emitRangeList(DD, Asm, List.getSym(), List.getRanges(), List.getCU(),
> +  emitRangeList(DD, Asm, List.Label, List.Ranges, *List.CU,
>                 dwarf::DW_RLE_base_addressx, dwarf::DW_RLE_offset_pair,
>                 dwarf::DW_RLE_startx_length, dwarf::DW_RLE_end_of_list,
>                 llvm::dwarf::RangeListEncodingString,
> -                List.getCU().getCUNode()->getRangesBaseAddress() ||
> +                List.CU->getCUNode()->getRangesBaseAddress() ||
>                     DD.getDwarfVersion() >= 5,
>                 [](auto) {});
> }
> @@ -2709,8 +2709,9 @@ void DwarfDebug::emitDebugRangesImpl(const DwarfFile &Holder, MCSection *Section
> 
>   Asm->OutStreamer->SwitchSection(Section);
> 
> -  MCSymbol *TableEnd =
> -      getDwarfVersion() < 5 ? nullptr : emitRnglistsTableHeader(Asm, Holder);
> +  MCSymbol *TableEnd = nullptr;
> +  if (getDwarfVersion() < 5)
> +    TableEnd = emitRnglistsTableHeader(Asm, Holder);
> 
>   for (const RangeSpanList &List : Holder.getRangeLists())
>     emitRangeList(*this, Asm, List);
> 
> diff  --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
> index e3c9095d1343..e5c4db58f477 100644
> --- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
> +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
> @@ -126,6 +126,6 @@ void DwarfFile::addScopeLabel(LexicalScope *LS, DbgLabel *Label) {
> std::pair<uint32_t, RangeSpanList *>
> DwarfFile::addRange(const DwarfCompileUnit &CU, SmallVector<RangeSpan, 2> R) {
>   CURangeLists.push_back(
> -      RangeSpanList(Asm->createTempSymbol("debug_ranges"), CU, std::move(R)));
> +      RangeSpanList{Asm->createTempSymbol("debug_ranges"), &CU, std::move(R)});
>   return std::make_pair(CURangeLists.size() - 1, &CURangeLists.back());
> }
> 
> diff  --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
> index 35fa51fb24c4..cf293d7534d0 100644
> --- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
> +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
> @@ -37,21 +37,12 @@ struct RangeSpan {
>   const MCSymbol *End;
> };
> 
> -class RangeSpanList {
> -private:
> +struct RangeSpanList {
>   // Index for locating within the debug_range section this particular span.
> -  MCSymbol *RangeSym;
> +  MCSymbol *Label;
>   const DwarfCompileUnit *CU;
>   // List of ranges.
>   SmallVector<RangeSpan, 2> Ranges;
> -
> -public:
> -  RangeSpanList(MCSymbol *Sym, const DwarfCompileUnit &CU,
> -                SmallVector<RangeSpan, 2> Ranges)
> -      : RangeSym(Sym), CU(&CU), Ranges(std::move(Ranges)) {}
> -  MCSymbol *getSym() const { return RangeSym; }
> -  const DwarfCompileUnit &getCU() const { return *CU; }
> -  const SmallVectorImpl<RangeSpan> &getRanges() const { return Ranges; }
> };
> 
> class DwarfFile {
> 
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191212/14eca2c8/attachment.html>


More information about the llvm-commits mailing list