Skip to content

Commit d81095c

Browse files
committed
Adds flags to control recognized call transformer
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>
1 parent abd817a commit d81095c

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

compiler/il/OMRNode.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5102,6 +5102,30 @@ void OMR::Node::setIsSafeForCGToFastPathUnsafeCall(bool v)
51025102
_flags.set(unsafeFastPathCall);
51035103
}
51045104

5105+
bool OMR::Node::isSafeForCGToInlineStringIntrinsic()
5106+
{
5107+
TR_ASSERT_FATAL(self()->getOpCode().isCall(), "Opcode must be call");
5108+
return _flags.testAny(inlineStringIntrinsic);
5109+
}
5110+
5111+
void OMR::Node::setIsSafeForCGToInlineStringIntrinsic(bool v)
5112+
{
5113+
TR_ASSERT_FATAL(self()->getOpCode().isCall(), "Opcode must be call");
5114+
_flags.set(inlineStringIntrinsic);
5115+
}
5116+
5117+
bool OMR::Node::checkSkipRecognizedCallTransformation()
5118+
{
5119+
TR_ASSERT_FATAL(self()->getOpCode().isCall(), "Opcode must be call");
5120+
return _flags.testAny(skipRecognizedCallTransformation);
5121+
}
5122+
5123+
void OMR::Node::setSkipRecognizedCallTransformation(bool v)
5124+
{
5125+
TR_ASSERT_FATAL(self()->getOpCode().isCall(), "Opcode must be call");
5126+
_flags.set(skipRecognizedCallTransformation);
5127+
}
5128+
51055129
bool OMR::Node::isCallThatWasRefinedFromKnownObject()
51065130
{
51075131
return self()->getOpCode().isCall() && _flags.testAny(wasRefinedFromKnownObject);

compiler/il/OMRNode.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,6 +1245,11 @@ class OMR_EXTENSIBLE Node {
12451245
bool isSafeForCGToFastPathUnsafeCall();
12461246
void setIsSafeForCGToFastPathUnsafeCall(bool v);
12471247

1248+
bool isSafeForCGToInlineStringIntrinsic();
1249+
void setIsSafeForCGToInlineStringIntrinsic(bool v);
1250+
bool checkSkipRecognizedCallTransformation();
1251+
void setSkipRecognizedCallTransformation(bool v);
1252+
12481253
// Flag used by TR::ladd and TR::lsub or by TR::lshl and TR::lshr for compressedPointers
12491254
bool containsCompressionSequence();
12501255
void setContainsCompressionSequence(bool v);
@@ -1946,6 +1951,8 @@ class OMR_EXTENSIBLE Node {
19461951
desynchronizeCall = 0x00020000,
19471952
preparedForDirectToJNI = 0x00040000, // TODO: make J9_PROJECT_SPECIFIC
19481953
unsafeFastPathCall = 0x00080000, // TODO: make J9_PROJECT_SPECIFIC
1954+
inlineStringIntrinsic = 0x00100000, // TODO: make J9_PROJECT_SPECIFIC
1955+
skipRecognizedCallTransformation = 0x00200000, // TODO: make J9_PROJECT_SPECIFIC
19491956

19501957
// Flag used by TR::ladd and TR::lsub or by TR::lshl and TR::lshr for compressedPointers
19511958
isCompressionSequence = 0x00000800,

0 commit comments

Comments
 (0)