RFR: 8199417: Modularize interpreter GC barriers
erik.osterlund at oracle.com
Mon Mar 26 09:31:37 UTC 2018
The GC barriers for the interpreter are not as modular as they could be.
They currently use switch statements to check which GC barrier set is
being used, and call this or that barrier based on that, in a way that
assumes GCs only use write barriers.
This patch modularizes this by generating accesses in the interpreter
with declarative semantics. Accesses to the heap may now use store_at
and load_at functions of the BarrierSetAssembler, passing along
appropriate arguments and decorators. Each concrete BarrierSetAssembler
can override the access completely or sprinkle some appropriate GC
barriers as necessary.
Big thanks go to Martin Doerr and Roman Kennke, who helped plugging this
into S390, PPC and AArch64 respectively.
More information about the hotspot-dev