comparison src/share/vm/classfile/vmSymbols.hpp @ 1080:7c57aead6d3e

6892658: C2 should optimize some stringbuilder patterns Reviewed-by: kvn, twisti
author never
date Thu, 12 Nov 2009 09:24:21 -0800
parents 389049f3f393
children a5a6adfca6ec aa62b9388fce
comparison
equal deleted inserted replaced
1078:8e7adf982378 1080:7c57aead6d3e
82 template(java_lang_reflect_Method, "java/lang/reflect/Method") \ 82 template(java_lang_reflect_Method, "java/lang/reflect/Method") \
83 template(java_lang_reflect_Constructor, "java/lang/reflect/Constructor") \ 83 template(java_lang_reflect_Constructor, "java/lang/reflect/Constructor") \
84 template(java_lang_reflect_Field, "java/lang/reflect/Field") \ 84 template(java_lang_reflect_Field, "java/lang/reflect/Field") \
85 template(java_lang_reflect_Array, "java/lang/reflect/Array") \ 85 template(java_lang_reflect_Array, "java/lang/reflect/Array") \
86 template(java_lang_StringBuffer, "java/lang/StringBuffer") \ 86 template(java_lang_StringBuffer, "java/lang/StringBuffer") \
87 template(java_lang_StringBuilder, "java/lang/StringBuilder") \
87 template(java_lang_CharSequence, "java/lang/CharSequence") \ 88 template(java_lang_CharSequence, "java/lang/CharSequence") \
88 template(java_security_AccessControlContext, "java/security/AccessControlContext") \ 89 template(java_security_AccessControlContext, "java/security/AccessControlContext") \
89 template(java_security_ProtectionDomain, "java/security/ProtectionDomain") \ 90 template(java_security_ProtectionDomain, "java/security/ProtectionDomain") \
90 template(java_io_OutputStream, "java/io/OutputStream") \ 91 template(java_io_OutputStream, "java/io/OutputStream") \
91 template(java_io_Reader, "java/io/Reader") \ 92 template(java_io_Reader, "java/io/Reader") \
332 template(conversion_name, "conversion") \ 333 template(conversion_name, "conversion") \
333 template(rtype_name, "rtype") \ 334 template(rtype_name, "rtype") \
334 template(ptypes_name, "ptypes") \ 335 template(ptypes_name, "ptypes") \
335 template(form_name, "form") \ 336 template(form_name, "form") \
336 template(erasedType_name, "erasedType") \ 337 template(erasedType_name, "erasedType") \
338 template(append_name, "append") \
337 \ 339 \
338 /* non-intrinsic name/signature pairs: */ \ 340 /* non-intrinsic name/signature pairs: */ \
339 template(register_method_name, "register") \ 341 template(register_method_name, "register") \
340 do_alias(register_method_signature, object_void_signature) \ 342 do_alias(register_method_signature, object_void_signature) \
341 \ 343 \
413 template(object_signature, "Ljava/lang/Object;") \ 415 template(object_signature, "Ljava/lang/Object;") \
414 template(class_signature, "Ljava/lang/Class;") \ 416 template(class_signature, "Ljava/lang/Class;") \
415 template(string_signature, "Ljava/lang/String;") \ 417 template(string_signature, "Ljava/lang/String;") \
416 template(reference_signature, "Ljava/lang/ref/Reference;") \ 418 template(reference_signature, "Ljava/lang/ref/Reference;") \
417 template(concurrenthashmap_signature, "Ljava/util/concurrent/ConcurrentHashMap;") \ 419 template(concurrenthashmap_signature, "Ljava/util/concurrent/ConcurrentHashMap;") \
420 template(String_StringBuilder_signature, "(Ljava/lang/String;)Ljava/lang/StringBuilder;") \
421 template(int_StringBuilder_signature, "(I)Ljava/lang/StringBuilder;") \
422 template(char_StringBuilder_signature, "(C)Ljava/lang/StringBuilder;") \
423 template(String_StringBuffer_signature, "(Ljava/lang/String;)Ljava/lang/StringBuffer;") \
424 template(int_StringBuffer_signature, "(I)Ljava/lang/StringBuffer;") \
425 template(char_StringBuffer_signature, "(C)Ljava/lang/StringBuffer;") \
426 template(int_String_signature, "(I)Ljava/lang/String;") \
418 /* signature symbols needed by intrinsics */ \ 427 /* signature symbols needed by intrinsics */ \
419 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE) \ 428 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE) \
420 \ 429 \
421 /* symbol aliases needed by intrinsics */ \ 430 /* symbol aliases needed by intrinsics */ \
422 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, do_alias) \ 431 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, do_alias) \
812 do_name( prefetchWriteStatic_name, "prefetchWriteStatic") \ 821 do_name( prefetchWriteStatic_name, "prefetchWriteStatic") \
813 /*== LAST_COMPILER_INLINE*/ \ 822 /*== LAST_COMPILER_INLINE*/ \
814 /*the compiler does have special inlining code for these; bytecode inline is just fine */ \ 823 /*the compiler does have special inlining code for these; bytecode inline is just fine */ \
815 \ 824 \
816 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \ 825 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \
817 \ 826 \
818 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \ 827 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \
819 /* (symbol object_initializer_name defined above) */ \ 828 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \
820 \ 829 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \
830 \
831 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \
832 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \
833 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \
834 \
835 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \
836 \
837 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \
838 do_intrinsic(_StringBuffer_int, java_lang_StringBuffer, object_initializer_name, int_void_signature, F_R) \
839 do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature, F_R) \
840 \
841 do_intrinsic(_StringBuffer_append_char, java_lang_StringBuffer, append_name, char_StringBuffer_signature, F_Y) \
842 do_intrinsic(_StringBuffer_append_int, java_lang_StringBuffer, append_name, int_StringBuffer_signature, F_Y) \
843 do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature, F_Y) \
844 \
845 do_intrinsic(_StringBuffer_toString, java_lang_StringBuffer, toString_name, void_string_signature, F_Y) \
846 \
847 do_intrinsic(_Integer_toString, java_lang_Integer, toString_name, int_String_signature, F_S) \
848 \
849 do_intrinsic(_String_String, java_lang_String, object_initializer_name, string_void_signature, F_R) \
850 \
851 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \
852 /* (symbol object_initializer_name defined above) */ \
853 \
821 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \ 854 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \
822 /* (symbols invoke_name and invoke_signature defined above) */ \ 855 /* (symbols invoke_name and invoke_signature defined above) */ \
823 \ 856 \
824 /*end*/ 857 /*end*/
825 858
943 }; 976 };
944 977
945 enum Flags { 978 enum Flags {
946 // AccessFlags syndromes relevant to intrinsics. 979 // AccessFlags syndromes relevant to intrinsics.
947 F_none = 0, 980 F_none = 0,
948 F_R, // !static !synchronized (R="regular") 981 F_R, // !static ?native !synchronized (R="regular")
949 F_S, // static !synchronized 982 F_S, // static ?native !synchronized
950 F_RN, // !static native !synchronized 983 F_Y, // !static ?native synchronized
951 F_SN, // static native !synchronized 984 F_RN, // !static native !synchronized
952 F_RNY // !static native synchronized 985 F_SN, // static native !synchronized
986 F_RNY // !static native synchronized
953 }; 987 };
954 988
955 public: 989 public:
956 static ID ID_from(int raw_id) { 990 static ID ID_from(int raw_id) {
957 assert(raw_id >= (int)_none && raw_id < (int)ID_LIMIT, 991 assert(raw_id >= (int)_none && raw_id < (int)ID_LIMIT,