[PATCH] D21115: Add a callee-saved register verifier to LLVM

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 7 18:38:51 PDT 2016


sanjoy created this revision.
sanjoy added reviewers: qcolombet, MatzeB, dblaikie, atrick.
sanjoy added a subscriber: llvm-commits.
Herald added a subscriber: mcrosier.

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 [0], 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.

[0]: http://lists.llvm.org/pipermail/llvm-dev/2016-May/099693.html

http://reviews.llvm.org/D21115

Files:
  include/llvm/ADT/APInt.h
  include/llvm/CodeGen/Passes.h
  include/llvm/InitializePasses.h
  include/llvm/Target/TargetInstrInfo.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/TargetPassConfig.cpp
  lib/CodeGen/VerifyCalleeSavedRegs.cpp
  lib/Support/APInt.cpp
  lib/Target/X86/X86InstrInfo.cpp
  lib/Target/X86/X86InstrInfo.h
  test/CodeGen/X86/verify-csrs.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21115.59985.patch
Type: text/x-patch
Size: 27668 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160608/3272c5bf/attachment.bin>


More information about the llvm-commits mailing list