[Lldb-commits] [PATCH] D153073: [LLDB] Add DWARF definitions for the new Mojo language
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG582582fb474b: [LLDB] Add DWARF definitions for the new Mojo language (authored by wallace). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153073/new/ https://reviews.llvm.org/D153073 Files: lldb/include/lldb/lldb-enumerations.h lldb/source/Target/Language.cpp llvm/include/llvm-c/DebugInfo.h llvm/include/llvm/BinaryFormat/Dwarf.def llvm/include/llvm/BinaryFormat/Dwarf.h llvm/lib/IR/DIBuilder.cpp Index: llvm/lib/IR/DIBuilder.cpp === --- llvm/lib/IR/DIBuilder.cpp +++ llvm/lib/IR/DIBuilder.cpp @@ -140,7 +140,7 @@ DICompileUnit::DebugNameTableKind NameTableKind, bool RangesBaseAddress, StringRef SysRoot, StringRef SDK) { - assert(((Lang <= dwarf::DW_LANG_Ada2012 && Lang >= dwarf::DW_LANG_C89) || + assert(((Lang <= dwarf::DW_LANG_Mojo && Lang >= dwarf::DW_LANG_C89) || (Lang <= dwarf::DW_LANG_hi_user && Lang >= dwarf::DW_LANG_lo_user)) && "Invalid Language tag"); Index: llvm/include/llvm/BinaryFormat/Dwarf.h === --- llvm/include/llvm/BinaryFormat/Dwarf.h +++ llvm/include/llvm/BinaryFormat/Dwarf.h @@ -268,6 +268,7 @@ case DW_LANG_Fortran18: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: result = false; break; } @@ -334,6 +335,7 @@ case DW_LANG_C17: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: result = false; break; } @@ -398,6 +400,7 @@ case DW_LANG_Fortran18: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: return false; } llvm_unreachable("Unknown language kind."); Index: llvm/include/llvm/BinaryFormat/Dwarf.def === --- llvm/include/llvm/BinaryFormat/Dwarf.def +++ llvm/include/llvm/BinaryFormat/Dwarf.def @@ -948,6 +948,7 @@ HANDLE_DW_LANG(0x002d, Fortran18, 0, 0, DWARF) HANDLE_DW_LANG(0x002e, Ada2005, 0, 0, DWARF) HANDLE_DW_LANG(0x002f, Ada2012, 0, 0, DWARF) +HANDLE_DW_LANG(0x0033, Mojo, 0, 0, DWARF) // Vendor extensions: HANDLE_DW_LANG(0x8001, Mips_Assembler, std::nullopt, 0, MIPS) HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, 0, GOOGLE) Index: llvm/include/llvm-c/DebugInfo.h === --- llvm/include/llvm-c/DebugInfo.h +++ llvm/include/llvm-c/DebugInfo.h @@ -125,6 +125,7 @@ LLVMDWARFSourceLanguageFortran18, LLVMDWARFSourceLanguageAda2005, LLVMDWARFSourceLanguageAda2012, + LLVMDWARFSourceLanguageMojo, // Vendor extensions: LLVMDWARFSourceLanguageMips_Assembler, LLVMDWARFSourceLanguageGOOGLE_RenderScript, Index: lldb/source/Target/Language.cpp === --- lldb/source/Target/Language.cpp +++ lldb/source/Target/Language.cpp @@ -209,9 +209,9 @@ {"fortran18", eLanguageTypeFortran18}, {"ada2005", eLanguageTypeAda2005}, {"ada2012", eLanguageTypeAda2012}, +{"mojo", eLanguageTypeMojo}, // Vendor Extensions {"assembler", eLanguageTypeMipsAssembler}, -{"mojo", eLanguageTypeMojo}, // Now synonyms, in arbitrary order {"objc", eLanguageTypeObjC}, {"objc++", eLanguageTypeObjC_plus_plus}, @@ -457,12 +457,12 @@ return std::pair(); } -bool Language::DemangledNameContainsPath(llvm::StringRef path, +bool Language::DemangledNameContainsPath(llvm::StringRef path, ConstString demangled) const { // The base implementation does a simple contains comparision: if (path.empty()) return false; - return demangled.GetStringRef().contains(path); + return demangled.GetStringRef().contains(path); } DumpValueObjectOptions::DeclPrintingHelper Language::GetDeclPrintingHelper() { Index: lldb/include/lldb/lldb-enumerations.h === --- lldb/include/lldb/lldb-enumerations.h +++ lldb/include/lldb/lldb-enumerations.h @@ -490,16 +490,16 @@ eLanguageTypeFortran18 = 0x002d, eLanguageTypeAda2005 = 0x002e, eLanguageTypeAda2012 = 0x002f, + eLanguageTypeMojo = 0x0033, // Vendor Extensions // Note: Language::GetNameForLanguageType // assumes these can be used as indexes into array language_names, and // Language::SetLanguageFromCString and Language::AsCString assume these can // be used as indexes into array g_languages. - eLanguageTypeMipsAssembler, ///< Mips_Assembler. + eLanguageTypeMipsAssembler, ///< Mips_Assembler. // Mojo will move to the common list of languages once the DWARF committee // creates a language code for it. - eLanguageTypeMojo, eNumLanguageTypes };
[Lldb-commits] [PATCH] D153073: [LLDB] Add DWARF definitions for the new Mojo language
jloser added a comment. Excited to see this come together! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153073/new/ https://reviews.llvm.org/D153073 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D153073: [LLDB] Add DWARF definitions for the new Mojo language
rriddle accepted this revision. rriddle added a comment. This revision is now accepted and ready to land. LGTM, but deferring to code owners for full approval. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153073/new/ https://reviews.llvm.org/D153073 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D153073: [LLDB] Add DWARF definitions for the new Mojo language
wallace created this revision. Herald added a reviewer: deadalnix. Herald added a subscriber: hiraditya. Herald added a project: All. wallace requested review of this revision. Herald added projects: LLDB, LLVM. Herald added subscribers: llvm-commits, lldb-commits. The new language Mojo recently received a proper DWARF code, which can be seen in https://dwarfstd.org/languages.html, and this patch adds the basic definitions for using this language in DWARF. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D153073 Files: lldb/include/lldb/lldb-enumerations.h lldb/source/Target/Language.cpp llvm/include/llvm-c/DebugInfo.h llvm/include/llvm/BinaryFormat/Dwarf.def llvm/include/llvm/BinaryFormat/Dwarf.h llvm/lib/IR/DIBuilder.cpp Index: llvm/lib/IR/DIBuilder.cpp === --- llvm/lib/IR/DIBuilder.cpp +++ llvm/lib/IR/DIBuilder.cpp @@ -138,7 +138,7 @@ DICompileUnit::DebugNameTableKind NameTableKind, bool RangesBaseAddress, StringRef SysRoot, StringRef SDK) { - assert(((Lang <= dwarf::DW_LANG_Ada2012 && Lang >= dwarf::DW_LANG_C89) || + assert(((Lang <= dwarf::DW_LANG_Mojo && Lang >= dwarf::DW_LANG_C89) || (Lang <= dwarf::DW_LANG_hi_user && Lang >= dwarf::DW_LANG_lo_user)) && "Invalid Language tag"); Index: llvm/include/llvm/BinaryFormat/Dwarf.h === --- llvm/include/llvm/BinaryFormat/Dwarf.h +++ llvm/include/llvm/BinaryFormat/Dwarf.h @@ -263,6 +263,7 @@ case DW_LANG_Fortran18: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: result = false; break; } @@ -329,6 +330,7 @@ case DW_LANG_C17: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: result = false; break; } @@ -393,6 +395,7 @@ case DW_LANG_Fortran18: case DW_LANG_Ada2005: case DW_LANG_Ada2012: + case DW_LANG_Mojo: return false; } llvm_unreachable("Unknown language kind."); Index: llvm/include/llvm/BinaryFormat/Dwarf.def === --- llvm/include/llvm/BinaryFormat/Dwarf.def +++ llvm/include/llvm/BinaryFormat/Dwarf.def @@ -925,6 +925,7 @@ HANDLE_DW_LANG(0x002d, Fortran18, 0, 0, DWARF) HANDLE_DW_LANG(0x002e, Ada2005, 0, 0, DWARF) HANDLE_DW_LANG(0x002f, Ada2012, 0, 0, DWARF) +HANDLE_DW_LANG(0x0033, Mojo, 0, 0, DWARF) // Vendor extensions: HANDLE_DW_LANG(0x8001, Mips_Assembler, std::nullopt, 0, MIPS) HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, 0, GOOGLE) Index: llvm/include/llvm-c/DebugInfo.h === --- llvm/include/llvm-c/DebugInfo.h +++ llvm/include/llvm-c/DebugInfo.h @@ -125,6 +125,7 @@ LLVMDWARFSourceLanguageFortran18, LLVMDWARFSourceLanguageAda2005, LLVMDWARFSourceLanguageAda2012, + LLVMDWARFSourceLanguageMojo, // Vendor extensions: LLVMDWARFSourceLanguageMips_Assembler, LLVMDWARFSourceLanguageGOOGLE_RenderScript, Index: lldb/source/Target/Language.cpp === --- lldb/source/Target/Language.cpp +++ lldb/source/Target/Language.cpp @@ -209,9 +209,9 @@ {"fortran18", eLanguageTypeFortran18}, {"ada2005", eLanguageTypeAda2005}, {"ada2012", eLanguageTypeAda2012}, +{"mojo", eLanguageTypeMojo}, // Vendor Extensions {"assembler", eLanguageTypeMipsAssembler}, -{"mojo", eLanguageTypeMojo}, // Now synonyms, in arbitrary order {"objc", eLanguageTypeObjC}, {"objc++", eLanguageTypeObjC_plus_plus}, @@ -457,12 +457,12 @@ return std::pair(); } -bool Language::DemangledNameContainsPath(llvm::StringRef path, +bool Language::DemangledNameContainsPath(llvm::StringRef path, ConstString demangled) const { // The base implementation does a simple contains comparision: if (path.empty()) return false; - return demangled.GetStringRef().contains(path); + return demangled.GetStringRef().contains(path); } DumpValueObjectOptions::DeclPrintingHelper Language::GetDeclPrintingHelper() { Index: lldb/include/lldb/lldb-enumerations.h === --- lldb/include/lldb/lldb-enumerations.h +++ lldb/include/lldb/lldb-enumerations.h @@ -490,16 +490,16 @@ eLanguageTypeFortran18 = 0x002d, eLanguageTypeAda2005 = 0x002e, eLanguageTypeAda2012 = 0x002f, + eLanguageTypeMojo = 0x0033, // Vendor Extensions // Note: Language::GetNameForLanguageType // assumes these can be used as indexes into array language_names, and // Language::SetLanguageFromCString and Language::AsCString assume these can // be used as indexes into array g_languages. - eLanguageTypeMipsAssembler, ///< Mips_Assembler. + eLanguageTypeMipsAssembler, ///< Mips_Assembler. // Mojo will move to the common list