-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Report final field modification by calling runtime helper #4514
Conversation
Depends on eclipse-omr/omr#3523 and eclipse-omr/omr#3528. |
Keeping the Unsafe call as the slow path is suboptimal compared to using the runtime helper. - Unsafe call consumes more arguments, which means more registers. - Unsafe call has more use and def aliases and not transparent to the optimizer. - For Unsafe call that returns a result, a temp has to be created to store result from the fast path and from the slow path. - Allow Unsafe calls in cold blocks to be optimized since the transformation no longer duplicate Unsafe calls to a cold block. Therefore, report the ilegal modification through the runtime helper jitReportFinalFieldModified. Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
Performance comparison between proposed change and baseline. Positive number means better than baseline, negative number means worse than baseline. The performance difference between the proposed change and the baseline is within the noise margin for the following benchmarks.
|
@andrewcraik Could you review? |
Have you looked at any startup metrics to see what impact the compiel-time has on them specifically? I suspect it should be fine since HiBench is ok but an explicit measure would be good. Actual changes look ok to me. |
@andrewcraik Yes, looked at liberty start up sufpdt7, there is no regression.
|
closes: eclipse-openj9#4385 Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
Jenkins test sanity xlinux,win,plinux jdk8,jdk11 |
If start-up regressions have been eliminated I am ok with the change. |
@mpirvu Yes, the start up is verified on sufpdt7, a liberty DT7 benchmark. |
Keeping the Unsafe call as the slow path is suboptimal compared to using
the runtime helper.
optimizer.
store result from the fast path and from the slow path.
Therefore, report the ilegal modification through the runtime helper
jitReportFinalFieldModified.
Also Enable the illegal write notification in this PR.
closes: #4385
Signed-off-by: Liqun Liu liqunl@ca.ibm.com