Use a SmallVector instead of std::vector for ResOperands.
authorJim Grosbach <grosbach@apple.com>
Thu, 19 Apr 2012 17:52:34 +0000 (17:52 +0000)
committerJim Grosbach <grosbach@apple.com>
Thu, 19 Apr 2012 17:52:34 +0000 (17:52 +0000)
There's almost always a small number of instruction operands, so
use a SmallVector and save on heap allocations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155143 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/AsmMatcherEmitter.cpp

index 676211d3125a7010dabba6451025d48148761dbf..1b7f67e83a47668f306eb90e1e93b1302f99230c 100644 (file)
@@ -385,7 +385,7 @@ struct MatchableInfo {
 
   /// ResOperands - This is the operand list that should be built for the result
   /// MCInst.
-  std::vector<ResOperand> ResOperands;
+  SmallVector<ResOperand, 8> ResOperands;
 
   /// AsmString - The assembly string for this instruction (with variants
   /// removed), e.g. "movsx $src, $dst".
@@ -399,7 +399,7 @@ struct MatchableInfo {
   /// annotated with a class and where in the OperandList they were defined.
   /// This directly corresponds to the tokenized AsmString after the mnemonic is
   /// removed.
-  SmallVector<AsmOperand, 4> AsmOperands;
+  SmallVector<AsmOperand, 8> AsmOperands;
 
   /// Predicates - The required subtarget features to match this instruction.
   SmallVector<SubtargetFeatureInfo*, 4> RequiredFeatures;