RFR (S): 8184269: JVMCI CompilerToVM::Data::initialize() should use BarrierSet fake RTTI to identify card table barrier sets

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Jul 12 15:16:25 UTC 2017

I think this code was made before 8069016: "Add BarrierSet downcast support" but pushed later. As result it was not 
fixed by 8069016.

Changes seems fine to me but Doug or someone from Labs may want to look on it too.
One thing - we may want to preserve JVMCI_ERROR() to check known by Graal concrete barriers.


On 7/12/17 3:47 AM, Erik Österlund wrote:
> Hi,
> Bug ID:
> https://bugs.openjdk.java.net/browse/JDK-8184269
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8184269/webrev.00/
> The CompilerToVM::Data::initialize() member function of JVMCI identifies barrier sets with cards by taking the current 
> BarrierSet and in a switch statement enumerating if it is in the set of all BarrierSets (except ModRef for some odd 
> reason).
> This switch statement includes both concrete barrier sets and abstract barrier sets that can never be selected.
> This seems like the wrong way of doing things, and FakeRTTI should be used instead to see if the current barrier set 
> is-a CardTableModRefBS, which is the condition for populating the card size and card table base address fields with 
> sensible values.
> Thanks,
> /Erik

More information about the hotspot-compiler-dev mailing list