< prev index next >

src/hotspot/share/opto/graphKit.hpp

8198703

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

736   }
737 
738   // SP when bytecode needs to be reexecuted.
739   virtual int reexecute_sp() { return sp(); }
740 
741   // Report if there were too many traps at the current method and bci.
742   // Report if a trap was recorded, and/or PerMethodTrapLimit was exceeded.
743   // If there is no MDO at all, report no trap unless told to assume it.
744   bool too_many_traps(Deoptimization::DeoptReason reason) {
745     return C->too_many_traps(method(), bci(), reason);
746   }
747 
748   // Report if there were too many recompiles at the current method and bci.
749   bool too_many_recompiles(Deoptimization::DeoptReason reason) {
750     return C->too_many_recompiles(method(), bci(), reason);
751   }
752 
753   // Returns the object (if any) which was created the moment before.
754   Node* just_allocated_object(Node* current_control);
755 
756   static bool use_ReduceInitialCardMarks();





757 
758   // Sync Ideal and Graph kits.
759   void sync_kit(IdealKit& ideal);
760   void final_sync(IdealKit& ideal);
761 
762   // vanilla/CMS post barrier
763   void write_barrier_post(Node *store, Node* obj,
764                           Node* adr,  uint adr_idx, Node* val, bool use_precise);
765 
766   // Allow reordering of pre-barrier with oop store and/or post-barrier.
767   // Used for load_store operations which loads old value.
768   bool can_move_pre_barrier() const;
769 
770   // G1 pre/post barriers
771   void g1_write_barrier_pre(bool do_load,
772                             Node* obj,
773                             Node* adr,
774                             uint alias_idx,
775                             Node* val,
< prev index next >