Common memory safety instrumentation and optimization passes for LLVM
by Ott Tinn for The LLVM Compiler Infrastructure
The goal of this project is to modify SAFECode and AddressSanitizer (ASan) to use a common set of memory safety instrumentation and optimization passes to increase code reuse. These tools and other similar ones use varying runtime methods, but are fundamentally trying to do the same thing: check whether each memory access is safe. It is desirable to optimize away redundant runtime checks to improve such tools' runtime performance. This means that there is a need for shared memory safety instrumentation and optimization passes.