mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com> Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com> Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com> Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
This commit is contained in:
parent
36eee7c8c8
commit
5c58d27aac
853 changed files with 26124 additions and 82956 deletions
|
@ -26,7 +26,7 @@
|
|||
#define SHARE_VM_RUNTIME_FRAME_HPP
|
||||
|
||||
#include "asm/assembler.hpp"
|
||||
#include "oops/methodOop.hpp"
|
||||
#include "oops/method.hpp"
|
||||
#include "runtime/basicLock.hpp"
|
||||
#include "runtime/monitorChunk.hpp"
|
||||
#include "runtime/registerMap.hpp"
|
||||
|
@ -197,7 +197,7 @@ class frame VALUE_OBJ_CLASS_SPEC {
|
|||
|
||||
oop* obj_at_addr(int offset) const { return (oop*) addr_at(offset); }
|
||||
|
||||
oop* adjusted_obj_at_addr(methodOop method, int index) { return obj_at_addr(adjust_offset(method, index)); }
|
||||
oop* adjusted_obj_at_addr(Method* method, int index) { return obj_at_addr(adjust_offset(method, index)); }
|
||||
|
||||
private:
|
||||
jint* int_at_addr(int offset) const { return (jint*) addr_at(offset); }
|
||||
|
@ -343,10 +343,10 @@ class frame VALUE_OBJ_CLASS_SPEC {
|
|||
|
||||
public:
|
||||
// Method & constant pool cache
|
||||
methodOop interpreter_frame_method() const;
|
||||
void interpreter_frame_set_method(methodOop method);
|
||||
methodOop* interpreter_frame_method_addr() const;
|
||||
constantPoolCacheOop* interpreter_frame_cache_addr() const;
|
||||
Method* interpreter_frame_method() const;
|
||||
void interpreter_frame_set_method(Method* method);
|
||||
Method** interpreter_frame_method_addr() const;
|
||||
ConstantPoolCache** interpreter_frame_cache_addr() const;
|
||||
#ifdef PPC
|
||||
oop* interpreter_frame_mirror_addr() const;
|
||||
#endif
|
||||
|
@ -422,12 +422,15 @@ class frame VALUE_OBJ_CLASS_SPEC {
|
|||
void oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache);
|
||||
void oops_entry_do(OopClosure* f, const RegisterMap* map);
|
||||
void oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* map);
|
||||
int adjust_offset(methodOop method, int index); // helper for above fn
|
||||
int adjust_offset(Method* method, int index); // helper for above fn
|
||||
public:
|
||||
// Memory management
|
||||
void oops_do(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map) { oops_do_internal(f, cf, map, true); }
|
||||
void nmethods_do(CodeBlobClosure* cf);
|
||||
|
||||
// RedefineClasses support for finding live interpreted methods on the stack
|
||||
void metadata_do(void f(Metadata*));
|
||||
|
||||
void gc_prologue();
|
||||
void gc_epilogue();
|
||||
void pd_gc_epilog();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue