diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-05-01 22:21:30 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-05-01 22:21:30 +0000 |
commit | a7057948665eeff513807515749f911b4b64b975 (patch) | |
tree | c832b1649552d8a8db34e8ab7c768d9236c584bb /lib/CodeGen/StackMaps.cpp | |
parent | a6775526e4acd0cb2d3369c449145458aa0ad504 (diff) | |
download | llvm-a7057948665eeff513807515749f911b4b64b975.tar.gz llvm-a7057948665eeff513807515749f911b4b64b975.tar.bz2 llvm-a7057948665eeff513807515749f911b4b64b975.tar.xz |
[Stackmaps] Add command line option to specify the stackmap version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207805 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/StackMaps.cpp')
-rw-r--r-- | lib/CodeGen/StackMaps.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/CodeGen/StackMaps.cpp b/lib/CodeGen/StackMaps.cpp index 36c060faba..3c694581ec 100644 --- a/lib/CodeGen/StackMaps.cpp +++ b/lib/CodeGen/StackMaps.cpp @@ -18,6 +18,7 @@ #include "llvm/MC/MCObjectFileInfo.h" #include "llvm/MC/MCSectionMachO.h" #include "llvm/MC/MCStreamer.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetMachine.h" @@ -29,6 +30,9 @@ using namespace llvm; #define DEBUG_TYPE "stackmaps" +static cl::opt<int> StackMapVersion("stackmap-version", cl::init(1), + cl::desc("Specify the stackmap encoding version (default = 1)")); + PatchPointOpers::PatchPointOpers(const MachineInstr *MI) : MI(MI), HasDef(MI->getOperand(0).isReg() && MI->getOperand(0).isDef() && @@ -64,6 +68,11 @@ unsigned PatchPointOpers::getNextScratchIdx(unsigned StartIdx) const { return ScratchIdx; } +StackMaps::StackMaps(AsmPrinter &AP) : AP(AP) { + if (StackMapVersion != 1) + llvm_unreachable("Unsupported stackmap version!"); +} + MachineInstr::const_mop_iterator StackMaps::parseOperand(MachineInstr::const_mop_iterator MOI, MachineInstr::const_mop_iterator MOE, @@ -272,7 +281,7 @@ void StackMaps::recordPatchPoint(const MachineInstr &MI) { /// uint32 : NumRecords void StackMaps::emitStackmapHeader(MCStreamer &OS) { // Header. - OS.EmitIntValue(1, 1); // Version. + OS.EmitIntValue(StackMapVersion, 1); // Version. OS.EmitIntValue(0, 1); // Reserved. OS.EmitIntValue(0, 2); // Reserved. |