diff options
author | Jim Grosbach <grosbach@apple.com> | 2014-04-18 02:09:04 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2014-04-18 02:09:04 +0000 |
commit | bfe74b9bfbf4d601d7033ce4f74082991897a647 (patch) | |
tree | 57bff6e985cfa8fd362eab319482289338ffeb3e /utils/TableGen | |
parent | 7b771af259953ed6a9ac9e3b9dbaac639d5a45c2 (diff) | |
download | llvm-bfe74b9bfbf4d601d7033ce4f74082991897a647.tar.gz llvm-bfe74b9bfbf4d601d7033ce4f74082991897a647.tar.bz2 llvm-bfe74b9bfbf4d601d7033ce4f74082991897a647.tar.xz |
iterator access to scheduling classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206552 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r-- | utils/TableGen/CodeGenSchedule.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/TableGen/CodeGenSchedule.h b/utils/TableGen/CodeGenSchedule.h index 520855ac6d..65ac602074 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<CodeGenSchedClass>::iterator class_iterator; + typedef std::vector<CodeGenSchedClass>::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<class_iterator> classes() { + return iterator_range<class_iterator>(classes_begin(), classes_end()); + } + iterator_range<const_class_iterator> classes() const { + return iterator_range<const_class_iterator>(classes_begin(), classes_end()); + } + iterator_range<class_iterator> explicit_classes() { + return iterator_range<class_iterator>( + classes_begin(), classes_begin() + NumInstrSchedClasses); + } + iterator_range<const_class_iterator> explicit_classes() const { + return iterator_range<const_class_iterator>( + classes_begin(), classes_begin() + NumInstrSchedClasses); + } + Record *getModelOrItinDef(Record *ProcDef) const { Record *ModelDef = ProcDef->getValueAsDef("SchedModel"); Record *ItinsDef = ProcDef->getValueAsDef("ProcItin"); |