On some architectures, such as RISC-V, the immediate operands of instructions are too small for the size of the Mutator struct. We need to fix this to get RISC-V working. Otherwise we will have to modify the number of allocators in the Allocators struct in mmtk-core, which is not general.
We embed the Mutator struct into TLS to reduce one indirection during allocation fast paths. But the fast paths only need to access the BumpPointer structure of bump allocators and Immix allocators. Our Porting Guide shows how to do this: https://docs.mmtk.io/portingguide/perf_tuning/alloc.html#option-3-embed-the-fast-path-struct
We can experiment on the master branch and get it working. We will then merge it into the jdk-21+35-mmtk branch which will soon become the new master.
On some architectures, such as RISC-V, the immediate operands of instructions are too small for the size of the
Mutatorstruct. We need to fix this to get RISC-V working. Otherwise we will have to modify the number of allocators in theAllocatorsstruct in mmtk-core, which is not general.We embed the
Mutatorstruct into TLS to reduce one indirection during allocation fast paths. But the fast paths only need to access theBumpPointerstructure of bump allocators and Immix allocators. Our Porting Guide shows how to do this: https://docs.mmtk.io/portingguide/perf_tuning/alloc.html#option-3-embed-the-fast-path-structWe can experiment on the
masterbranch and get it working. We will then merge it into thejdk-21+35-mmtkbranch which will soon become the new master.