summaryrefslogtreecommitdiff
path: root/lib/CodeGen/StackMaps.cpp
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:30 +0000
committerJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:30 +0000
commita7057948665eeff513807515749f911b4b64b975 (patch)
treec832b1649552d8a8db34e8ab7c768d9236c584bb /lib/CodeGen/StackMaps.cpp
parenta6775526e4acd0cb2d3369c449145458aa0ad504 (diff)
downloadllvm-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.cpp11
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.