In the OMR compiler, isTreeTop is one of the several properties a node opcode can have. My understanding was that if isTreeTop() returns true, then the node must be anchored under a TR::TreeTop. However, as pointed out by #1553 and #1546, this does not seem to be the case.
So, what exactly does it mean for an opcode to have isTreeTop() return true?
Some related/follow-up questions:
@0xdaryl @mstoodle @vijaysun-omr @andrewcraik
An alternative interpretation of the isTreeTop is all nodes that TR::TreeTops point to must have the property set.
I do think once we figure it out, probably do need to be using the validator to ensure it.
@mgaudet's interpretation is right.
I believe isTreeTop must return true for any opcode that may appear at the top of the tree (node that TR::TreeTop points to). e.g. a store opcode would return true and while it is possible for a store opcode to be at the top of the tree, it is also possible for it to appear under a null check opcode.
Most helpful comment
@mgaudet's interpretation is right.
I believe isTreeTop must return true for any opcode that may appear at the top of the tree (node that TR::TreeTop points to). e.g. a store opcode would return true and while it is possible for a store opcode to be at the top of the tree, it is also possible for it to appear under a null check opcode.