summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegisterPressure.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-02-16 17:06:38 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-02-16 17:06:38 +0000
commitae526d106aa1f6484b28115d76f8ffab85979ad9 (patch)
treea96d321c39674c2fbb113352fa1234d38c77f8c4 /llvm/lib/CodeGen/RegisterPressure.cpp
parent981de9a9daf07451d7a30e1aa9213fa9b1d3412a (diff)
downloadbcm5719-llvm-ae526d106aa1f6484b28115d76f8ffab85979ad9.tar.gz
bcm5719-llvm-ae526d106aa1f6484b28115d76f8ffab85979ad9.zip
Replace erase loop with std::remove_if.
This avoids unnecessary copies. No functionality change. llvm-svn: 175367
Diffstat (limited to 'llvm/lib/CodeGen/RegisterPressure.cpp')
-rw-r--r--llvm/lib/CodeGen/RegisterPressure.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/RegisterPressure.cpp b/llvm/lib/CodeGen/RegisterPressure.cpp
index 62e95aadc00..97f22e1049f 100644
--- a/llvm/lib/CodeGen/RegisterPressure.cpp
+++ b/llvm/lib/CodeGen/RegisterPressure.cpp
@@ -357,15 +357,14 @@ protected:
/// Collect physical and virtual register operands.
static void collectOperands(const MachineInstr *MI,
RegisterOperands &RegOpers) {
- for(ConstMIBundleOperands OperI(MI); OperI.isValid(); ++OperI)
+ for (ConstMIBundleOperands OperI(MI); OperI.isValid(); ++OperI)
RegOpers.collect(*OperI);
// Remove redundant physreg dead defs.
- for (unsigned i = RegOpers.DeadDefs.size(); i > 0; --i) {
- unsigned Reg = RegOpers.DeadDefs[i-1];
- if (containsReg(RegOpers.Defs, Reg))
- RegOpers.DeadDefs.erase(&RegOpers.DeadDefs[i-1]);
- }
+ SmallVectorImpl<unsigned>::iterator I =
+ std::remove_if(RegOpers.DeadDefs.begin(), RegOpers.DeadDefs.end(),
+ std::bind1st(std::ptr_fun(containsReg), RegOpers.Defs));
+ RegOpers.DeadDefs.erase(I, RegOpers.DeadDefs.end());
}
/// Force liveness of registers.
OpenPOWER on IntegriCloud