440 static Method* find_unique_concrete_method(Klass* ctxk, Method* m); 441 static int find_exclusive_concrete_subtypes(Klass* ctxk, int klen, Klass* k[]); 442 443 // Create the encoding which will be stored in an nmethod. 444 void encode_content_bytes(); 445 446 address content_bytes() { 447 assert(_content_bytes != NULL, "encode it first"); 448 return _content_bytes; 449 } 450 size_t size_in_bytes() { 451 assert(_content_bytes != NULL, "encode it first"); 452 return _size_in_bytes; 453 } 454 455 OopRecorder* oop_recorder() { return _oop_recorder; } 456 CompileLog* log() { return _log; } 457 458 void copy_to(nmethod* nm); 459 460 void log_all_dependencies(); 461 462 void log_dependency(DepType dept, GrowableArray<ciBaseObject*>* args) { 463 ResourceMark rm; 464 int argslen = args->length(); 465 write_dependency_to(log(), dept, args); 466 guarantee(argslen == args->length(), 467 "args array cannot grow inside nested ResoureMark scope"); 468 } 469 470 void log_dependency(DepType dept, 471 ciBaseObject* x0, 472 ciBaseObject* x1 = NULL, 473 ciBaseObject* x2 = NULL) { 474 if (log() == NULL) { 475 return; 476 } 477 ResourceMark rm; 478 GrowableArray<ciBaseObject*>* ciargs = 479 new GrowableArray<ciBaseObject*>(dep_args(dept)); | 440 static Method* find_unique_concrete_method(Klass* ctxk, Method* m); 441 static int find_exclusive_concrete_subtypes(Klass* ctxk, int klen, Klass* k[]); 442 443 // Create the encoding which will be stored in an nmethod. 444 void encode_content_bytes(); 445 446 address content_bytes() { 447 assert(_content_bytes != NULL, "encode it first"); 448 return _content_bytes; 449 } 450 size_t size_in_bytes() { 451 assert(_content_bytes != NULL, "encode it first"); 452 return _size_in_bytes; 453 } 454 455 OopRecorder* oop_recorder() { return _oop_recorder; } 456 CompileLog* log() { return _log; } 457 458 void copy_to(nmethod* nm); 459 460 DepType validate_dependencies(CompileTask* task, bool counter_changed, char** failure_detail = NULL); 461 462 void log_all_dependencies(); 463 464 void log_dependency(DepType dept, GrowableArray<ciBaseObject*>* args) { 465 ResourceMark rm; 466 int argslen = args->length(); 467 write_dependency_to(log(), dept, args); 468 guarantee(argslen == args->length(), 469 "args array cannot grow inside nested ResoureMark scope"); 470 } 471 472 void log_dependency(DepType dept, 473 ciBaseObject* x0, 474 ciBaseObject* x1 = NULL, 475 ciBaseObject* x2 = NULL) { 476 if (log() == NULL) { 477 return; 478 } 479 ResourceMark rm; 480 GrowableArray<ciBaseObject*>* ciargs = 481 new GrowableArray<ciBaseObject*>(dep_args(dept)); |