Adds flags to control recognized call transformer#8255
Conversation
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>
|
@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
left a comment
There was a problem hiding this comment.
I had a couple of questions from a brief initial look over the changes.
| 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 |
There was a problem hiding this comment.
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.
| desynchronizeCall = 0x00020000, | ||
| preparedForDirectToJNI = 0x00040000, // TODO: make J9_PROJECT_SPECIFIC | ||
| unsafeFastPathCall = 0x00080000, // TODO: make J9_PROJECT_SPECIFIC | ||
| inlineStringIntrinsic = 0x00100000, // TODO: make J9_PROJECT_SPECIFIC |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
I had missed the reference to the downstream changes earlier. Taking a look at them. . . .
There was a problem hiding this comment.
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.
OMRNode is updated with additional flags for call nodes.
Flags are used as part of the recognizedCallTransformer opt.