Skip to content

[Demangler] Further optimizations for the remangler. #72902

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 10, 2024

Conversation

al45tair
Copy link
Contributor

@al45tair al45tair commented Apr 8, 2024

Replace use of snprintf() with some custom code (this is around 10x faster on my machine).

Move a few of the Node member functions to the header so they're inlined.

Optimize the deepEquals() function by adding an isSimilarTo() method on Node; the checks that were happening in the deepEquals() function could be implemented more efficiently by making use of details of the internal representation of Node.

rdar://125739630

al45tair added 2 commits April 8, 2024 15:13
Replace use of `snprintf()` with some custom code (this is around 10x
faster on my machine).

Move a few of the `Node` member functions to the header so they're
inlined.

Optimize the `deepEquals()` function by adding an `isSimilarTo()`
method on `Node`; the checks that were happening in the `deepEquals()`
function could be implemented more efficiently by making use of
details of the internal representation of `Node`.

rdar://125739630
Ignore the line and column number in the output.

rdar://125989715
@al45tair al45tair added 🍒 release cherry pick Flag: Release branch cherry picks swift 6.0 labels Apr 8, 2024
@al45tair al45tair requested a review from a team as a code owner April 8, 2024 14:14
@al45tair
Copy link
Contributor Author

al45tair commented Apr 8, 2024

Explanation: These are needed to help offset the effects of the prespecialized metadata support, which has put the remangler into a performance critical path it wasn't previously in.
Original PR: #72884
Reviewed by: @mikeash
Risk: Low. This is mostly rearrangement of existing code, and there is a good suite of tests for the de/remangler.
Resolves: rdar://125989715
Tests: The demangling and remangling tests exercise all of this code.

@al45tair
Copy link
Contributor Author

al45tair commented Apr 8, 2024

@swift-ci Please test

@al45tair
Copy link
Contributor Author

al45tair commented Apr 8, 2024

@swift-ci Please test macOS platform

@al45tair
Copy link
Contributor Author

al45tair commented Apr 9, 2024

@swift-ci Please test macOS platform

@al45tair
Copy link
Contributor Author

al45tair commented Apr 9, 2024

@swift-ci Please test

@al45tair al45tair merged commit a1d3ac1 into swiftlang:release/6.0 Apr 10, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍒 release cherry pick Flag: Release branch cherry picks swift 6.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants