diff options
author | Andrew Trick <atrick@apple.com> | 2013-04-23 23:45:11 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2013-04-23 23:45:11 +0000 |
commit | 6aa7a8796bf7c2a4b68f4e30a33f871b411626ea (patch) | |
tree | a5d77fdee3ee35bcb1cc0030b3f5620cb4e01fdd /llvm/utils/TableGen/SubtargetEmitter.cpp | |
parent | fa15b1415a8a149b4f3506755c1d1adc3d9f4fe9 (diff) | |
download | llvm-6aa7a8796bf7c2a4b68f4e30a33f871b411626ea.zip llvm-6aa7a8796bf7c2a4b68f4e30a33f871b411626ea.tar.gz llvm-6aa7a8796bf7c2a4b68f4e30a33f871b411626ea.tar.bz2 |
Machine model: rewrite a tablegen loop to avoid comparing record pointers.
llvm-svn: 180160
Diffstat (limited to 'llvm/utils/TableGen/SubtargetEmitter.cpp')
-rw-r--r-- | llvm/utils/TableGen/SubtargetEmitter.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/llvm/utils/TableGen/SubtargetEmitter.cpp b/llvm/utils/TableGen/SubtargetEmitter.cpp index 98892e1..0d36c4f 100644 --- a/llvm/utils/TableGen/SubtargetEmitter.cpp +++ b/llvm/utils/TableGen/SubtargetEmitter.cpp @@ -797,7 +797,6 @@ void SubtargetEmitter::ExpandProcResources(RecVec &PRVec, RecVec SubResources; if (PRVec[i]->isSubClassOf("ProcResGroup")) { SubResources = PRVec[i]->getValueAsListOfDefs("Resources"); - std::sort(SubResources.begin(), SubResources.end(), LessRecord()); } else { SubResources.push_back(PRVec[i]); @@ -808,15 +807,12 @@ void SubtargetEmitter::ExpandProcResources(RecVec &PRVec, if (*PRI == PRVec[i] || !(*PRI)->isSubClassOf("ProcResGroup")) continue; RecVec SuperResources = (*PRI)->getValueAsListOfDefs("Resources"); - std::sort(SuperResources.begin(), SuperResources.end(), LessRecord()); RecIter SubI = SubResources.begin(), SubE = SubResources.end(); - RecIter SuperI = SuperResources.begin(), SuperE = SuperResources.end(); - for ( ; SubI != SubE && SuperI != SuperE; ++SuperI) { - if (*SubI < *SuperI) + for( ; SubI != SubE; ++SubI) { + if (std::find(SuperResources.begin(), SuperResources.end(), *SubI) + == SuperResources.end()) { break; - else if (*SuperI < *SubI) - continue; - ++SubI; + } } if (SubI == SubE) { PRVec.push_back(*PRI); |