< 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.
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,
bool has_scoped_access,
- int immediate_oops_patched);
+ int immediate_oops_patched,
+ bool install_code,
+ 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 >