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 | af814454118605a41f37191105b8dcab19bb6a45 (patch) | |
tree | 5aad5255d05b07cab8f59ddc170bda0823847ede /llvm/utils/TableGen/CodeGenSchedule.h | |
parent | 56fd888e10794e59e13f32d551c935e06bc86852 (diff) | |
download | bcm5719-llvm-af814454118605a41f37191105b8dcab19bb6a45.tar.gz bcm5719-llvm-af814454118605a41f37191105b8dcab19bb6a45.zip |
iterator access to scheduling classes
llvm-svn: 206552
Diffstat (limited to 'llvm/utils/TableGen/CodeGenSchedule.h')
-rw-r--r-- | llvm/utils/TableGen/CodeGenSchedule.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenSchedule.h b/llvm/utils/TableGen/CodeGenSchedule.h index 520855ac6d8..65ac6020747 100644 --- a/llvm/utils/TableGen/CodeGenSchedule.h +++ b/llvm/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"); |