[llvm] r253832 - [TableGen] Use std::any_of and std::find instead of manual loops. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 22 12:42:23 PST 2015
Thanks for the cleanups.
On Sun, Nov 22, 2015 at 12:14 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>
> On Sun, Nov 22, 2015 at 11:27 AM, Craig Topper via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: ctopper
>> Date: Sun Nov 22 13:27:02 2015
>> New Revision: 253832
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=253832&view=rev
>> Log:
>> [TableGen] Use std::any_of and std::find instead of manual loops. NFC
>>
>> Modified:
>> llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp
>>
>> Modified: llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp?rev=253832&r1=253831&r2=253832&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp (original)
>> +++ llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp Sun Nov 22 13:27:02
>> 2015
>> @@ -107,36 +107,36 @@ bool EEVT::TypeSet::FillWithPossibleType
>> /// hasIntegerTypes - Return true if this TypeSet contains iAny or an
>> /// integer value type.
>> bool EEVT::TypeSet::hasIntegerTypes() const {
>> - for (unsigned i = 0, e = TypeVec.size(); i != e; ++i)
>> - if (isInteger(TypeVec[i]))
>> - return true;
>> - return false;
>> + return std::any_of(TypeVec.begin(), TypeVec.end(),
>> + [](MVT::SimpleValueType VT) {
>> + return isInteger(VT);
>> + });
>>
>
> Simplified these ^ a bit further by just passing isFoo directly to
> std::any_of in r253833.
>
>
>> }
>>
>> /// hasFloatingPointTypes - Return true if this TypeSet contains an fAny
>> or
>> /// a floating point value type.
>> bool EEVT::TypeSet::hasFloatingPointTypes() const {
>> - for (unsigned i = 0, e = TypeVec.size(); i != e; ++i)
>> - if (isFloatingPoint(TypeVec[i]))
>> - return true;
>> - return false;
>> + return std::any_of(TypeVec.begin(), TypeVec.end(),
>> + [](MVT::SimpleValueType VT) {
>> + return isFloatingPoint(VT);
>> + });
>> }
>>
>> /// hasScalarTypes - Return true if this TypeSet contains a scalar value
>> type.
>> bool EEVT::TypeSet::hasScalarTypes() const {
>> - for (unsigned i = 0, e = TypeVec.size(); i != e; ++i)
>> - if (isScalar(TypeVec[i]))
>> - return true;
>> - return false;
>> + return std::any_of(TypeVec.begin(), TypeVec.end(),
>> + [](MVT::SimpleValueType VT) {
>> + return isScalar(VT);
>> + });
>> }
>>
>> /// hasVectorTypes - Return true if this TypeSet contains a vAny or a
>> vector
>> /// value type.
>> bool EEVT::TypeSet::hasVectorTypes() const {
>> - for (unsigned i = 0, e = TypeVec.size(); i != e; ++i)
>> - if (isVector(TypeVec[i]))
>> - return true;
>> - return false;
>> + return std::any_of(TypeVec.begin(), TypeVec.end(),
>> + [](MVT::SimpleValueType VT) {
>> + return isVector(VT);
>> + });
>> }
>>
>>
>> @@ -220,14 +220,10 @@ bool EEVT::TypeSet::MergeInTypeInfo(cons
>> TypeSet InputSet(*this);
>>
>> for (unsigned i = 0; i != TypeVec.size(); ++i) {
>> - bool InInVT = false;
>> - for (unsigned j = 0, e = InVT.TypeVec.size(); j != e; ++j)
>> - if (TypeVec[i] == InVT.TypeVec[j]) {
>> - InInVT = true;
>> - break;
>> - }
>> + if (std::find(InVT.TypeVec.begin(), InVT.TypeVec.end(), TypeVec[i])
>> !=
>> + InVT.TypeVec.end())
>> + continue;
>>
>> - if (InInVT) continue;
>> TypeVec.erase(TypeVec.begin()+i--);
>> MadeChange = true;
>> }
>> @@ -3554,19 +3550,14 @@ static void CombineChildVariants(TreePat
>> if (!R->canPatternMatch(ErrString, CDP)) {
>> delete R;
>> } else {
>> - bool AlreadyExists = false;
>> -
>> // Scan to see if this pattern has already been emitted. We can
>> get
>> // duplication due to things like commuting:
>> // (and GPRC:$a, GPRC:$b) -> (and GPRC:$b, GPRC:$a)
>> // which are the same pattern. Ignore the dups.
>> - for (unsigned i = 0, e = OutVariants.size(); i != e; ++i)
>> - if (R->isIsomorphicTo(OutVariants[i], DepVars)) {
>> - AlreadyExists = true;
>> - break;
>> - }
>> -
>> - if (AlreadyExists)
>> + if (std::any_of(OutVariants.begin(), OutVariants.end(),
>> + [=](TreePatternNode *Variant) {
>> + return R->isIsomorphicTo(Variant, DepVars);
>> + }))
>>
>
> & simplified some code around here further in r253834
>
>
>> delete R;
>> else
>> OutVariants.push_back(R);
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
--
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151122/a9eec3c1/attachment.html>
More information about the llvm-commits
mailing list