aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/SubtargetEmitter.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-04-23 23:45:11 +0000
committerAndrew Trick <atrick@apple.com>2013-04-23 23:45:11 +0000
commit6aa7a8796bf7c2a4b68f4e30a33f871b411626ea (patch)
treea5d77fdee3ee35bcb1cc0030b3f5620cb4e01fdd /llvm/utils/TableGen/SubtargetEmitter.cpp
parentfa15b1415a8a149b4f3506755c1d1adc3d9f4fe9 (diff)
downloadllvm-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.cpp12
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);