We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

Richard Mcfriend • 1 year ago

In my implementation, I had changed the FunctionCallExprNode node to use specializations and made the targetFunction @Executed. This resulted in a significant boost in performance in GraalVM 23+ (nearly 15% for the fibonacci benchmark on my M1 2020 macbook with 8GB RAM with GraalVM 24 and about 8% with GraalVM 25 early access).

Is there a way to keep this implementation and still separate the evaluation of the receiver and function?? A nudge in the right direction will be appreciated.

Adam Ruka • 1 year ago

I think the two approaches are incompatible with each other, since @Executed will call executeGeneric(), while what we need to call in FunctionCallExprNode is evaluateAsReceiver().