summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-04-03 00:47:23 +0000
committerAndrew Trick <atrick@apple.com>2012-04-03 00:47:23 +0000
commitf1275959b2b6ac5212e8b5547251b0303168b0b1 (patch)
tree970b7c12acc995e60dce31ad6fa628f1a71988ba /utils
parent6126a1e1894f346fae02a514a20aa56b879aeb99 (diff)
downloadllvm-f1275959b2b6ac5212e8b5547251b0303168b0b1.tar.gz
llvm-f1275959b2b6ac5212e8b5547251b0303168b0b1.tar.bz2
llvm-f1275959b2b6ac5212e8b5547251b0303168b0b1.tar.xz
Use std::set_union instead of nasty custom code.
I just noticed Jakob's examples of the proper application of std::set... routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153918 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/CodeGenRegisters.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/utils/TableGen/CodeGenRegisters.cpp b/utils/TableGen/CodeGenRegisters.cpp
index cdf20ff808..609bf540e2 100644
--- a/utils/TableGen/CodeGenRegisters.cpp
+++ b/utils/TableGen/CodeGenRegisters.cpp
@@ -91,21 +91,11 @@ const std::string &CodeGenRegister::getName() const {
// Merge two RegUnitLists maintaining the order and removing duplicates.
// Overwrites MergedRU in the process.
static void mergeRegUnits(CodeGenRegister::RegUnitList &MergedRU,
- const CodeGenRegister::RegUnitList &RRU)
-{
+ const CodeGenRegister::RegUnitList &RRU) {
CodeGenRegister::RegUnitList LRU = MergedRU;
MergedRU.clear();
- for (CodeGenRegister::RegUnitList::const_iterator
- RI = RRU.begin(), RE = RRU.end(), LI = LRU.begin(), LE = LRU.end();
- RI != RE || LI != LE;) {
-
- CodeGenRegister::RegUnitList::const_iterator &NextI =
- (RI != RE && (LI == LE || *RI < *LI)) ? RI : LI;
-
- if (MergedRU.empty() || *NextI != MergedRU.back())
- MergedRU.push_back(*NextI);
- ++NextI;
- }
+ std::set_union(LRU.begin(), LRU.end(), RRU.begin(), RRU.end(),
+ std::inserter(MergedRU, MergedRU.begin()));
}
const CodeGenRegister::SubRegMap &