comparison src/share/vm/c1/c1_Runtime1.hpp @ 2446:13bc79b5c9c8

7033154: Improve C1 arraycopy performance Summary: better static analysis. Take advantage of array copy stubs. Reviewed-by: never
author roland
date Sun, 03 Apr 2011 12:00:54 +0200
parents 1b4e6a5d98e0
children 0654ee04b214 c124e2e7463e
comparison
equal deleted inserted replaced
2445:08eb13460b3a 2446:13bc79b5c9c8
92 static int _handle_wrong_method_cnt; 92 static int _handle_wrong_method_cnt;
93 static int _ic_miss_cnt; 93 static int _ic_miss_cnt;
94 static int _generic_arraycopy_cnt; 94 static int _generic_arraycopy_cnt;
95 static int _primitive_arraycopy_cnt; 95 static int _primitive_arraycopy_cnt;
96 static int _oop_arraycopy_cnt; 96 static int _oop_arraycopy_cnt;
97 static int _generic_arraycopystub_cnt;
97 static int _arraycopy_slowcase_cnt; 98 static int _arraycopy_slowcase_cnt;
99 static int _arraycopy_checkcast_cnt;
100 static int _arraycopy_checkcast_attempt_cnt;
98 static int _new_type_array_slowcase_cnt; 101 static int _new_type_array_slowcase_cnt;
99 static int _new_object_array_slowcase_cnt; 102 static int _new_object_array_slowcase_cnt;
100 static int _new_instance_slowcase_cnt; 103 static int _new_instance_slowcase_cnt;
101 static int _new_multi_array_slowcase_cnt; 104 static int _new_multi_array_slowcase_cnt;
102 static int _monitorenter_slowcase_cnt; 105 static int _monitorenter_slowcase_cnt;
172 175
173 // method tracing 176 // method tracing
174 static void trace_block_entry(jint block_id); 177 static void trace_block_entry(jint block_id);
175 178
176 #ifndef PRODUCT 179 #ifndef PRODUCT
177 static address throw_count_address() { return (address)&_throw_count; } 180 static address throw_count_address() { return (address)&_throw_count; }
181 static address arraycopy_count_address(BasicType type);
178 #endif 182 #endif
179 183
180 // directly accessible leaf routine 184 // directly accessible leaf routine
181 static int arraycopy(oopDesc* src, int src_pos, oopDesc* dst, int dst_pos, int length); 185 static int arraycopy(oopDesc* src, int src_pos, oopDesc* dst, int dst_pos, int length);
182 static void primitive_arraycopy(HeapWord* src, HeapWord* dst, int length); 186 static void primitive_arraycopy(HeapWord* src, HeapWord* dst, int length);