Request for reviews (XS): 7170145: C1 doesn't respect the JMM with volatile field loads

Christian Thalinger christian.thalinger at oracle.com
Tue May 22 19:11:15 PDT 2012


On May 22, 2012, at 6:30 PM, Mikael Vidstedt wrote:

> 
> Two typos:
> 
> 145 // This is actually too strict and the JMM doesn't requires
> 146 // this is all cases (e.g. load a; volatile store b; load a)
> 
> should probably be "JMM doesn't _require_ this _in_ all cases...".

Apparently I had too many versions of that text.  Thanks.

-- Chris

> 
> Cheers,
> Mikael
> 
> 
> On 2012-05-22 17:35, Christian Thalinger wrote:
>> http://cr.openjdk.java.net/~twisti/7170145
>> 
>> 7170145: C1 doesn't respect the JMM with volatile field loads
>> Reviewed-by:
>> 
>> ValueNumberingVisitor::do_LoadField does not include logic for
>> volatile fields which allows CSE of normal field loads across volatile
>> field loads.  That's explicitly prohibited by the JMM.
>> 
>> This patch also kills the memory across volatile field stores even it
>> is too strict for now because of volatile field stores and possible
>> future optimizations.
>> 
>> src/share/vm/c1/c1_ValueMap.hpp
>> 
> 



More information about the hotspot-compiler-dev mailing list