RFE: 8023597: Optimize G1 barriers code for unsafe load_store

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Aug 24 00:35:41 UTC 2013

On 8/23/13 9:09 AM, Doerr, Martin wrote:
> Hi,
> I did some more tests with our proposed webrev
> http://cr.openjdk.java.net/~goetz/webrevs/opto_g1_barr/
> and it happened that the assertion
> “assert(pre_val->bottom_type()->basic_type() == T_OBJECT, "or we
> shouldn't be here");”
> was firing when running jvm2008 derby on linuxx86_64.
> What happened is that the C2 was inserting a barrier of kind=LibraryCallKit::LS_cmpxchg,
> but oldval was a ConP node with bottom_type()->basic_type() = T_ADDRESS.

What is ConP (oldval->dump())? I am worried that compareAndSwapObject() 
is used not for object.


> I believe there’s nothing logically wrong with the change.
> Should the assertion be modified or should we filter out cases in which oldval
> does not contain a valid Oop?
> I guess some advice from C2 and G1 experts is needed.
> Best regards,
> Martin

More information about the hotspot-gc-dev mailing list