Mercurial > hg > graal-jvmci-8
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, |