From 97fb99bc540c1b5611d85d09191f4c5311cf075a Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sun, 24 Mar 2002 03:53:03 +0000 Subject: [PATCH] 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 --- lib/CodeGen/InstrSched/SchedGraph.h | 34 +++++++--------------- lib/Target/SparcV9/InstrSched/SchedGraph.h | 34 +++++++--------------- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/lib/CodeGen/InstrSched/SchedGraph.h b/lib/CodeGen/InstrSched/SchedGraph.h index 99e20576b8f..8a8a523f004 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 + private std::vector { private: const Function* method; public: - typedef std::hash_map map_base; - using map_base::iterator; - using map_base::const_iterator; + typedef std::vector 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); }; diff --git a/lib/Target/SparcV9/InstrSched/SchedGraph.h b/lib/Target/SparcV9/InstrSched/SchedGraph.h index 99e20576b8f..8a8a523f004 100644 --- a/lib/Target/SparcV9/InstrSched/SchedGraph.h +++ b/lib/Target/SparcV9/InstrSched/SchedGraph.h @@ -336,49 +336,35 @@ private: class SchedGraphSet : public NonCopyable, - private std::hash_map + private std::vector { private: const Function* method; public: - typedef std::hash_map map_base; - using map_base::iterator; - using map_base::const_iterator; + typedef std::vector 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); };