comparison hotspot/src/share/vm/opto/graphKit.hpp @ 33628:09241459a8b8

8141132: JEP 254: Compact Strings Summary: Adopt a more space-efficient internal representation for strings. Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>
author thartmann
date Tue, 03 Nov 2015 09:41:03 +0100
parents 9d377e6f0e4c
children 4fde32e81092
comparison
equal deleted inserted replaced
51:172640ff22b0 52:de369764624c
862 Node* new_array(Node* klass_node, Node* count_val, int nargs, 862 Node* new_array(Node* klass_node, Node* count_val, int nargs,
863 Node* *return_size_val = NULL, 863 Node* *return_size_val = NULL,
864 bool deoptimize_on_exception = false); 864 bool deoptimize_on_exception = false);
865 865
866 // java.lang.String helpers 866 // java.lang.String helpers
867 Node* load_String_offset(Node* ctrl, Node* str);
868 Node* load_String_length(Node* ctrl, Node* str); 867 Node* load_String_length(Node* ctrl, Node* str);
869 Node* load_String_value(Node* ctrl, Node* str); 868 Node* load_String_value(Node* ctrl, Node* str);
870 void store_String_offset(Node* ctrl, Node* str, Node* value); 869 Node* load_String_coder(Node* ctrl, Node* str);
871 void store_String_length(Node* ctrl, Node* str, Node* value);
872 void store_String_value(Node* ctrl, Node* str, Node* value); 870 void store_String_value(Node* ctrl, Node* str, Node* value);
871 void store_String_coder(Node* ctrl, Node* str, Node* value);
872 Node* compress_string(Node* src, Node* dst, Node* count);
873 void inflate_string(Node* src, Node* dst, Node* count);
874 void inflate_string_slow(Node* src, Node* dst, Node* start, Node* count);
873 875
874 // Handy for making control flow 876 // Handy for making control flow
875 IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) { 877 IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) {
876 IfNode* iff = new IfNode(ctrl, tst, prob, cnt);// New IfNode's 878 IfNode* iff = new IfNode(ctrl, tst, prob, cnt);// New IfNode's
877 _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time 879 _gvn.set_type(iff, iff->Value(&_gvn)); // Value may be known at parse-time