662 void print_nmethod_labels(outputStream* stream, address block_begin) const;
663
664 // Prints a comment for one native instruction (reloc info, pc desc)
665 void print_code_comment_on(outputStream* st, int column, address begin, address end);
666 static void print_statistics() PRODUCT_RETURN;
667
668 // Compiler task identification. Note that all OSR methods
669 // are numbered in an independent sequence if CICountOSR is true,
670 // and native method wrappers are also numbered independently if
671 // CICountNative is true.
672 int compile_id() const { return _compile_id; }
673 const char* compile_kind() const;
674
675 // For debugging
676 // CompiledIC* IC_at(char* p) const;
677 // PrimitiveIC* primitiveIC_at(char* p) const;
678 oop embeddedOop_at(address p);
679
680 // tells if any of this method's dependencies have been invalidated
681 // (this is expensive!)
682 bool check_all_dependencies();
683
684 // tells if this compiled method is dependent on the given changes,
685 // and the changes have invalidated it
686 bool check_dependency_on(DepChange& changes);
687
688 // Evolution support. Tells if this compiled method is dependent on any of
689 // methods m() of class dependee, such that if m() in dependee is replaced,
690 // this compiled method will have to be deoptimized.
691 bool is_evol_dependent_on(Klass* dependee);
692
693 // Fast breakpoint support. Tells if this compiled method is
694 // dependent on the given method. Returns true if this nmethod
695 // corresponds to the given method as well.
696 bool is_dependent_on_method(Method* dependee);
697
698 // is it ok to patch at address?
699 bool is_patchable_at(address instr_address);
700
701 // UseBiasedLocking support
702 ByteSize native_receiver_sp_offset() {
|
662 void print_nmethod_labels(outputStream* stream, address block_begin) const;
663
664 // Prints a comment for one native instruction (reloc info, pc desc)
665 void print_code_comment_on(outputStream* st, int column, address begin, address end);
666 static void print_statistics() PRODUCT_RETURN;
667
668 // Compiler task identification. Note that all OSR methods
669 // are numbered in an independent sequence if CICountOSR is true,
670 // and native method wrappers are also numbered independently if
671 // CICountNative is true.
672 int compile_id() const { return _compile_id; }
673 const char* compile_kind() const;
674
675 // For debugging
676 // CompiledIC* IC_at(char* p) const;
677 // PrimitiveIC* primitiveIC_at(char* p) const;
678 oop embeddedOop_at(address p);
679
680 // tells if any of this method's dependencies have been invalidated
681 // (this is expensive!)
682 static void check_all_dependencies(DepChange& changes);
683
684 // tells if this compiled method is dependent on the given changes,
685 // and the changes have invalidated it
686 bool check_dependency_on(DepChange& changes);
687
688 // Evolution support. Tells if this compiled method is dependent on any of
689 // methods m() of class dependee, such that if m() in dependee is replaced,
690 // this compiled method will have to be deoptimized.
691 bool is_evol_dependent_on(Klass* dependee);
692
693 // Fast breakpoint support. Tells if this compiled method is
694 // dependent on the given method. Returns true if this nmethod
695 // corresponds to the given method as well.
696 bool is_dependent_on_method(Method* dependee);
697
698 // is it ok to patch at address?
699 bool is_patchable_at(address instr_address);
700
701 // UseBiasedLocking support
702 ByteSize native_receiver_sp_offset() {
|