<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, May 29, 2017 at 2:49 PM Craig Topper via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Mon May 29 16:49:34 2017<br>
New Revision: 304177<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=304177&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=304177&view=rev</a><br>
Log:<br>
[TableGen] Introduce DagInit::getArgs that returns an ArrayRef. Use it to fix 80 column violations in arg_begin/arg_end. Remove DagInit::args and use getArgs instead. NFC<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/TableGen/Record.h<br>
    llvm/trunk/lib/TableGen/Record.cpp<br>
    llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/TableGen/Record.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/TableGen/Record.h?rev=304177&r1=304176&r2=304177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/TableGen/Record.h?rev=304177&r1=304176&r2=304177&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/TableGen/Record.h (original)<br>
+++ llvm/trunk/include/llvm/TableGen/Record.h Mon May 29 16:49:34 2017<br>
@@ -1189,6 +1189,9 @@ public:<br>
     return Init ? Init->getValue() : StringRef();<br>
   }<br>
<br>
+  ArrayRef<Init *> getArgs() const {<br>
+    return makeArrayRef(getTrailingObjects<Init *>(), NumArgs);<br></blockquote><div><br></div><div>Wouldn't this be an aliasing violation? Init* const * can't point to a StringInit*, can it?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+  }<br>
   ArrayRef<StringInit *> getArgNames() const {<br>
     return makeArrayRef(getTrailingObjects<StringInit *>(), NumArgNames);<br>
   }<br>
@@ -1200,19 +1203,16 @@ public:<br>
   typedef SmallVectorImpl<Init*>::const_iterator       const_arg_iterator;<br>
   typedef SmallVectorImpl<StringInit*>::const_iterator const_name_iterator;<br>
<br>
-  inline const_arg_iterator  arg_begin() const { return getTrailingObjects<Init *>(); }<br>
-  inline const_arg_iterator  arg_end  () const { return arg_begin() + NumArgs;   }<br>
-  inline iterator_range<const_arg_iterator> args() const {<br>
-    return llvm::make_range(arg_begin(), arg_end());<br>
-  }<br>
+  inline const_arg_iterator  arg_begin() const { return getArgs().begin(); }<br>
+  inline const_arg_iterator  arg_end  () const { return getArgs().end(); }<br>
<br>
-  inline size_t              arg_size () const { return NumArgs;  }<br>
+  inline size_t              arg_size () const { return NumArgs; }<br>
   inline bool                arg_empty() const { return NumArgs == 0; }<br>
<br>
-  inline const_name_iterator name_begin() const { return getTrailingObjects<StringInit *>(); }<br>
-  inline const_name_iterator name_end  () const { return name_begin() + NumArgNames;   }<br>
+  inline const_name_iterator name_begin() const { return getArgNames().begin();}<br>
+  inline const_name_iterator name_end  () const { return getArgNames().end(); }<br>
<br>
-  inline size_t              name_size () const { return NumArgNames;  }<br>
+  inline size_t              name_size () const { return NumArgNames; }<br>
   inline bool                name_empty() const { return NumArgNames == 0; }<br>
<br>
   Init *getBit(unsigned Bit) const override {<br>
<br>
Modified: llvm/trunk/lib/TableGen/Record.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/TableGen/Record.cpp?rev=304177&r1=304176&r2=304177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/TableGen/Record.cpp?rev=304177&r1=304176&r2=304177&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/TableGen/Record.cpp (original)<br>
+++ llvm/trunk/lib/TableGen/Record.cpp Mon May 29 16:49:34 2017<br>
@@ -1540,7 +1540,7 @@ Init *DagInit::resolveReferences(Record<br>
   SmallVector<Init*, 8> NewArgs;<br>
   NewArgs.reserve(arg_size());<br>
   bool ArgsChanged = false;<br>
-  for (const Init *Arg : args()) {<br>
+  for (const Init *Arg : getArgs()) {<br>
     Init *NewArg = Arg->resolveReferences(R, RV);<br>
     NewArgs.push_back(NewArg);<br>
     ArgsChanged |= NewArg != Arg;<br>
<br>
Modified: llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp?rev=304177&r1=304176&r2=304177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp?rev=304177&r1=304176&r2=304177&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp (original)<br>
+++ llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp Mon May 29 16:49:34 2017<br>
@@ -1602,7 +1602,7 @@ Expected<BuildMIAction &> GlobalISelEmit<br>
<br>
 Error GlobalISelEmitter::importDefaultOperandRenderers(<br>
     BuildMIAction &DstMIBuilder, DagInit *DefaultOps) const {<br>
-  for (const auto *DefaultOp : DefaultOps->args()) {<br>
+  for (const auto *DefaultOp : DefaultOps->getArgs()) {<br>
     // Look through ValueType operators.<br>
     if (const DagInit *DefaultDagOp = dyn_cast<DagInit>(DefaultOp)) {<br>
       if (const DefInit *DefaultDagOperator =<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">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></div>