comparison 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
comparison
equal deleted inserted replaced
9011:23762f2438b6 9012:2979aaac95af
292 for (int i = 0; i < length; ++i) { 292 for (int i = 0; i < length; ++i) {
293 Handle assumption = assumptions->obj_at(i); 293 Handle assumption = assumptions->obj_at(i);
294 if (!assumption.is_null()) { 294 if (!assumption.is_null()) {
295 if (assumption->klass() == Assumptions_MethodContents::klass()) { 295 if (assumption->klass() == Assumptions_MethodContents::klass()) {
296 assumption_MethodContents(assumption); 296 assumption_MethodContents(assumption);
297 } else if (assumption->klass() == Assumptions_NoFinalizableSubclass::klass()) {
298 assumption_NoFinalizableSubclass(assumption);
297 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) { 299 } else if (assumption->klass() == Assumptions_ConcreteSubtype::klass()) {
298 assumption_ConcreteSubtype(assumption); 300 assumption_ConcreteSubtype(assumption);
299 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) { 301 } else if (assumption->klass() == Assumptions_ConcreteMethod::klass()) {
300 assumption_ConcreteMethod(assumption); 302 assumption_ConcreteMethod(assumption);
301 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) { 303 } else if (assumption->klass() == Assumptions_CallSiteTargetValue::klass()) {
443 445
444 void CodeInstaller::assumption_MethodContents(Handle assumption) { 446 void CodeInstaller::assumption_MethodContents(Handle assumption) {
445 Handle method_handle = Assumptions_MethodContents::method(assumption()); 447 Handle method_handle = Assumptions_MethodContents::method(assumption());
446 methodHandle method = getMethodFromHotSpotMethod(method_handle()); 448 methodHandle method = getMethodFromHotSpotMethod(method_handle());
447 _dependencies->assert_evol_method(method()); 449 _dependencies->assert_evol_method(method());
450 }
451
452 void CodeInstaller::assumption_NoFinalizableSubclass(Handle assumption) {
453 Handle receiverType_handle = Assumptions_NoFinalizableSubclass::receiverType(assumption());
454 Klass* receiverType = asKlass(HotSpotResolvedObjectType::metaspaceKlass(receiverType_handle));
455 _dependencies->assert_has_no_finalizable_subclasses(receiverType);
448 } 456 }
449 457
450 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) { 458 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) {
451 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption()); 459 Handle context_handle = Assumptions_ConcreteSubtype::context(assumption());
452 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption()); 460 Handle subtype_handle = Assumptions_ConcreteSubtype::subtype(assumption());