comparison src/share/vm/ci/ciEnv.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 148e5441d916
children 97125851f396
comparison
equal deleted inserted replaced
1078:8e7adf982378 1080:7c57aead6d3e
80 static ciInstanceKlass* _Object; 80 static ciInstanceKlass* _Object;
81 static ciInstanceKlass* _Throwable; 81 static ciInstanceKlass* _Throwable;
82 static ciInstanceKlass* _Thread; 82 static ciInstanceKlass* _Thread;
83 static ciInstanceKlass* _OutOfMemoryError; 83 static ciInstanceKlass* _OutOfMemoryError;
84 static ciInstanceKlass* _String; 84 static ciInstanceKlass* _String;
85 static ciInstanceKlass* _StringBuffer;
86 static ciInstanceKlass* _StringBuilder;
87 static ciInstanceKlass* _Integer;
85 88
86 static ciSymbol* _unloaded_cisymbol; 89 static ciSymbol* _unloaded_cisymbol;
87 static ciInstanceKlass* _unloaded_ciinstance_klass; 90 static ciInstanceKlass* _unloaded_ciinstance_klass;
88 static ciObjArrayKlass* _unloaded_ciobjarrayklass; 91 static ciObjArrayKlass* _unloaded_ciobjarrayklass;
89 92
94 ciInstance* _NullPointerException_instance; 97 ciInstance* _NullPointerException_instance;
95 ciInstance* _ArithmeticException_instance; 98 ciInstance* _ArithmeticException_instance;
96 ciInstance* _ArrayIndexOutOfBoundsException_instance; 99 ciInstance* _ArrayIndexOutOfBoundsException_instance;
97 ciInstance* _ArrayStoreException_instance; 100 ciInstance* _ArrayStoreException_instance;
98 ciInstance* _ClassCastException_instance; 101 ciInstance* _ClassCastException_instance;
102
103 ciInstance* _the_null_string; // The Java string "null"
104 ciInstance* _the_min_jint_string; // The Java string "-2147483648"
99 105
100 // Look up a klass by name from a particular class loader (the accessor's). 106 // Look up a klass by name from a particular class loader (the accessor's).
101 // If require_local, result must be defined in that class loader, or NULL. 107 // If require_local, result must be defined in that class loader, or NULL.
102 // If !require_local, a result from remote class loader may be reported, 108 // If !require_local, a result from remote class loader may be reported,
103 // if sufficient class loader constraints exist such that initiating 109 // if sufficient class loader constraints exist such that initiating
308 return _OutOfMemoryError; 314 return _OutOfMemoryError;
309 } 315 }
310 ciInstanceKlass* String_klass() { 316 ciInstanceKlass* String_klass() {
311 return _String; 317 return _String;
312 } 318 }
319 ciInstanceKlass* StringBuilder_klass() {
320 return _StringBuilder;
321 }
322 ciInstanceKlass* StringBuffer_klass() {
323 return _StringBuffer;
324 }
325 ciInstanceKlass* Integer_klass() {
326 return _Integer;
327 }
313 ciInstance* NullPointerException_instance() { 328 ciInstance* NullPointerException_instance() {
314 assert(_NullPointerException_instance != NULL, "initialization problem"); 329 assert(_NullPointerException_instance != NULL, "initialization problem");
315 return _NullPointerException_instance; 330 return _NullPointerException_instance;
316 } 331 }
317 ciInstance* ArithmeticException_instance() { 332 ciInstance* ArithmeticException_instance() {
321 336
322 // Lazy constructors: 337 // Lazy constructors:
323 ciInstance* ArrayIndexOutOfBoundsException_instance(); 338 ciInstance* ArrayIndexOutOfBoundsException_instance();
324 ciInstance* ArrayStoreException_instance(); 339 ciInstance* ArrayStoreException_instance();
325 ciInstance* ClassCastException_instance(); 340 ciInstance* ClassCastException_instance();
341
342 ciInstance* the_null_string();
343 ciInstance* the_min_jint_string();
326 344
327 static ciSymbol* unloaded_cisymbol() { 345 static ciSymbol* unloaded_cisymbol() {
328 return _unloaded_cisymbol; 346 return _unloaded_cisymbol;
329 } 347 }
330 static ciObjArrayKlass* unloaded_ciobjarrayklass() { 348 static ciObjArrayKlass* unloaded_ciobjarrayklass() {