RFR(M): 8080289: Intermediate writes in a loop not eliminated by optimizer
Roland Westrelin
roland.westrelin at oracle.com
Tue Jun 23 16:29:54 UTC 2015
> So what does the graph look like for this example?
I haven’t checked but I would expect:
...->MB->->ST(y=2)->MB->ST(x=1)->MB->ST(y=1)->...
if support_IRIW_for_not_multiple_copy_atomic_cpu is false
...->ST(y=2)->ST(y=1)->...
...->ST(x=1)->...
otherwise
Roland.
>
> sent from my phone
>
> On Jun 23, 2015 6:50 AM, "Roland Westrelin" <roland.westrelin at oracle.com> wrote:
>
> >> What about
> >>
> >> volatile int y;
> >> volatile int x;
> >>
> >> y=1
> >> x=1
> >> y=2
> >>
> >> transformed to:
> >>
> >> x=1
> >> y=2
> >>
> >> ?
> >
> > I think this is not allowed, since operations over "x" get tied up in
> > the synchronization order.
>
> Thanks. Then for support_IRIW_for_not_multiple_copy_atomic_cpu true, I don’t see how incorrect reordering is prevented.
>
> Roland.
More information about the hotspot-compiler-dev
mailing list