<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in RichManglingContextTest.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>fa52788b - [lldb] Improve RichManglingContext ergonomics (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#fa52788b</link>
        <description>[lldb] Improve RichManglingContext ergonomics (NFC)Have the different ::Parse.* methods return the demangled stringdirectly instead of having to go through ::GetBufferRef.Differential revision: https://reviews.llvm.org/D118953

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Fri, 04 Feb 2022 01:26:19 +0000</pubDate>
        <dc:creator>Jonas Devlieghere &lt;jonas@devlieghere.com&gt;</dc:creator>
    </item>
<item>
        <title>23c19395 - [lldb][NFC] Remove unused method RichManglingContext::IsFunction</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#23c19395</link>
        <description>[lldb][NFC] Remove unused method RichManglingContext::IsFunction

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Mon, 23 Aug 2021 18:31:36 +0000</pubDate>
        <dc:creator>Alex Langford &lt;apl@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>80814287 - [lldb][NFC] Fix all formatting errors in .cpp file headers</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#80814287</link>
        <description>[lldb][NFC] Fix all formatting errors in .cpp file headersSummary:A *.cpp file header in LLDB (and in LLDB) should like this:```//===-- TestUtilities.cpp -------------------------------------------------===//```However in LLDB most of our source files have arbitrary changes to this format andthese changes are spreading through LLDB as folks usually just use the existingsource files as templates for their new files (most notably the unnecessaryeditor language indicator `-*- C++ -*-` is spreading and in every reviewsomeone is pointing out that this is wrong, resulting in people pointing out that thisis done in the same way in other files).This patch removes most of these inconsistencies including the editor language indicators,all the different missing/additional &apos;-&apos; characters, files that center the file name, missingtrailing `===//` (mostly caused by clang-format breaking the line).Reviewers: aprantl, espindola, jfb, shafik, JDevlieghereReviewed By: JDevlieghereSubscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commitsTags: #lldbDifferential Revision: https://reviews.llvm.org/D73258

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Fri, 24 Jan 2020 07:23:27 +0000</pubDate>
        <dc:creator>Raphael Isemann &lt;teemperor@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2946cd70 - Update the file headers across all of the LLVM projects in the monorepo</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#2946cd70</link>
        <description>Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we&apos;re moving the headerentirely to discuss the new license. We checked this carefully with theFoundation&apos;s lawyer and we believe this is the correct approach.Essentially, all code in the project is now made available by the LLVMproject under our new license, so you will see that the license headersinclude that license only. Some of our contributors have contributedcode under our old license, and accordingly, we have retained a copy ofour old license notice in the top-level files in each project andrepository.llvm-svn: 351636

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Sat, 19 Jan 2019 08:50:56 +0000</pubDate>
        <dc:creator>Chandler Carruth &lt;chandlerc@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2fc9c3b0 - [lldb] Remove an assertion in RichManglingContext::GetBufferRef() hit when debugging a native x86 Windows process</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#2fc9c3b0</link>
        <description>[lldb] Remove an assertion in RichManglingContext::GetBufferRef() hit when debugging a native x86 Windows processSummary: A RichManglingContext constructed with an invalid demangled name or with a demangled function name without any context will have an empty context. This triggers an assertion in RichManglingContext::GetBufferRef() when debugging a native Windows process on x86 when it shouldn&apos;t. Remove the assertion.Reviewers: aleksandr.urakov, zturner, lldb-commitsReviewed By: zturnerSubscribers: erik.pilkingtonDifferential Revision: https://reviews.llvm.org/D52626llvm-svn: 343292

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Fri, 28 Sep 2018 02:33:51 +0000</pubDate>
        <dc:creator>Aaron Smith &lt;aaron.smith@microsoft.com&gt;</dc:creator>
    </item>
<item>
        <title>d0514164 - RichManglingContext: Make m_ipd_str_len a local variable and simplify processIPDStrResult + polishing in test and Mangled</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#d0514164</link>
        <description>RichManglingContext: Make m_ipd_str_len a local variable and simplify processIPDStrResult + polishing in test and Mangledllvm-svn: 339440

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Fri, 10 Aug 2018 15:21:33 +0000</pubDate>
        <dc:creator>Stefan Granitz &lt;stefan.graenitz@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f1a98df6 - Use rich mangling information in Symtab::InitNameIndexes()</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp#f1a98df6</link>
        <description>Use rich mangling information in Symtab::InitNameIndexes()Summary:I set up a new review, because not all the code I touched was marked as a change in old one anymore.In preparation for this review, there were two earlier ones:* https://reviews.llvm.org/D49612 introduced the ItaniumPartialDemangler to LLDB demangling without conceptual changes* https://reviews.llvm.org/D49909 added a unit test that covers all relevant code paths in the InitNameIndexes() functionPrimary goals for this patch are:(1) Use ItaniumPartialDemangler&apos;s rich mangling info for building LLDB&apos;s name index.(2) Provide a uniform interface.(3) Improve indexing performance.The central implementation in this patch is our new function for explicit demangling:```const RichManglingInfo *Mangled::DemangleWithRichManglingInfo(RichManglingContext &amp;, SkipMangledNameFn *)```It takes a context object and a filter function and provides read-only access to the rich mangling info on success, or otherwise returns null. The two new classes are:* `RichManglingInfo` offers a uniform interface to query symbol properties like `getFunctionDeclContextName()` or `isCtorOrDtor()` that are forwarded to the respective provider internally (`llvm::ItaniumPartialDemangler` or `lldb_private::CPlusPlusLanguage::MethodName`).* `RichManglingContext` works a bit like `LLVMContext`, it the actual `RichManglingInfo` returned from `DemangleWithRichManglingInfo()` and handles lifetime and configuration. It is likely stack-allocated and can be reused for multiple queries during batch processing.The idea here is that `DemangleWithRichManglingInfo()` acts like a gate keeper. It only provides access to `RichManglingInfo` on success, which in turn avoids the need to handle a `NoInfo` state in every single one of its getters. Having it stored within the context, avoids extra heap allocations and aids (3). As instantiations of the IPD the are considered expensive, the context is the ideal place to store it too. An efficient filtering function `SkipMangledNameFn` is another piece in the performance puzzle and it helps to mimic the original behavior of `InitNameIndexes`.Future potential:* `DemangleWithRichManglingInfo()` is thread-safe, IFF using different contexts in different threads. This may be exploited in the future. (It&apos;s another thing that it has in common with `LLVMContext`.)* The old implementation only parsed and indexed Itanium mangled names. The new `RichManglingInfo` can be extended for various mangling schemes and languages.One problem with the implementation of RichManglingInfo is the inaccessibility of class `CPlusPlusLanguage::MethodName` (defined in source/Plugins/Language/..), from within any header in the Core components of LLDB. The rather hacky solution is to store a type erased reference and cast it to the correct type on access in the cpp - see `RichManglingInfo::get&lt;ParserT&gt;()`. At the moment there seems to be no better way to do it. IMHO `CPlusPlusLanguage::MethodName` should be a top-level class in order to enable forward delcarations (but that is a rather big change I guess).First simple profiling shows a good speedup. `target create clang` now takes 0.64s on average. Before the change I observed runtimes between 0.76s an 1.01s. This is still no bulletproof data (I only ran it on one machine!), but it&apos;s a promising indicator I think.Reviewers: labath, jingham, JDevlieghere, erik.pilkingtonSubscribers: zturner, clayborg, mgorny, lldb-commitsDifferential Revision: https://reviews.llvm.org/D50071llvm-svn: 339291

            List of files:
            /llvm-project-15.0.7/lldb/unittests/Core/RichManglingContextTest.cpp</description>
        <pubDate>Wed, 08 Aug 2018 21:57:37 +0000</pubDate>
        <dc:creator>Stefan Granitz &lt;stefan.graenitz@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
