summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/StackMaps.h
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:27 +0000
committerJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:27 +0000
commita6775526e4acd0cb2d3369c449145458aa0ad504 (patch)
treefe9873219906925f60834bcaf65d13cd3a78969e /include/llvm/CodeGen/StackMaps.h
parent23fc1727e755feb734e500214ca193b5d01007ff (diff)
downloadllvm-a6775526e4acd0cb2d3369c449145458aa0ad504.tar.gz
llvm-a6775526e4acd0cb2d3369c449145458aa0ad504.tar.bz2
llvm-a6775526e4acd0cb2d3369c449145458aa0ad504.tar.xz
[Stackmaps] Refactor serialization code. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207804 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/StackMaps.h')
-rw-r--r--include/llvm/CodeGen/StackMaps.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/StackMaps.h b/include/llvm/CodeGen/StackMaps.h
index 67b815f9dd..b52240ce66 100644
--- a/include/llvm/CodeGen/StackMaps.h
+++ b/include/llvm/CodeGen/StackMaps.h
@@ -21,6 +21,7 @@ namespace llvm {
class AsmPrinter;
class MCExpr;
+class MCStreamer;
/// \brief MI-level patchpoint operands.
///
@@ -131,6 +132,8 @@ public:
void serializeToStackMapSection();
private:
+ const char *WSMP = "Stack Maps: ";
+
typedef SmallVector<Location, 8> LocationVec;
typedef SmallVector<LiveOutReg, 8> LiveOutVec;
typedef MapVector<int64_t, int64_t> ConstantPool;
@@ -177,6 +180,18 @@ private:
MachineInstr::const_mop_iterator MOI,
MachineInstr::const_mop_iterator MOE,
bool recordResult = false);
+
+ /// \brief Emit the stackmap header.
+ void emitStackmapHeader(MCStreamer &OS);
+
+ /// \brief Emit the function frame record for each function.
+ void emitFunctionFrameRecords(MCStreamer &OS);
+
+ /// \brief Emit the constant pool.
+ void emitConstantPoolEntries(MCStreamer &OS);
+
+ /// \brief Emit the callsite info for each stackmap/patchpoint intrinsic call.
+ void emitCallsiteEntries(MCStreamer &OS, const TargetRegisterInfo *TRI);
};
}