RFR: 8199417: Modularize interpreter GC barriers

Erik Österlund 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 mailing list