Skip to content

Adds flags to control recognized call transformer#8255

Open
IBMJimmyk wants to merge 1 commit into
eclipse-omr:masterfrom
IBMJimmyk:inflateChk
Open

Adds flags to control recognized call transformer#8255
IBMJimmyk wants to merge 1 commit into
eclipse-omr:masterfrom
IBMJimmyk:inflateChk

Conversation

@IBMJimmyk

Copy link
Copy Markdown
Contributor

OMRNode is updated with additional flags for call nodes.

Flags are used as part of the recognizedCallTransformer opt.

OMRNode is updated with additional flags for call nodes.

Flags are used as part of the recognizedCallTransformer opt.

Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
@IBMJimmyk IBMJimmyk changed the title WIP: Adds flags to control recognized call transformer Adds flags to control recognized call transformer May 26, 2026
@IBMJimmyk

Copy link
Copy Markdown
Contributor Author

@hzongaro Does this fall under your area? If so, can you review this change.

I'm also looking for advice for if there's a better place to put this change since it is largely for OpenJ9.

@hzongaro hzongaro requested review from hzongaro and removed request for vijaysun-omr May 27, 2026 12:12
@hzongaro hzongaro self-assigned this May 27, 2026

@hzongaro hzongaro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I had a couple of questions from a brief initial look over the changes.

Comment thread compiler/il/OMRNode.hpp
preparedForDirectToJNI = 0x00040000, // TODO: make J9_PROJECT_SPECIFIC
unsafeFastPathCall = 0x00080000, // TODO: make J9_PROJECT_SPECIFIC
inlineStringIntrinsic = 0x00100000, // TODO: make J9_PROJECT_SPECIFIC
skipRecognizedCallTransformation = 0x00200000, // TODO: make J9_PROJECT_SPECIFIC

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Recognized Call Transformer exists as an optimization in OMR, though it’s intended to be extended by downstream projects. A flag that indicates Recognized Call Transformation must be skipped doesn’t feel like it needs to be OpenJ9-specific.

Comment thread compiler/il/OMRNode.hpp
desynchronizeCall = 0x00020000,
preparedForDirectToJNI = 0x00040000, // TODO: make J9_PROJECT_SPECIFIC
unsafeFastPathCall = 0x00080000, // TODO: make J9_PROJECT_SPECIFIC
inlineStringIntrinsic = 0x00100000, // TODO: make J9_PROJECT_SPECIFIC

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It’s difficult to know precisely how this will be used without seeing the corresponding downstream changes, but I wonder whether this flag could be made to be applied more generally. Does it have to be specific to string intrinsics?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I had missed the reference to the downstream changes earlier. Taking a look at them. . . .

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

It might be possible to combine it with unsafeFastPathCall flag since they are similar in what they do. Both flags are mostly used by inlineDirectCall to indicate that a method should be replaced at codegen with special assembly. But, I would need to check to see if there are any conflicts and if the unsafeFastPathCall flag is used for anything else.

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