Use a deque instead of a vector for greater efficiency writing bytecode
authorChris Lattner <sabre@nondot.org>
Fri, 7 Sep 2001 16:27:49 +0000 (16:27 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 7 Sep 2001 16:27:49 +0000 (16:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@434 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Bytecode/Primitives.h

index d687fb8185953ff3fdeaf8e4d7bde3f64c5ead43..178904d15fff96e39d7a042425d19286d28397bf 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "llvm/Support/DataTypes.h"
 #include <string>
-#include <vector>
+#include <deque>
 
 //===----------------------------------------------------------------------===//
 //                             Reading Primitives
@@ -157,7 +157,7 @@ static inline bool input_data(const unsigned char *&Buf,
 // string... note that this should be inlined always so only the relevant IF 
 // body should be included...
 //
-static inline void output(unsigned i, vector<unsigned char> &Out, int pos = -1){
+static inline void output(unsigned i, deque<unsigned char> &Out, int pos = -1){
 #ifdef LITTLE_ENDIAN
   if (pos == -1) 
     Out.insert(Out.end(), (unsigned char*)&i, (unsigned char*)&i+4);
@@ -178,7 +178,7 @@ static inline void output(unsigned i, vector<unsigned char> &Out, int pos = -1){
 #endif
 }
 
-static inline void output(int i, vector<unsigned char> &Out) {
+static inline void output(int i, deque<unsigned char> &Out) {
   output((unsigned)i, Out);
 }
 
@@ -191,7 +191,7 @@ static inline void output(int i, vector<unsigned char> &Out) {
 //
 // Note that using this may cause the output buffer to become unaligned...
 //
-static inline void output_vbr(uint64_t i, vector<unsigned char> &out) {
+static inline void output_vbr(uint64_t i, deque<unsigned char> &out) {
   while (1) {
     if (i < 0x80) { // done?
       out.push_back((unsigned char)i);   // We know the high bit is clear...
@@ -205,7 +205,7 @@ static inline void output_vbr(uint64_t i, vector<unsigned char> &out) {
   }
 }
 
-static inline void output_vbr(unsigned i, vector<unsigned char> &out) {
+static inline void output_vbr(unsigned i, deque<unsigned char> &out) {
   while (1) {
     if (i < 0x80) { // done?
       out.push_back((unsigned char)i);   // We know the high bit is clear...
@@ -219,7 +219,7 @@ static inline void output_vbr(unsigned i, vector<unsigned char> &out) {
   }
 }
 
-static inline void output_vbr(int64_t i, vector<unsigned char> &out) {
+static inline void output_vbr(int64_t i, deque<unsigned char> &out) {
   if (i < 0) 
     output_vbr(((uint64_t)(-i) << 1) | 1, out); // Set low order sign bit...
   else
@@ -227,7 +227,7 @@ static inline void output_vbr(int64_t i, vector<unsigned char> &out) {
 }
 
 
-static inline void output_vbr(int i, vector<unsigned char> &out) {
+static inline void output_vbr(int i, deque<unsigned char> &out) {
   if (i < 0) 
     output_vbr(((unsigned)(-i) << 1) | 1, out); // Set low order sign bit...
   else
@@ -237,12 +237,12 @@ static inline void output_vbr(int i, vector<unsigned char> &out) {
 // align32 - emit the minimal number of bytes that will bring us to 32 bit 
 // alignment...
 //
-static inline void align32(vector<unsigned char> &Out) {
+static inline void align32(deque<unsigned char> &Out) {
   int NumPads = (4-(Out.size() & 3)) & 3; // Bytes to get padding to 32 bits
   while (NumPads--) Out.push_back((unsigned char)0xAB);
 }
 
-static inline void output(const string &s, vector<unsigned char> &Out, 
+static inline void output(const string &s, deque<unsigned char> &Out, 
                          bool Aligned = true) {
   unsigned Len = s.length();
   output_vbr(Len, Out);             // Strings may have an arbitrary length...
@@ -253,7 +253,7 @@ static inline void output(const string &s, vector<unsigned char> &Out,
 }
 
 static inline void output_data(void *Ptr, void *End,
-                              vector<unsigned char> &Out, bool Align = false) {
+                              deque<unsigned char> &Out, bool Align = false) {
 #ifdef LITTLE_ENDIAN
   Out.insert(Out.end(), (unsigned char*)Ptr, (unsigned char*)End);
 #else