src/share/vm/opto/graphKit.hpp

Print this page




 754                             Node* adr,
 755                             uint alias_idx,
 756                             Node* val,
 757                             const TypeOopPtr* val_type,
 758                             Node* pre_val,
 759                             BasicType bt);
 760 
 761   void g1_write_barrier_post(Node* store,
 762                              Node* obj,
 763                              Node* adr,
 764                              uint alias_idx,
 765                              Node* val,
 766                              BasicType bt,
 767                              bool use_precise);
 768   // Helper function for g1
 769   private:
 770   void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
 771                     Node* index, Node* index_adr,
 772                     Node* buffer, const TypeFunc* tf);
 773 




 774   public:
 775   // Helper function to round double arguments before a call
 776   void round_double_arguments(ciMethod* dest_method);
 777   void round_double_result(ciMethod* dest_method);
 778 
 779   // rounding for strict float precision conformance
 780   Node* precision_rounding(Node* n);
 781 
 782   // rounding for strict double precision conformance
 783   Node* dprecision_rounding(Node* n);
 784 
 785   // rounding for non-strict double stores
 786   Node* dstore_rounding(Node* n);
 787 
 788   // Helper functions for fast/slow path codes
 789   Node* opt_iff(Node* region, Node* iff);
 790   Node* make_runtime_call(int flags,
 791                           const TypeFunc* call_type, address call_addr,
 792                           const char* call_name,
 793                           const TypePtr* adr_type, // NULL if no memory effects




 754                             Node* adr,
 755                             uint alias_idx,
 756                             Node* val,
 757                             const TypeOopPtr* val_type,
 758                             Node* pre_val,
 759                             BasicType bt);
 760 
 761   void g1_write_barrier_post(Node* store,
 762                              Node* obj,
 763                              Node* adr,
 764                              uint alias_idx,
 765                              Node* val,
 766                              BasicType bt,
 767                              bool use_precise);
 768   // Helper function for g1
 769   private:
 770   void g1_mark_card(IdealKit& ideal, Node* card_adr, Node* store, uint oop_alias_idx,
 771                     Node* index, Node* index_adr,
 772                     Node* buffer, const TypeFunc* tf);
 773 
 774   bool g1_can_remove_pre_barrier(PhaseTransform* phase, Node* adr, BasicType bt, uint adr_idx);
 775 
 776   bool g1_can_remove_post_barrier(PhaseTransform* phase, Node* store, Node* adr);
 777 
 778   public:
 779   // Helper function to round double arguments before a call
 780   void round_double_arguments(ciMethod* dest_method);
 781   void round_double_result(ciMethod* dest_method);
 782 
 783   // rounding for strict float precision conformance
 784   Node* precision_rounding(Node* n);
 785 
 786   // rounding for strict double precision conformance
 787   Node* dprecision_rounding(Node* n);
 788 
 789   // rounding for non-strict double stores
 790   Node* dstore_rounding(Node* n);
 791 
 792   // Helper functions for fast/slow path codes
 793   Node* opt_iff(Node* region, Node* iff);
 794   Node* make_runtime_call(int flags,
 795                           const TypeFunc* call_type, address call_addr,
 796                           const char* call_name,
 797                           const TypePtr* adr_type, // NULL if no memory effects