186 return _factory->get_symbol(o);
187 }
188 }
189
190 ciMetadata* get_metadata(Metadata* o) {
191 if (o == nullptr) {
192 return nullptr;
193 } else {
194 return _factory->get_metadata(o);
195 }
196 }
197
198 ciMetadata* cached_metadata(Metadata* o) {
199 return _factory->cached_metadata(o);
200 }
201
202 ciInstance* get_instance(oop o) {
203 if (o == nullptr) return nullptr;
204 return get_object(o)->as_instance();
205 }
206 ciObjArrayKlass* get_obj_array_klass(Klass* o) {
207 if (o == nullptr) return nullptr;
208 return get_metadata(o)->as_obj_array_klass();
209 }
210 ciTypeArrayKlass* get_type_array_klass(Klass* o) {
211 if (o == nullptr) return nullptr;
212 return get_metadata(o)->as_type_array_klass();
213 }
214 ciKlass* get_klass(Klass* o) {
215 if (o == nullptr) return nullptr;
216 return get_metadata(o)->as_klass();
217 }
218 ciInstanceKlass* get_instance_klass(Klass* o) {
219 if (o == nullptr) return nullptr;
220 return get_metadata(o)->as_instance_klass();
221 }
222 ciMethod* get_method(Method* o) {
223 if (o == nullptr) return nullptr;
224 return get_metadata(o)->as_method();
225 }
482 void set_dyno_loc(const InstanceKlass* ik);
483 void record_best_dyno_loc(const InstanceKlass* ik);
484 bool print_dyno_loc(outputStream* out, const InstanceKlass* ik) const;
485
486 GrowableArray<const InstanceKlass*>* _dyno_klasses;
487 GrowableArray<const char *>* _dyno_locs;
488
489 #define MAX_DYNO_NAME_LENGTH 1024
490 char _dyno_name[MAX_DYNO_NAME_LENGTH+1];
491
492 public:
493 // Dump the compilation replay data for the ciEnv to the stream.
494 void dump_replay_data(int compile_id);
495 void dump_inline_data(int compile_id);
496 void dump_replay_data(outputStream* out);
497 void dump_replay_data_unsafe(outputStream* out);
498 void dump_replay_data_helper(outputStream* out);
499 void dump_compile_data(outputStream* out);
500 void dump_replay_data_version(outputStream* out);
501
502 const char *dyno_name(const InstanceKlass* ik) const;
503 const char *replay_name(const InstanceKlass* ik) const;
504 const char *replay_name(ciKlass* i) const;
505
506 void record_lambdaform(Thread* thread, oop obj);
507 void record_member(Thread* thread, oop obj);
508 void record_mh(Thread* thread, oop obj);
509 void record_call_site_obj(Thread* thread, oop obj);
510 void record_call_site_method(Thread* thread, Method* adapter);
511 void process_invokedynamic(const constantPoolHandle &cp, int index, JavaThread* thread);
512 void process_invokehandle(const constantPoolHandle &cp, int index, JavaThread* thread);
513 void find_dynamic_call_sites();
514 };
515
516 #endif // SHARE_CI_CIENV_HPP
|
186 return _factory->get_symbol(o);
187 }
188 }
189
190 ciMetadata* get_metadata(Metadata* o) {
191 if (o == nullptr) {
192 return nullptr;
193 } else {
194 return _factory->get_metadata(o);
195 }
196 }
197
198 ciMetadata* cached_metadata(Metadata* o) {
199 return _factory->cached_metadata(o);
200 }
201
202 ciInstance* get_instance(oop o) {
203 if (o == nullptr) return nullptr;
204 return get_object(o)->as_instance();
205 }
206 ciFlatArrayKlass* get_flat_array_klass(Klass* o) {
207 if (o == nullptr) return nullptr;
208 return get_metadata(o)->as_flat_array_klass();
209 }
210 ciObjArrayKlass* get_obj_array_klass(Klass* o) {
211 if (o == nullptr) return nullptr;
212 return get_metadata(o)->as_obj_array_klass();
213 }
214 ciTypeArrayKlass* get_type_array_klass(Klass* o) {
215 if (o == nullptr) return nullptr;
216 return get_metadata(o)->as_type_array_klass();
217 }
218 ciKlass* get_klass(Klass* o) {
219 if (o == nullptr) return nullptr;
220 return get_metadata(o)->as_klass();
221 }
222 ciInstanceKlass* get_instance_klass(Klass* o) {
223 if (o == nullptr) return nullptr;
224 return get_metadata(o)->as_instance_klass();
225 }
226 ciMethod* get_method(Method* o) {
227 if (o == nullptr) return nullptr;
228 return get_metadata(o)->as_method();
229 }
486 void set_dyno_loc(const InstanceKlass* ik);
487 void record_best_dyno_loc(const InstanceKlass* ik);
488 bool print_dyno_loc(outputStream* out, const InstanceKlass* ik) const;
489
490 GrowableArray<const InstanceKlass*>* _dyno_klasses;
491 GrowableArray<const char *>* _dyno_locs;
492
493 #define MAX_DYNO_NAME_LENGTH 1024
494 char _dyno_name[MAX_DYNO_NAME_LENGTH+1];
495
496 public:
497 // Dump the compilation replay data for the ciEnv to the stream.
498 void dump_replay_data(int compile_id);
499 void dump_inline_data(int compile_id);
500 void dump_replay_data(outputStream* out);
501 void dump_replay_data_unsafe(outputStream* out);
502 void dump_replay_data_helper(outputStream* out);
503 void dump_compile_data(outputStream* out);
504 void dump_replay_data_version(outputStream* out);
505
506 ciWrapper* make_null_free_wrapper(ciType* type) {
507 return _factory->make_null_free_wrapper(type);
508 }
509
510 const char *dyno_name(const InstanceKlass* ik) const;
511 const char *replay_name(const InstanceKlass* ik) const;
512 const char *replay_name(ciKlass* i) const;
513
514 void record_lambdaform(Thread* thread, oop obj);
515 void record_member(Thread* thread, oop obj);
516 void record_mh(Thread* thread, oop obj);
517 void record_call_site_obj(Thread* thread, oop obj);
518 void record_call_site_method(Thread* thread, Method* adapter);
519 void process_invokedynamic(const constantPoolHandle &cp, int index, JavaThread* thread);
520 void process_invokehandle(const constantPoolHandle &cp, int index, JavaThread* thread);
521 void find_dynamic_call_sites();
522 };
523
524 #endif // SHARE_CI_CIENV_HPP
|