736 // SP when bytecode needs to be reexecuted.
737 virtual int reexecute_sp() { return sp(); }
738
739 // Report if there were too many traps at the current method and bci.
740 // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded.
741 // If there is no MDO at all, report no trap unless told to assume it.
742 bool too_many_traps(Deoptimization::DeoptReason reason) {
743 return C->too_many_traps(method(), bci(), reason);
744 }
745
746 // Report if there were too many recompiles at the current method and bci.
747 bool too_many_recompiles(Deoptimization::DeoptReason reason) {
748 return C->too_many_recompiles(method(), bci(), reason);
749 }
750
751 // Returns the object (if any) which was created the moment before.
752 Node* just_allocated_object(Node* current_control);
753
754 static bool use_ReduceInitialCardMarks() {
755 return (ReduceInitialCardMarks
756 && Universe::heap()->can_elide_tlab_store_barriers());
757 }
758
759 // Sync Ideal and Graph kits.
760 void sync_kit(IdealKit& ideal);
761 void final_sync(IdealKit& ideal);
762
763 // vanilla/CMS post barrier
764 void write_barrier_post(Node *store, Node* obj,
765 Node* adr, uint adr_idx, Node* val, bool use_precise);
766
767 // Allow reordering of pre-barrier with oop store and/or post-barrier.
768 // Used for load_store operations which loads old value.
769 bool can_move_pre_barrier() const;
770
771 // G1 pre/post barriers
772 void g1_write_barrier_pre(bool do_load,
773 Node* obj,
774 Node* adr,
775 uint alias_idx,
776 Node* val,
|
736 // SP when bytecode needs to be reexecuted.
737 virtual int reexecute_sp() { return sp(); }
738
739 // Report if there were too many traps at the current method and bci.
740 // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded.
741 // If there is no MDO at all, report no trap unless told to assume it.
742 bool too_many_traps(Deoptimization::DeoptReason reason) {
743 return C->too_many_traps(method(), bci(), reason);
744 }
745
746 // Report if there were too many recompiles at the current method and bci.
747 bool too_many_recompiles(Deoptimization::DeoptReason reason) {
748 return C->too_many_recompiles(method(), bci(), reason);
749 }
750
751 // Returns the object (if any) which was created the moment before.
752 Node* just_allocated_object(Node* current_control);
753
754 static bool use_ReduceInitialCardMarks() {
755 return (ReduceInitialCardMarks
756 && GC::gc()->heap()->can_elide_tlab_store_barriers());
757 }
758
759 // Sync Ideal and Graph kits.
760 void sync_kit(IdealKit& ideal);
761 void final_sync(IdealKit& ideal);
762
763 // vanilla/CMS post barrier
764 void write_barrier_post(Node *store, Node* obj,
765 Node* adr, uint adr_idx, Node* val, bool use_precise);
766
767 // Allow reordering of pre-barrier with oop store and/or post-barrier.
768 // Used for load_store operations which loads old value.
769 bool can_move_pre_barrier() const;
770
771 // G1 pre/post barriers
772 void g1_write_barrier_pre(bool do_load,
773 Node* obj,
774 Node* adr,
775 uint alias_idx,
776 Node* val,
|