383 1, // abstract_with_no_concrete_subtype ctxk
384 1, // concrete_with_no_concrete_subtype ctxk
385 2, // unique_concrete_method ctxk, m
386 3, // unique_concrete_subtypes_2 ctxk, k1, k2
387 3, // unique_concrete_methods_2 ctxk, m1, m2
388 1, // no_finalizable_subclasses ctxk
389 2 // call_site_target_value call_site, method_handle
390 };
391
392 const char* Dependencies::dep_name(Dependencies::DepType dept) {
393 if (!dept_in_mask(dept, all_types)) return "?bad-dep?";
394 return _dep_name[dept];
395 }
396
397 int Dependencies::dep_args(Dependencies::DepType dept) {
398 if (!dept_in_mask(dept, all_types)) return -1;
399 return _dep_args[dept];
400 }
401
402 void Dependencies::check_valid_dependency_type(DepType dept) {
403 guarantee(FIRST_TYPE <= dept && dept < TYPE_LIMIT, err_msg("invalid dependency type: %d", (int) dept));
404 }
405
406 // for the sake of the compiler log, print out current dependencies:
407 void Dependencies::log_all_dependencies() {
408 if (log() == NULL) return;
409 ResourceMark rm;
410 for (int deptv = (int)FIRST_TYPE; deptv < (int)TYPE_LIMIT; deptv++) {
411 DepType dept = (DepType)deptv;
412 GrowableArray<ciBaseObject*>* deps = _deps[dept];
413 int deplen = deps->length();
414 if (deplen == 0) {
415 continue;
416 }
417 int stride = dep_args(dept);
418 GrowableArray<ciBaseObject*>* ciargs = new GrowableArray<ciBaseObject*>(stride);
419 for (int i = 0; i < deps->length(); i += stride) {
420 for (int j = 0; j < stride; j++) {
421 // flush out the identities before printing
422 ciargs->push(deps->at(i+j));
423 }
|
383 1, // abstract_with_no_concrete_subtype ctxk
384 1, // concrete_with_no_concrete_subtype ctxk
385 2, // unique_concrete_method ctxk, m
386 3, // unique_concrete_subtypes_2 ctxk, k1, k2
387 3, // unique_concrete_methods_2 ctxk, m1, m2
388 1, // no_finalizable_subclasses ctxk
389 2 // call_site_target_value call_site, method_handle
390 };
391
392 const char* Dependencies::dep_name(Dependencies::DepType dept) {
393 if (!dept_in_mask(dept, all_types)) return "?bad-dep?";
394 return _dep_name[dept];
395 }
396
397 int Dependencies::dep_args(Dependencies::DepType dept) {
398 if (!dept_in_mask(dept, all_types)) return -1;
399 return _dep_args[dept];
400 }
401
402 void Dependencies::check_valid_dependency_type(DepType dept) {
403 guarantee(FIRST_TYPE <= dept && dept < TYPE_LIMIT, "invalid dependency type: %d", (int) dept);
404 }
405
406 // for the sake of the compiler log, print out current dependencies:
407 void Dependencies::log_all_dependencies() {
408 if (log() == NULL) return;
409 ResourceMark rm;
410 for (int deptv = (int)FIRST_TYPE; deptv < (int)TYPE_LIMIT; deptv++) {
411 DepType dept = (DepType)deptv;
412 GrowableArray<ciBaseObject*>* deps = _deps[dept];
413 int deplen = deps->length();
414 if (deplen == 0) {
415 continue;
416 }
417 int stride = dep_args(dept);
418 GrowableArray<ciBaseObject*>* ciargs = new GrowableArray<ciBaseObject*>(stride);
419 for (int i = 0; i < deps->length(); i += stride) {
420 for (int j = 0; j < stride; j++) {
421 // flush out the identities before printing
422 ciargs->push(deps->at(i+j));
423 }
|