eclipse-omr / omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
http://www.eclipse.org/omr
Other
949 stars 396 forks source link

Eliminate optional setting of nodes as Internal Pointers #4891

Open PushkarBettadpur opened 4 years ago

PushkarBettadpur commented 4 years ago

At present, transformations to mark nodes as internal pointers are guarded in setIsInternalPointer with the following:

performNodeTransformation2(c, "O^O NODE FLAGS: Setting internalPointer flag on node %p to %d\n", self(), v)

While the return value of this guard is determined by developer controlled options/flags such as lastOptSubIndex, lastOptTransformationIndex, TR_TraceNodeFlags, TR_TraceOptDetails and TR_CountOptTransformations, based on our current knowledge, it is hard to envision a scenario wherein the program would remain functionally correct after calling setIsInternalPointer and failing to set the flag as desired.

This issue is to address and track the (likely) elimination of this guard.

andrewcraik commented 4 years ago

Agreed that this shouldn't be a perform transformation (though the code calling to create it should have the overall transform guarded properly). This should become a dumpOptDetails line to report that the node is set as an internal pointer in the log to ease debugging.