switch the sched unit map over to use a DenseMap instead of std::map. This
authorChris Lattner <sabre@nondot.org>
Sat, 3 Feb 2007 01:34:13 +0000 (01:34 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 3 Feb 2007 01:34:13 +0000 (01:34 +0000)
speeds up isel as a whole time by 2.6%.

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

include/llvm/CodeGen/MachinePassRegistry.h
include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

index 64d364e224c439596160aa84acb544972febe469..4bb34b02e578eea29f3d1871b87402adffccc2b9 100644 (file)
@@ -19,7 +19,6 @@
 #define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
 
 #include "llvm/CodeGen/Passes.h"
-#include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/Support/CommandLine.h"
 
 namespace llvm {
index 86e08fe9d9e260526ddb24a217c30c9b969aac7e..e205306fa7d633337d2a5afb6396ae7bd92823a1 100644 (file)
@@ -16,6 +16,7 @@
 #define LLVM_CODEGEN_SCHEDULEDAG_H
 
 #include "llvm/CodeGen/SelectionDAG.h"
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallSet.h"
 
 namespace llvm {
@@ -153,7 +154,7 @@ namespace llvm {
   public:
     virtual ~SchedulingPriorityQueue() {}
   
-    virtual void initNodes(std::map<SDNode*, SUnit*> &SUMap,
+    virtual void initNodes(DenseMap<SDNode*, SUnit*> &SUMap,
                            std::vector<SUnit> &SUnits) = 0;
     virtual void releaseState() = 0;
   
@@ -180,7 +181,7 @@ namespace llvm {
     MachineConstantPool *ConstPool;       // Target constant pool
     std::vector<SUnit*> Sequence;         // The schedule. Null SUnit*'s
                                           // represent noop instructions.
-    std::map<SDNode*, SUnit*> SUnitMap;   // SDNode to SUnit mapping (n -> 1).
+    DenseMap<SDNode*, SUnit*> SUnitMap;   // SDNode to SUnit mapping (n -> 1).
     std::vector<SUnit> SUnits;            // The scheduling units.
     SmallSet<SDNode*, 16> CommuteSet;     // Nodes the should be commuted.
 
index d21ef34c6457610534bfbfecbb8ec8350479bcbf..dbbf3f94fb759cbfadabdb71dd6520c4f39b6156 100644 (file)
@@ -328,7 +328,7 @@ public:
     LatencyPriorityQueue() : Queue(latency_sort(this)) {
     }
     
-    void initNodes(std::map<SDNode*, SUnit*> &sumap,
+    void initNodes(DenseMap<SDNode*, SUnit*> &sumap,
                    std::vector<SUnit> &sunits) {
       SUnits = &sunits;
       // Calculate node priorities.
index 2d1e6a3df924806128c0d44a9df366dcf6854644..66edfbce4e9e9a5f64ad7ccfe7a92523a9e2caa3 100644 (file)
@@ -430,7 +430,7 @@ namespace {
     RegReductionPriorityQueue() :
     Queue(SF(this)) {}
     
-    virtual void initNodes(std::map<SDNode*, SUnit*> &sumap,
+    virtual void initNodes(DenseMap<SDNode*, SUnit*> &sumap,
                            std::vector<SUnit> &sunits) {}
     virtual void releaseState() {}
     
@@ -464,7 +464,7 @@ namespace {
   class VISIBILITY_HIDDEN BURegReductionPriorityQueue
    : public RegReductionPriorityQueue<SF> {
     // SUnitMap SDNode to SUnit mapping (n -> 1).
-    std::map<SDNode*, SUnit*> *SUnitMap;
+    DenseMap<SDNode*, SUnit*> *SUnitMap;
 
     // SUnits - The SUnits for the current graph.
     const std::vector<SUnit> *SUnits;
@@ -477,7 +477,7 @@ namespace {
     BURegReductionPriorityQueue(const TargetInstrInfo *tii)
       : TII(tii) {}
 
-    void initNodes(std::map<SDNode*, SUnit*> &sumap,
+    void initNodes(DenseMap<SDNode*, SUnit*> &sumap,
                    std::vector<SUnit> &sunits) {
       SUnitMap = &sumap;
       SUnits = &sunits;
@@ -541,7 +541,7 @@ namespace {
   template<class SF>
   class TDRegReductionPriorityQueue : public RegReductionPriorityQueue<SF> {
     // SUnitMap SDNode to SUnit mapping (n -> 1).
-    std::map<SDNode*, SUnit*> *SUnitMap;
+    DenseMap<SDNode*, SUnit*> *SUnitMap;
 
     // SUnits - The SUnits for the current graph.
     const std::vector<SUnit> *SUnits;
@@ -552,7 +552,7 @@ namespace {
   public:
     TDRegReductionPriorityQueue() {}
 
-    void initNodes(std::map<SDNode*, SUnit*> &sumap,
+    void initNodes(DenseMap<SDNode*, SUnit*> &sumap,
                    std::vector<SUnit> &sunits) {
       SUnitMap = &sumap;
       SUnits = &sunits;