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 | 673a762b80d4d7de214cdbd2f265083e1337fdd1 (patch) | |
tree | d5f037a570d72e6ca06cdab54e1f409d679a49a7 /llvm/lib/CodeGen/StackMaps.cpp | |
parent | 6340195abdf819aff978c0b27fdf7cc64e202c93 (diff) | |
download | llvm-673a762b80d4d7de214cdbd2f265083e1337fdd1.zip llvm-673a762b80d4d7de214cdbd2f265083e1337fdd1.tar.gz llvm-673a762b80d4d7de214cdbd2f265083e1337fdd1.tar.bz2 |
[Stackmaps] Add command line option to specify the stackmap version.
llvm-svn: 207805
Diffstat (limited to 'llvm/lib/CodeGen/StackMaps.cpp')
-rw-r--r-- | llvm/lib/CodeGen/StackMaps.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/StackMaps.cpp b/llvm/lib/CodeGen/StackMaps.cpp index 36c060f..3c694581 100644 --- a/llvm/lib/CodeGen/StackMaps.cpp +++ b/llvm/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. |