Pass a vector around to reduce dynamic allocation
Throw the RawInst class in an anon namespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8990 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/InstructionReader.cpp b/lib/Bytecode/Reader/InstructionReader.cpp
index b085581..1b2ada0 100644
--- a/lib/Bytecode/Reader/InstructionReader.cpp
+++ b/lib/Bytecode/Reader/InstructionReader.cpp
@@ -14,15 +14,16 @@
 #include "llvm/iPHINode.h"
 #include "llvm/iOther.h"
 
-struct RawInst {       // The raw fields out of the bytecode stream...
-  unsigned NumOperands;
-  unsigned Opcode;
-  unsigned Type;
-
-  RawInst(const unsigned char *&Buf, const unsigned char *EndBuf,
-          std::vector<unsigned> &Args);
-          
-};
+namespace {
+  struct RawInst {       // The raw fields out of the bytecode stream...
+    unsigned NumOperands;
+    unsigned Opcode;
+    unsigned Type;
+    
+    RawInst(const unsigned char *&Buf, const unsigned char *EndBuf,
+            std::vector<unsigned> &Args);
+  };
+}
 
 
 
@@ -102,8 +103,9 @@
 
 
 Instruction *BytecodeParser::ParseInstruction(const unsigned char *&Buf,
-                                              const unsigned char *EndBuf) {
-  std::vector<unsigned> Args;
+                                              const unsigned char *EndBuf,
+                                              std::vector<unsigned> &Args) {
+  Args.clear();
   RawInst RI(Buf, EndBuf, Args);
   const Type *InstTy = getType(RI.Type);