< prev index next >

src/hotspot/share/opto/graphKit.hpp

Print this page
rev 49911 : imported patch removeAllGCs


 751     return C->too_many_recompiles(method(), bci(), reason);
 752   }
 753 
 754   // Returns the object (if any) which was created the moment before.
 755   Node* just_allocated_object(Node* current_control);
 756 
 757   static bool use_ReduceInitialCardMarks();
 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,
 777                             const TypeOopPtr* val_type,
 778                             Node* pre_val,
 779                             BasicType bt);
 780 
 781   void g1_write_barrier_post(Node* store,
 782                              Node* obj,
 783                              Node* adr,
 784                              uint alias_idx,
 785                              Node* val,
 786                              BasicType bt,
 787                              bool use_precise);
 788   // Helper function for g1
 789   private:
 790   void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
 791                     Node* index, Node* index_adr,
 792                     Node* buffer, const TypeFunc* tf);
 793 
 794   bool g1_can_remove_pre_barrier(PhaseTransform* phase, Node* adr, BasicType bt, uint adr_idx);
 795 
 796   bool g1_can_remove_post_barrier(PhaseTransform* phase, Node* store, Node* adr);

 797 
 798   public:
 799   // Helper function to round double arguments before a call
 800   void round_double_arguments(ciMethod* dest_method);
 801   void round_double_result(ciMethod* dest_method);
 802 
 803   // rounding for strict float precision conformance
 804   Node* precision_rounding(Node* n);
 805 
 806   // rounding for strict double precision conformance
 807   Node* dprecision_rounding(Node* n);
 808 
 809   // rounding for non-strict double stores
 810   Node* dstore_rounding(Node* n);
 811 
 812   // Helper functions for fast/slow path codes
 813   Node* opt_iff(Node* region, Node* iff);
 814   Node* make_runtime_call(int flags,
 815                           const TypeFunc* call_type, address call_addr,
 816                           const char* call_name,




 751     return C->too_many_recompiles(method(), bci(), reason);
 752   }
 753 
 754   // Returns the object (if any) which was created the moment before.
 755   Node* just_allocated_object(Node* current_control);
 756 
 757   static bool use_ReduceInitialCardMarks();
 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 #if INCLUDE_G1GC
 772   // G1 pre/post barriers
 773   void g1_write_barrier_pre(bool do_load,
 774                             Node* obj,
 775                             Node* adr,
 776                             uint alias_idx,
 777                             Node* val,
 778                             const TypeOopPtr* val_type,
 779                             Node* pre_val,
 780                             BasicType bt);
 781 
 782   void g1_write_barrier_post(Node* store,
 783                              Node* obj,
 784                              Node* adr,
 785                              uint alias_idx,
 786                              Node* val,
 787                              BasicType bt,
 788                              bool use_precise);
 789   // Helper function for g1
 790   private:
 791   void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
 792                     Node* index, Node* index_adr,
 793                     Node* buffer, const TypeFunc* tf);
 794 
 795   bool g1_can_remove_pre_barrier(PhaseTransform* phase, Node* adr, BasicType bt, uint adr_idx);
 796 
 797   bool g1_can_remove_post_barrier(PhaseTransform* phase, Node* store, Node* adr);
 798 #endif // INCLUDE_G1GC
 799 
 800   public:
 801   // Helper function to round double arguments before a call
 802   void round_double_arguments(ciMethod* dest_method);
 803   void round_double_result(ciMethod* dest_method);
 804 
 805   // rounding for strict float precision conformance
 806   Node* precision_rounding(Node* n);
 807 
 808   // rounding for strict double precision conformance
 809   Node* dprecision_rounding(Node* n);
 810 
 811   // rounding for non-strict double stores
 812   Node* dstore_rounding(Node* n);
 813 
 814   // Helper functions for fast/slow path codes
 815   Node* opt_iff(Node* region, Node* iff);
 816   Node* make_runtime_call(int flags,
 817                           const TypeFunc* call_type, address call_addr,
 818                           const char* call_name,


< prev index next >