Move some large stack frames off recursive paths. #8507
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There were several large (>2kb) stack frames on recursive paths, which
invites stack overflow. In all cases the code could be moved into a
helper function out of the recursive path, eliminating the problem. Some
of these stack frames were also shrunk by removing state from the Intrin
IR matcher, and removing unnecessary precision in the IsInt and IsUInt
IR matchers.
Also added IRMatcher helpers for a few more intrinsics
Note the tables in HexagonOptimize are unchanged, they just got indented
more by being moved into a lambda.