Mercurial > hg > graal-compiler
diff src/share/vm/graal/graalCodeInstaller.cpp @ 9012:2979aaac95af
assumptions: enable NoFinalizableSubclass assumption
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Thu, 11 Apr 2013 22:38:53 +0200 |
parents | 9f3a77848ea2 |
children | 700f6a63763a |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp Thu Apr 11 21:43:14 2013 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Thu Apr 11 22:38:53 2013 +0200 @@ -294,6 +294,8 @@ if (!assumption.is_null()) { if (assumption->klass() == Assumptions_MethodContents::klass()) { assumption_MethodContents(assumption); + } else if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) { + assumption_NoFinalizableSubclass(assumption); } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { assumption_ConcreteSubtype(assumption); } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { @@ -447,6 +449,12 @@ _dependencies->assert_evol_method(method()); } +void CodeInstaller::assumption_NoFinalizableSubclass(Handle assumption) { + Handle receiverType_handle = Assumptions_NoFinalizableSubclass::receiverType(assumption()); + Klass* receiverType = asKlass(HotSpotResolvedObjectType::metaspaceKlass(receiverType_handle)); + _dependencies->assert_has_no_finalizable_subclasses(receiverType); +} + void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption());