(WIP) Push down constants in AddNode

Jackson Davis jackson at jcdav.is
Fri Jan 5 08:20:26 UTC 2018


I've had this change around for a while now, finally got around to creating
a PR.

https://github.com/graalvm/graal/pull/274

This seems like a important thing to be doing, but is pretty brittle as-is:
if done aggressively, it can undo other calls to
BinaryArithmeticNode.reassociate() (eg from LoopEx.reassociateInvariants),
which means that the result of that reassociation is only valid up until
another canonicalization of the resulting AddNode occurs, hence the need
for the self != null checks.

Is there a cleaner/smarter way of avoiding this race?

-Jackson


More information about the graal-dev mailing list