< prev index next > src/hotspot/share/ci/ciEnv.hpp
Print this page
#include "oops/methodData.hpp"
#include "runtime/javaThread.hpp"
class CompileTask;
class OopMapSet;
+ class SCCEntry;
// ciEnv
//
// This class is the top level broker for requests from the compiler
// to the VM.
return get_metadata(o)->as_method_data();
}
ciMethod* get_method_from_handle(Method* method);
- ciInstance* get_or_create_exception(jobject& handle, Symbol* name);
-
// Get a ciMethod representing either an unfound method or
// a method with an unloaded holder. Ensures uniqueness of
// the result.
ciMethod* get_unloaded_method(ciKlass* holder,
ciSymbol* name,
int frame_words,
OopMapSet* oop_map_set,
ExceptionHandlerTable* handler_table,
ImplicitExceptionTable* inc_table,
AbstractCompiler* compiler,
+ bool has_clinit_barriers,
+ bool for_preload,
bool has_unsafe_access,
bool has_wide_vectors,
bool has_monitors,
int immediate_oops_patched,
- RTMState rtm_state = NoRTM);
+ bool install_code,
+ RTMState rtm_state = NoRTM,
+ SCCEntry* entry = nullptr);
// Access to certain well known ciObjects.
#define VM_CLASS_FUNC(name, ignore_s) \
ciInstanceKlass* name() { \
return _##name;\
void record_out_of_memory_failure();
// RedefineClasses support
void metadata_do(MetadataClosure* f) { _factory->metadata_do(f); }
+ private:
+ SCCEntry* _scc_clinit_barriers_entry;
+
+ public:
+ void set_scc_clinit_barriers_entry(SCCEntry* entry) { _scc_clinit_barriers_entry = entry; }
+ SCCEntry* scc_clinit_barriers_entry() const { return _scc_clinit_barriers_entry; }
+
// Replay support
private:
static int klass_compare(const InstanceKlass* const &ik1, const InstanceKlass* const &ik2) {
if (ik1 > ik2) {
return 1;
void record_call_site_obj(Thread* thread, oop obj);
void record_call_site_method(Thread* thread, Method* adapter);
void process_invokedynamic(const constantPoolHandle &cp, int index, JavaThread* thread);
void process_invokehandle(const constantPoolHandle &cp, int index, JavaThread* thread);
void find_dynamic_call_sites();
+
+ bool is_precompiled();
+ bool is_fully_initialized(InstanceKlass* ik);
+ InstanceKlass::ClassState compute_init_state_for_precompiled(InstanceKlass* ik);
};
#endif // SHARE_CI_CIENV_HPP
< prev index next >