RFR: several small changes including 8207040: [lworld] TestLWorld fails with "Meet Not Symmetric" with -Xcomp
tobias.hartmann at oracle.com
Fri Jul 13 14:56:35 UTC 2018
On 13.07.2018 15:06, Roland Westrelin wrote:
Looks good to me.
> - checkcast buffers values when it's not needed. The change delays
> allocation. I actually wonder if the path where we allocate is seen in
> practice and if it is if we need to allocate at all.
Did you try to add an assert and check if it's triggered with our test?
> - the Parse::merge_common sometimes buffers a value when there's no
> merge point which is unnecessary so I changed that logic too.
Looks like the checks you are added are the ones used further below (line 1767) but without the
control()->is_Region() check. Do you know why it's not needed?
> I'm a bit confused by monitorenter. We deoptimize when we see a value
> but we're already at the monitorenter. So when we deoptimize, given we
> don't reexecute the monitorenter, we resume execution after that
> bytecode. How does that trigger an exception?
I think we do reexecute the monitorenter because the uncommon trap
Please run all compiler tests with and without -XX:CompileTreshold=100 before pushing.
More information about the valhalla-dev