<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 17, 2015 at 9:37 AM, Craig Topper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Sat Oct 17 11:37:11 2015<br>
New Revision: 250614<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=250614&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=250614&view=rev</a><br>
Log:<br>
Use std::begin/end and std::is_sorted to simplify some code. NFC<br>
<br>
Modified:<br>
    llvm/trunk/lib/MC/MCSubtargetInfo.cpp<br>
    llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp<br>
<br>
Modified: llvm/trunk/lib/MC/MCSubtargetInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSubtargetInfo.cpp?rev=250614&r1=250613&r2=250614&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSubtargetInfo.cpp?rev=250614&r1=250613&r2=250614&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCSubtargetInfo.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCSubtargetInfo.cpp Sat Oct 17 11:37:11 2015<br>
@@ -77,13 +77,12 @@ FeatureBitset MCSubtargetInfo::ApplyFeat<br>
 const MCSchedModel &MCSubtargetInfo::getSchedModelForCPU(StringRef CPU) const {<br>
   assert(ProcSchedModels && "Processor machine model not available!");<br>
<br>
-  unsigned NumProcs = ProcDesc.size();<br>
-#ifndef NDEBUG<br>
-  for (size_t i = 1; i < NumProcs; i++) {<br>
-    assert(strcmp(ProcSchedModels[i - 1].Key, ProcSchedModels[i].Key) < 0 &&<br>
-           "Processor machine model table is not sorted");<br>
-  }<br>
-#endif<br>
+  size_t NumProcs = ProcDesc.size();<br>
+  assert(std::is_sorted(ProcSchedModels, ProcSchedModels+NumProcs,<br>
+                    [](const SubtargetInfoKV &LHS, const SubtargetInfoKV &RHS) {<br>
+                      return strcmp(LHS.Key, RHS.Key) < 0;<br>
+                    }) &&<br>
+         "Processor machine model table is not sorted");<br>
<br>
   // Find entry<br>
   const SubtargetInfoKV *Found =<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp?rev=250614&r1=250613&r2=250614&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp?rev=250614&r1=250613&r2=250614&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/ARMExpandPseudoInsts.cpp Sat Oct 17 11:37:11 2015<br>
@@ -330,22 +330,19 @@ static const NEONLdStTableEntry NEONLdSt<br>
 /// LookupNEONLdSt - Search the NEONLdStTable for information about a NEON<br>
 /// load or store pseudo instruction.<br>
 static const NEONLdStTableEntry *LookupNEONLdSt(unsigned Opcode) {<br>
-  const unsigned NumEntries = array_lengthof(NEONLdStTable);<br>
-<br>
 #ifndef NDEBUG<br>
   // Make sure the table is sorted.<br>
   static bool TableChecked = false;<br>
   if (!TableChecked) {<br>
-    for (unsigned i = 0; i != NumEntries-1; ++i)<br>
-      assert(NEONLdStTable[i] < NEONLdStTable[i+1] &&<br>
-             "NEONLdStTable is not sorted!");<br>
+    assert(std::is_sorted(std::begin(NEONLdStTable), std::end(NEONLdStTable)) &&<br>
+           "NEONLdStTable is not sorted!");<br>
     TableChecked = true;<br>
   }<br>
 #endif<br>
<br>
-  const NEONLdStTableEntry *I =<br>
-    std::lower_bound(NEONLdStTable, NEONLdStTable + NumEntries, Opcode);<br>
-  if (I != NEONLdStTable + NumEntries && I->PseudoOpc == Opcode)<br>
+  const auto I = std::lower_bound(std::begin(NEONLdStTable),<br></blockquote><div><br></div><div>The 'const' seems a bit unnecessary here (we don't usually use top level const on locals) - you could add the '*' back in, but it makes sense to me to treat it like an opaque iterator, rather than being explicit about the fact that it's a real pointer, so I'd be happy with just "auto I".</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+                                  std::end(NEONLdStTable), Opcode);<br>
+  if (I != std::end(NEONLdStTable) && I->PseudoOpc == Opcode)<br>
     return I;<br>
   return nullptr;<br>
 }<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>