From bfe74b9bfbf4d601d7033ce4f74082991897a647 Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Fri, 18 Apr 2014 02:09:04 +0000 Subject: [PATCH] iterator access to scheduling classes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206552 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/CodeGenSchedule.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/utils/TableGen/CodeGenSchedule.h b/utils/TableGen/CodeGenSchedule.h index 520855ac6d8..65ac6020747 100644 --- a/utils/TableGen/CodeGenSchedule.h +++ b/utils/TableGen/CodeGenSchedule.h @@ -248,6 +248,28 @@ class CodeGenSchedModels { public: CodeGenSchedModels(RecordKeeper& RK, const CodeGenTarget &TGT); + // iterator access to the scheduling classes. + typedef std::vector::iterator class_iterator; + typedef std::vector::const_iterator const_class_iterator; + class_iterator classes_begin() { return SchedClasses.begin(); } + const_class_iterator classes_begin() const { return SchedClasses.begin(); } + class_iterator classes_end() { return SchedClasses.end(); } + const_class_iterator classes_end() const { return SchedClasses.end(); } + iterator_range classes() { + return iterator_range(classes_begin(), classes_end()); + } + iterator_range classes() const { + return iterator_range(classes_begin(), classes_end()); + } + iterator_range explicit_classes() { + return iterator_range( + classes_begin(), classes_begin() + NumInstrSchedClasses); + } + iterator_range explicit_classes() const { + return iterator_range( + classes_begin(), classes_begin() + NumInstrSchedClasses); + } + Record *getModelOrItinDef(Record *ProcDef) const { Record *ModelDef = ProcDef->getValueAsDef("SchedModel"); Record *ItinsDef = ProcDef->getValueAsDef("ProcItin"); -- 2.34.1