-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Object model specs refactoring #367
Conversation
v8-binding-test |
openjdk-binding-test |
jikesrvm-binding-test |
openjdk-microbm |
openjdk-perf-compare |
jikesrvm-perf-compare |
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
OpenJDK Micro Benchmarks
Running: ['rebench', 'microbm.conf', 'CI_SemiSpace']
|
JikesRVM
NoGC (spanner-2021-07-06-Tue-134522)
SemiSpace (spanner-2021-07-06-Tue-135805)
|
JikesRVM
NoGC (spanner-2021-07-06-Tue-153745)
SemiSpace (spanner-2021-07-06-Tue-155028)
|
OpenJDK
SemiSpace (wrench-2021-07-06-Tue-132216)
GenCopy (wrench-2021-07-06-Tue-152814)
|
OpenJDK
SemiSpace (wrench-2021-07-06-Tue-173914)
GenCopy (wrench-2021-07-06-Tue-194428)
|
src/vm/object_model.rs
Outdated
is_global: Self::IS_GLOBAL, | ||
offset, | ||
log_num_of_bits: Self::LOG_NUM_BITS, | ||
log_min_obj_size, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
log_min_obj_size
is always LOG_BYTES_IN_WORD
for all vm_metadata, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, that's not true for LOS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems the only info we need from a binding for side metadata specs is the offset. Everything else can be defined in mmtk-core for each spec.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This PR adds specific types for each metadata spec in
ObjectModel
which predefines its scope and the length (number of bits). This PR also changes most of the methods related withMetadataSpec
/SideMetadataSpec
/HeaderMetadataSpec
so they take a reference to the spec instead of the spec strut itself (which avoidings copying the spec when invoked without inlining).Binding PRs: