[PATCH] D131331: WIP: [llvm] lldb abi_tag support 1/4 - Add equality comparison API to itanium_demangle::Node

Michael Buch via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 8 15:32:14 PDT 2022


Michael137 created this revision.
Michael137 added a reviewer: aprantl.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Michael137 updated this revision to Diff 450561.
Michael137 added a comment.
Michael137 updated this revision to Diff 450564.
Michael137 updated this revision to Diff 450755.
Michael137 added a reviewer: ldionne.
Michael137 added a reviewer: urnathan.
Michael137 updated this revision to Diff 450970.
Michael137 updated this revision to Diff 450974.
Michael137 updated this revision to Diff 450977.
Michael137 published this revision for review.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

- Fixed PointerToMemberType::operator==


Michael137 added a comment.

- Add necessary null-checks


Michael137 added a comment.

Planning to add unit-tests once we are fine with the approach in https://reviews.llvm.org/D131335


Michael137 added a comment.

- Rebase


Michael137 added a comment.

- Fix NodeArray::operator==()
- Fix FunctionEncoding::operator==()
- Start adding operator!=()


Michael137 added a comment.

- Start adding unit-tests


Michael137 added a comment.

- Remove debug logging


Michael137 added a comment.

Still WIP, but general approach is there. Before I add more unit-tests (i.e., around 75 test-cases, one for each Node type), are people ok with the general implementation/testing strategy?


In LLDB we currently rely on hand-parsing demangled function
prototypes when selecting a candidate symbol for expression evaluation.
We now plan to use the Itanium mangle tree API to compare function
encodings instead.

This patch adds the ability to compare nodes of the Itanium mangle tree.

**Testing**

- TBD


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D131331

Files:
  llvm/include/llvm/Demangle/ItaniumDemangle.h
  llvm/lib/Demangle/ItaniumDemangle.cpp
  llvm/unittests/Demangle/ItaniumDemangleTest.cpp
  llvm/unittests/Demangle/ItaniumDemangleTestUtils.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131331.450977.patch
Type: text/x-patch
Size: 34483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220808/1eb229c4/attachment.bin>


More information about the llvm-commits mailing list