< prev index next >

src/share/vm/opto/graphKit.hpp

Print this page




 859     Node* n = Phase::gen_subtype_check(subklass, superklass, &ctrl, mem, &_gvn);
 860     set_control(ctrl);
 861     return n;
 862   }
 863 
 864   // Exact type check used for predicted calls and casts.
 865   // Rewrites (*casted_receiver) to be casted to the stronger type.
 866   // (Caller is responsible for doing replace_in_map.)
 867   Node* type_check_receiver(Node* receiver, ciKlass* klass, float prob,
 868                             Node* *casted_receiver);
 869   Node* type_check(Node* recv_klass, const TypeKlassPtr* tklass, float prob);
 870 
 871   // implementation of object creation
 872   Node* set_output_for_allocation(AllocateNode* alloc,
 873                                   const TypeOopPtr* oop_type,
 874                                   bool deoptimize_on_exception=false);
 875   Node* get_layout_helper(Node* klass_node, jint& constant_value);
 876   Node* new_instance(Node* klass_node,
 877                      Node* slow_test = NULL,
 878                      Node* *return_size_val = NULL,
 879                      bool deoptimize_on_exception = false);

 880   Node* new_array(Node* klass_node, Node* count_val, int nargs,
 881                   Node* *return_size_val = NULL,
 882                   bool deoptimize_on_exception = false);
 883   void initialize_value_type_array(Node* array, Node* length, ciValueKlass* vk, int nargs);
 884 
 885   // java.lang.String helpers
 886   Node* load_String_length(Node* ctrl, Node* str);
 887   Node* load_String_value(Node* ctrl, Node* str);
 888   Node* load_String_coder(Node* ctrl, Node* str);
 889   void store_String_value(Node* ctrl, Node* str, Node* value);
 890   void store_String_coder(Node* ctrl, Node* str, Node* value);
 891   Node* capture_memory(const TypePtr* src_type, const TypePtr* dst_type);
 892   Node* compress_string(Node* src, const TypeAryPtr* src_type, Node* dst, Node* count);
 893   void inflate_string(Node* src, Node* dst, const TypeAryPtr* dst_type, Node* count);
 894   void inflate_string_slow(Node* src, Node* dst, Node* start, Node* count);
 895 
 896   // Handy for making control flow
 897   IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) {
 898     IfNode* iff = new IfNode(ctrl, tst, prob, cnt);// New IfNode's
 899     _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time




 859     Node* n = Phase::gen_subtype_check(subklass, superklass, &ctrl, mem, &_gvn);
 860     set_control(ctrl);
 861     return n;
 862   }
 863 
 864   // Exact type check used for predicted calls and casts.
 865   // Rewrites (*casted_receiver) to be casted to the stronger type.
 866   // (Caller is responsible for doing replace_in_map.)
 867   Node* type_check_receiver(Node* receiver, ciKlass* klass, float prob,
 868                             Node* *casted_receiver);
 869   Node* type_check(Node* recv_klass, const TypeKlassPtr* tklass, float prob);
 870 
 871   // implementation of object creation
 872   Node* set_output_for_allocation(AllocateNode* alloc,
 873                                   const TypeOopPtr* oop_type,
 874                                   bool deoptimize_on_exception=false);
 875   Node* get_layout_helper(Node* klass_node, jint& constant_value);
 876   Node* new_instance(Node* klass_node,
 877                      Node* slow_test = NULL,
 878                      Node* *return_size_val = NULL,
 879                      bool deoptimize_on_exception = false,
 880                      ValueTypeNode* value_node = NULL);
 881   Node* new_array(Node* klass_node, Node* count_val, int nargs,
 882                   Node* *return_size_val = NULL,
 883                   bool deoptimize_on_exception = false);
 884   void initialize_value_type_array(Node* array, Node* length, ciValueKlass* vk, int nargs);
 885 
 886   // java.lang.String helpers
 887   Node* load_String_length(Node* ctrl, Node* str);
 888   Node* load_String_value(Node* ctrl, Node* str);
 889   Node* load_String_coder(Node* ctrl, Node* str);
 890   void store_String_value(Node* ctrl, Node* str, Node* value);
 891   void store_String_coder(Node* ctrl, Node* str, Node* value);
 892   Node* capture_memory(const TypePtr* src_type, const TypePtr* dst_type);
 893   Node* compress_string(Node* src, const TypeAryPtr* src_type, Node* dst, Node* count);
 894   void inflate_string(Node* src, Node* dst, const TypeAryPtr* dst_type, Node* count);
 895   void inflate_string_slow(Node* src, Node* dst, Node* start, Node* count);
 896 
 897   // Handy for making control flow
 898   IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) {
 899     IfNode* iff = new IfNode(ctrl, tst, prob, cnt);// New IfNode's
 900     _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time


< prev index next >