Use a SmallSet when we can to reduce memory allocations.
authorOwen Anderson <resistor@mac.com>
Fri, 27 Jun 2008 07:05:59 +0000 (07:05 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 27 Jun 2008 07:05:59 +0000 (07:05 +0000)
This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables.

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

lib/CodeGen/LiveVariables.cpp

index f3a92f2f1c8cf14f6f7fdcc062254d7ad9fcd055..ab73c97ec9e8fbbdc8214ffb8d734909f74a26eb 100644 (file)
@@ -34,6 +34,7 @@
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Config/alloca.h"
 #include <algorithm>
@@ -387,7 +388,7 @@ bool LiveVariables::HandlePhysRegKill(unsigned Reg) {
 
 void LiveVariables::HandlePhysRegDef(unsigned Reg, MachineInstr *MI) {
   // What parts of the register are previously defined?
-  std::set<unsigned> Live;
+  SmallSet<unsigned, 32> Live;
   if (PhysRegDef[Reg] || PhysRegUse[Reg]) {
     Live.insert(Reg);
     for (const unsigned *SS = TRI->getSubRegisters(Reg); *SS; ++SS)