Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalJavaAccess.hpp @ 2926:0e3ec0a4eda4
RiTypeProfile information and invocation counters for RiMethods
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Thu, 09 Jun 2011 15:25:27 +0200 |
parents | 75a99b4f1c98 |
children | f00918f35c7f |
comparison
equal
deleted
inserted
replaced
2925:b78b4ae0757c | 2926:0e3ec0a4eda4 |
---|---|
42 * static void set_index(jobject obj, jint x); | 42 * static void set_index(jobject obj, jint x); |
43 * }; | 43 * }; |
44 * | 44 * |
45 */ | 45 */ |
46 | 46 |
47 #define COMPILER_CLASSES_DO(start_class, end_class, char_field, int_field, boolean_field, long_field, oop_field, static_oop_field) \ | 47 #define COMPILER_CLASSES_DO(start_class, end_class, char_field, int_field, boolean_field, long_field, float_field, oop_field, static_oop_field) \ |
48 start_class(HotSpotTypeResolved) \ | 48 start_class(HotSpotTypeResolved) \ |
49 oop_field(HotSpotTypeResolved, compiler, "Lcom/oracle/max/graal/runtime/Compiler;") \ | 49 oop_field(HotSpotTypeResolved, compiler, "Lcom/oracle/max/graal/runtime/Compiler;") \ |
50 oop_field(HotSpotTypeResolved, javaMirror, "Ljava/lang/Class;") \ | 50 oop_field(HotSpotTypeResolved, javaMirror, "Ljava/lang/Class;") \ |
51 oop_field(HotSpotTypeResolved, simpleName, "Ljava/lang/String;") \ | 51 oop_field(HotSpotTypeResolved, simpleName, "Ljava/lang/String;") \ |
52 int_field(HotSpotTypeResolved, accessFlags) \ | 52 int_field(HotSpotTypeResolved, accessFlags) \ |
198 int_field(CiRegister, number) \ | 198 int_field(CiRegister, number) \ |
199 end_class \ | 199 end_class \ |
200 start_class(CiStackSlot) \ | 200 start_class(CiStackSlot) \ |
201 int_field(CiStackSlot, index) \ | 201 int_field(CiStackSlot, index) \ |
202 end_class \ | 202 end_class \ |
203 start_class(RiTypeProfile) \ | |
204 int_field(RiTypeProfile, count) \ | |
205 int_field(RiTypeProfile, morphism) \ | |
206 oop_field(RiTypeProfile, probabilities, "[F") \ | |
207 oop_field(RiTypeProfile, types, "[Lcom/sun/cri/ri/RiType;") \ | |
208 end_class \ | |
203 /* end*/ | 209 /* end*/ |
204 | |
205 | |
206 | |
207 | 210 |
208 #define START_CLASS(name) \ | 211 #define START_CLASS(name) \ |
209 class name : AllStatic { \ | 212 class name : AllStatic { \ |
210 private: \ | 213 private: \ |
211 friend class GraalCompiler; \ | 214 friend class GraalCompiler; \ |
227 | 230 |
228 #define CHAR_FIELD(klass, name) FIELD(name, jchar, char_field) | 231 #define CHAR_FIELD(klass, name) FIELD(name, jchar, char_field) |
229 #define INT_FIELD(klass, name) FIELD(name, jint, int_field) | 232 #define INT_FIELD(klass, name) FIELD(name, jint, int_field) |
230 #define BOOLEAN_FIELD(klass, name) FIELD(name, jboolean, bool_field) | 233 #define BOOLEAN_FIELD(klass, name) FIELD(name, jboolean, bool_field) |
231 #define LONG_FIELD(klass, name) FIELD(name, jlong, long_field) | 234 #define LONG_FIELD(klass, name) FIELD(name, jlong, long_field) |
235 #define FLOAT_FIELD(klass, name) FIELD(name, jfloat, float_field) | |
232 #define OOP_FIELD(klass, name, signature) FIELD(name, oop, obj_field) | 236 #define OOP_FIELD(klass, name, signature) FIELD(name, oop, obj_field) |
233 #define STATIC_OOP_FIELD(klassName, name, signature) \ | 237 #define STATIC_OOP_FIELD(klassName, name, signature) \ |
234 static int _##name##_offset; \ | 238 static int _##name##_offset; \ |
235 static oop name() { \ | 239 static oop name() { \ |
236 instanceKlass* ik = instanceKlass::cast(klassName::klass()); \ | 240 instanceKlass* ik = instanceKlass::cast(klassName::klass()); \ |
248 oopDesc::encode_store_heap_oop((narrowOop *)addr, x); \ | 252 oopDesc::encode_store_heap_oop((narrowOop *)addr, x); \ |
249 } else { \ | 253 } else { \ |
250 oopDesc::encode_store_heap_oop((oop*)addr, x); \ | 254 oopDesc::encode_store_heap_oop((oop*)addr, x); \ |
251 } \ | 255 } \ |
252 } | 256 } |
253 COMPILER_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, OOP_FIELD, STATIC_OOP_FIELD) | 257 COMPILER_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OOP_FIELD, STATIC_OOP_FIELD) |
254 #undef START_CLASS | 258 #undef START_CLASS |
255 #undef END_CLASS | 259 #undef END_CLASS |
256 #undef FIELD | 260 #undef FIELD |
257 #undef CHAR_FIELD | 261 #undef CHAR_FIELD |
258 #undef INT_FIELD | 262 #undef INT_FIELD |
259 #undef BOOLEAN_FIELD | 263 #undef BOOLEAN_FIELD |
260 #undef LONG_FIELD | 264 #undef LONG_FIELD |
265 #undef FLOAT_FIELD | |
261 #undef OOP_FIELD | 266 #undef OOP_FIELD |
262 #undef STATIC_OOP_FIELD | 267 #undef STATIC_OOP_FIELD |
263 | 268 |
264 | 269 |