[llvm-commits] CVS: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h LiveVariables.h

Evan Cheng evan.cheng at apple.com
Wed Feb 14 21:57:32 PST 2007



Changes in directory llvm/include/llvm/CodeGen:

LiveIntervalAnalysis.h updated: 1.67 -> 1.68
LiveVariables.h updated: 1.31 -> 1.32
---
Log message:

Use BitVector instead of vector<bool> which can be extremely slow.

---
Diffs of the changes:  (+5 -3)

 LiveIntervalAnalysis.h |    3 ++-
 LiveVariables.h        |    5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)


Index: llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
diff -u llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.67 llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.68
--- llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h:1.67	Wed Jan 31 23:32:05 2007
+++ llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h	Wed Feb 14 23:57:14 2007
@@ -22,6 +22,7 @@
 
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/LiveInterval.h"
+#include "llvm/ADT/BitVector.h"
 #include "llvm/ADT/IndexedMap.h"
 
 namespace llvm {
@@ -54,7 +55,7 @@
     typedef IndexedMap<unsigned> Reg2RegMap;
     Reg2RegMap r2rMap_;
 
-    std::vector<bool> allocatableRegs_;
+    BitVector allocatableRegs_;
 
   public:
     struct CopyRec {


Index: llvm/include/llvm/CodeGen/LiveVariables.h
diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.31 llvm/include/llvm/CodeGen/LiveVariables.h:1.32
--- llvm/include/llvm/CodeGen/LiveVariables.h:1.31	Wed Nov 15 14:47:31 2006
+++ llvm/include/llvm/CodeGen/LiveVariables.h	Wed Feb 14 23:57:14 2007
@@ -30,6 +30,7 @@
 #define LLVM_CODEGEN_LIVEVARIABLES_H
 
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/ADT/BitVector.h"
 #include <map>
 
 namespace llvm {
@@ -75,7 +76,7 @@
     /// through.  This is a bit set which uses the basic block number as an
     /// index.
     ///
-    std::vector<bool> AliveBlocks;
+    BitVector AliveBlocks;
 
     /// Kills - List of MachineInstruction's which are the last use of this
     /// virtual register (kill it) in their basic block.
@@ -111,7 +112,7 @@
   /// are actually register allocatable by the target machine.  We can not track
   /// liveness for values that are not in this set.
   ///
-  std::vector<bool> AllocatablePhysicalRegisters;
+  BitVector AllocatablePhysicalRegisters;
 
 private:   // Intermediate data structures
   const MRegisterInfo *RegInfo;






More information about the llvm-commits mailing list