aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/SparcV9/MappingInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/SparcV9/MappingInfo.h')
-rw-r--r--lib/Target/SparcV9/MappingInfo.h37
1 files changed, 32 insertions, 5 deletions
diff --git a/lib/Target/SparcV9/MappingInfo.h b/lib/Target/SparcV9/MappingInfo.h
index aa8efaf..c3177de 100644
--- a/lib/Target/SparcV9/MappingInfo.h
+++ b/lib/Target/SparcV9/MappingInfo.h
@@ -1,11 +1,38 @@
-#ifndef LLVM_CODEGEN_MAPPINGINFO_H
-#define LLVM_CODEGEN_MAPPINGINFO_H
+//===- llvm/Reoptimizer/Mapping/MappingInfo.h ------------------*- C++ -*--=////
+//
+// Data structures to support the Reoptimizer's Instruction-to-MachineInstr
+// mapping information gatherer.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_REOPTIMIZER_MAPPING_MAPPINGINFO_H
+#define LLVM_REOPTIMIZER_MAPPING_MAPPINGINFO_H
#include <iosfwd>
+#include <vector>
+#include <string>
class Pass;
-Pass *MappingInfoForFunction(std::ostream &out);
-
-#endif
+Pass *getMappingInfoCollector(std::ostream &out);
+class MappingInfo {
+ class byteVector : public std::vector <unsigned char> {
+ public:
+ void dumpAssembly (std::ostream &Out);
+ };
+ std::string comment;
+ std::string symbolPrefix;
+ unsigned functionNumber;
+ byteVector bytes;
+public:
+ void outByte (unsigned char b) { bytes.push_back (b); }
+ MappingInfo (std::string _comment, std::string _symbolPrefix,
+ unsigned _functionNumber) : comment(_comment),
+ symbolPrefix(_symbolPrefix), functionNumber(_functionNumber) { }
+ void dumpAssembly (std::ostream &Out);
+ unsigned char *getBytes (unsigned int &length) {
+ length = bytes.size(); return &bytes[0];
+ }
+};
+#endif