diff options
Diffstat (limited to 'lib/CodeGen/InstrSched/InstrScheduling.cpp')
-rw-r--r-- | lib/CodeGen/InstrSched/InstrScheduling.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/CodeGen/InstrSched/InstrScheduling.cpp b/lib/CodeGen/InstrSched/InstrScheduling.cpp index 2a2ef27a29..a50439de7f 100644 --- a/lib/CodeGen/InstrSched/InstrScheduling.cpp +++ b/lib/CodeGen/InstrSched/InstrScheduling.cpp @@ -111,10 +111,7 @@ public: inline bool operator!=(const _Self& x) const { return !operator==(x); } - inline _NodeType* operator*() const { - assert(cycleNum < S.groups.size()); - return (*S.groups[cycleNum])[slotNum]; - } + inline _NodeType* operator*() const; inline _NodeType* operator->() const { return operator*(); } _Self& operator++(); // Preincrement @@ -201,11 +198,17 @@ public: // accessor functions to query chosen schedule } private: - friend class iterator; - friend class const_iterator; + friend class ScheduleIterator<SchedGraphNode>; + friend class ScheduleIterator<const SchedGraphNode>; /*ctor*/ InstrSchedule (); // Disable: DO NOT IMPLEMENT. }; +template<class NodeType> +inline NodeType *ScheduleIterator<NodeType>::operator*() const { + assert(cycleNum < S.groups.size()); + return (*S.groups[cycleNum])[slotNum]; +} + /*ctor*/ InstrSchedule::InstrSchedule(unsigned int _nslots, unsigned int _numNodes) |