aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/InstrSched/SchedGraph.h
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-03-24 03:53:03 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-03-24 03:53:03 +0000
commit97fb99bc540c1b5611d85d09191f4c5311cf075a (patch)
tree4eacb0a4b43a70aa3cb5bd74040d2672312e8669 /lib/CodeGen/InstrSched/SchedGraph.h
parent1392d6903cff7a770674ddaa8651667c179c5c51 (diff)
Use deterministic iterator for SchedGraphs. This is actually not
useful right now when we only do local scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1975 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/InstrSched/SchedGraph.h')
-rw-r--r--lib/CodeGen/InstrSched/SchedGraph.h34
1 files changed, 10 insertions, 24 deletions
diff --git a/lib/CodeGen/InstrSched/SchedGraph.h b/lib/CodeGen/InstrSched/SchedGraph.h
index 99e20576b8..8a8a523f00 100644
--- a/lib/CodeGen/InstrSched/SchedGraph.h
+++ b/lib/CodeGen/InstrSched/SchedGraph.h
@@ -336,49 +336,35 @@ private:
class SchedGraphSet :
public NonCopyable,
- private std::hash_map<const BasicBlock*, SchedGraph*>
+ private std::vector<SchedGraph*>
{
private:
const Function* method;
public:
- typedef std::hash_map<const BasicBlock*, SchedGraph*> map_base;
- using map_base::iterator;
- using map_base::const_iterator;
+ typedef std::vector<SchedGraph*> baseVector;
+ using baseVector::iterator;
+ using baseVector::const_iterator;
public:
/*ctor*/ SchedGraphSet (const Function * function,
const TargetMachine& target);
/*dtor*/ ~SchedGraphSet ();
- //
- // Accessors
- //
- SchedGraph* getGraphForBasicBlock (const BasicBlock* bb) const {
- const_iterator onePair = this->find(bb);
- return (onePair != this->end())? (*onePair).second : NULL;
- }
-
- //
// Iterators
- //
- using map_base::begin;
- using map_base::end;
+ using baseVector::begin;
+ using baseVector::end;
- //
// Debugging support
- //
void dump () const;
private:
- inline void noteGraphForBlock(const BasicBlock* bb, SchedGraph* graph) {
- assert((*this)[bb] == NULL);
- (*this)[bb] = graph;
+ inline void addGraph(SchedGraph* graph) {
+ assert(graph != NULL);
+ this->push_back(graph);
}
-
- //
+
// Graph builder
- //
void buildGraphsForMethod (const Function *F,
const TargetMachine& target);
};