Skip to content
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

Define suppressEA option and implement regular expression matching based on a location in IL #6872

Merged
merged 2 commits into from
Feb 1, 2023

Conversation

hzongaro
Copy link
Member

@hzongaro hzongaro commented Jan 31, 2023

This change introduces the suppressEA option. The intent is that a downstream project can use the option to suppress stack allocations at matching locations that might be performed in an Escape Analysis optimization.

The other part of the change defines a new TR::SimpleRegex::match method that will match a regular expression against a location in a sequence of inlined method invocations that are described by a TR_ByteCodeInfo. The TR_ByteCodeInfo is rendered as strings of the form

   '#' <outermost-method-sig> '@' <bc-offset> { '#' <inlined-method-sig> '@' <bc-offset> } *

and

   '@' <bc-offset> { '#' <inlined-method-sig> '@' <bc-offset> } *

where each <bc-offset> is the bytecode offset from the start of a method, and each <method-sig> is the signature of the outermost method or an inlined method invocation. If either string matches the specified regular expression, the match is successful. That makes the outermost method signature optional in the specified regular expression.

It is likely that projects taking advantage of the suppressEA option will use this new form of regular expression matching.

This change introduces the suppressEA option.  The intent is that a
downstream project can use the option to suppress stack allocations
at matching locations that might be performed in an Escape Analysis
optimization.
@hzongaro
Copy link
Member Author

Removed stray trailing whitespace

@hzongaro hzongaro marked this pull request as ready for review January 31, 2023 19:07
@hzongaro
Copy link
Member Author

Devin @jdmpapin, may I ask you to review this change?

@hzongaro
Copy link
Member Author

hzongaro commented Feb 1, 2023

@jdmpapin Devin, I have addressed your comments in commit ecc34b7. Once you are OK with those changes, I can squash the new commit.

Copy link
Contributor

@jdmpapin jdmpapin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Please squash

This change defines a new SimpleRegex::match method that will match a
regular expression against a location in a sequence of inlined method
invocations that are described by a TR_ByteCodeInfo.  The
TR_ByteCodeInfo is rendered as strings of the form

and

@<bc-offset>{#<inlined-method-sig>@<bc-offset>}*

where each <bc-offset> is the bytecode offset from the start of a
method, and each <method-sig> is the signature of the outermost method
or an inlined method invocation.  If either string matches the specified
regular expression, the match is successful.  That makes the outermost
method signature optional in the specified regular expression.
@hzongaro
Copy link
Member Author

hzongaro commented Feb 1, 2023

Please squash

Done

@jdmpapin
Copy link
Contributor

jdmpapin commented Feb 1, 2023

Jenkins build all

@jdmpapin jdmpapin self-assigned this Feb 1, 2023
@jdmpapin
Copy link
Contributor

jdmpapin commented Feb 1, 2023

The Mac failure is #6516

@jdmpapin
Copy link
Contributor

jdmpapin commented Feb 1, 2023

All other checks have passed

@jdmpapin jdmpapin merged commit 4147c5e into eclipse:master Feb 1, 2023
@hzongaro hzongaro deleted the suppressEA-regex-option branch February 2, 2023 04:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants