Reinvestigating typed assembly language and the garbage collection interface

29 July 2024, 12:00, CSIT Level 2 - Systems Area
Speaker: Hayley Patton (ANU)

Abstract#

Typed assembly languages can be used to ensure memory and type safety, even if a compiler generates incorrect code. The literature has however given little attention to validating the correct use of the interface of high-performance garbage collectors. Such collectors often require that the compiler must generate appropriate stack maps, and that the mutator must initialise objects and execute write barriers before the garbage collector may run. I present a typed assembly language for AArch64, which can validate that the output of a compiler initialises objects before safepointing and can validate the correct use of allocation folding. The type checker can validate the compilation of a subset of the are-we-fast-yet benchmarks; it adds a 29% geomean overhead to compilation time, suggesting that such a typed assembly language can be lightweight enough to be used as a defense in production systems, such as web browsers which compile untrusted JavaScript code. In this semester I hope to extend the typed assembly language to verify the use of write barriers.
bars search caret-down plus minus arrow-right times arrow-up