443 static Method* find_unique_concrete_method(InstanceKlass* ctxk, Method* m,
444 Klass** participant = nullptr); // out parameter
445 static Method* find_unique_concrete_method(InstanceKlass* ctxk, Method* m, Klass* resolved_klass, Method* resolved_method);
446
447 #ifdef ASSERT
448 static bool verify_method_context(InstanceKlass* ctxk, Method* m);
449 #endif // ASSERT
450
451 // Create the encoding which will be stored in an nmethod.
452 void encode_content_bytes();
453
454 address content_bytes() {
455 assert(_content_bytes != nullptr, "encode it first");
456 return _content_bytes;
457 }
458 size_t size_in_bytes() {
459 assert(_content_bytes != nullptr, "encode it first");
460 return _size_in_bytes;
461 }
462
463 OopRecorder* oop_recorder() { return _oop_recorder; }
464 CompileLog* log() { return _log; }
465
466 void copy_to(nmethod* nm);
467
468 static bool _verify_in_progress; // turn off logging dependencies
469
470 DepType validate_dependencies(CompileTask* task, char** failure_detail = nullptr);
471
472 void log_all_dependencies();
473
474 void log_dependency(DepType dept, GrowableArray<ciBaseObject*>* args) {
475 ResourceMark rm;
476 int argslen = args->length();
477 write_dependency_to(log(), dept, args);
478 guarantee(argslen == args->length(),
479 "args array cannot grow inside nested ResoureMark scope");
480 }
481
482 void log_dependency(DepType dept,
|
443 static Method* find_unique_concrete_method(InstanceKlass* ctxk, Method* m,
444 Klass** participant = nullptr); // out parameter
445 static Method* find_unique_concrete_method(InstanceKlass* ctxk, Method* m, Klass* resolved_klass, Method* resolved_method);
446
447 #ifdef ASSERT
448 static bool verify_method_context(InstanceKlass* ctxk, Method* m);
449 #endif // ASSERT
450
451 // Create the encoding which will be stored in an nmethod.
452 void encode_content_bytes();
453
454 address content_bytes() {
455 assert(_content_bytes != nullptr, "encode it first");
456 return _content_bytes;
457 }
458 size_t size_in_bytes() {
459 assert(_content_bytes != nullptr, "encode it first");
460 return _size_in_bytes;
461 }
462
463 void set_content(address content_bytes, int size_in_bytes) {
464 assert(_content_bytes == nullptr, "not intialized expected");
465 _content_bytes = content_bytes;
466 _size_in_bytes = size_in_bytes;
467 }
468
469 OopRecorder* oop_recorder() { return _oop_recorder; }
470 CompileLog* log() { return _log; }
471
472 void copy_to(nmethod* nm);
473
474 static bool _verify_in_progress; // turn off logging dependencies
475
476 DepType validate_dependencies(CompileTask* task, char** failure_detail = nullptr);
477
478 void log_all_dependencies();
479
480 void log_dependency(DepType dept, GrowableArray<ciBaseObject*>* args) {
481 ResourceMark rm;
482 int argslen = args->length();
483 write_dependency_to(log(), dept, args);
484 guarantee(argslen == args->length(),
485 "args array cannot grow inside nested ResoureMark scope");
486 }
487
488 void log_dependency(DepType dept,
|