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