678 bool too_many_recompiles(Deoptimization::DeoptReason reason) {
679 return C->too_many_recompiles(method(), bci(), reason);
680 }
681
682 // Returns the object (if any) which was created the moment before.
683 Node* just_allocated_object(Node* current_control);
684
685 static bool use_ReduceInitialCardMarks() {
686 return (ReduceInitialCardMarks
687 && Universe::heap()->can_elide_tlab_store_barriers());
688 }
689
690 // Sync Ideal and Graph kits.
691 void sync_kit(IdealKit& ideal);
692 void final_sync(IdealKit& ideal);
693
694 // vanilla/CMS post barrier
695 void write_barrier_post(Node *store, Node* obj,
696 Node* adr, uint adr_idx, Node* val, bool use_precise);
697
698 // G1 pre/post barriers
699 void g1_write_barrier_pre(bool do_load,
700 Node* obj,
701 Node* adr,
702 uint alias_idx,
703 Node* val,
704 const TypeOopPtr* val_type,
705 Node* pre_val,
706 BasicType bt);
707
708 void g1_write_barrier_post(Node* store,
709 Node* obj,
710 Node* adr,
711 uint alias_idx,
712 Node* val,
713 BasicType bt,
714 bool use_precise);
715 // Helper function for g1
716 private:
717 void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
|
678 bool too_many_recompiles(Deoptimization::DeoptReason reason) {
679 return C->too_many_recompiles(method(), bci(), reason);
680 }
681
682 // Returns the object (if any) which was created the moment before.
683 Node* just_allocated_object(Node* current_control);
684
685 static bool use_ReduceInitialCardMarks() {
686 return (ReduceInitialCardMarks
687 && Universe::heap()->can_elide_tlab_store_barriers());
688 }
689
690 // Sync Ideal and Graph kits.
691 void sync_kit(IdealKit& ideal);
692 void final_sync(IdealKit& ideal);
693
694 // vanilla/CMS post barrier
695 void write_barrier_post(Node *store, Node* obj,
696 Node* adr, uint adr_idx, Node* val, bool use_precise);
697
698 // allow reordering of pre-barrier with oop store and/or post-barrier
699 bool can_move_pre_barrier() const;
700
701 // G1 pre/post barriers
702 void g1_write_barrier_pre(bool do_load,
703 Node* obj,
704 Node* adr,
705 uint alias_idx,
706 Node* val,
707 const TypeOopPtr* val_type,
708 Node* pre_val,
709 BasicType bt);
710
711 void g1_write_barrier_post(Node* store,
712 Node* obj,
713 Node* adr,
714 uint alias_idx,
715 Node* val,
716 BasicType bt,
717 bool use_precise);
718 // Helper function for g1
719 private:
720 void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
|