This change adds a pass to LLVM to (optionally) generate code around
function calls to check, at runtime, that the function preserves the
registers it is expected to preserve. The motivation for this was
covered on the list a couple of weeks ago , but generally the
intention is to support CSR verification around calls to hand-written
assembly stubs that are common in managed runtimes.
I'm not familiar with much of the areas of LLVM I've touched in this
patch, so a careful review will be appreciated.