Thanks for pointing that out. I'll revert while I look into a better fix. Thinking I may just use one SequenceToOffsetTable for all possible alternate sets and layout after its all processed. Then the switch can just cover the index the table and the all the strings will be in one table. What do you think?<br>
<br>~Craig<br><br><div class="gmail_quote">On Fri, Sep 14, 2012 at 4:26 PM, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com" target="_blank">grosbach@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Craig,<br>
<br>
This patch doesn't handle the case where alternate register names are in use. See EmitGetRegisterName() immediately below in AsmWriterEmitter.cpp where hasAltNames==true. As a result, any target using that facility won't build. I'd thought MIPS was using it, but apparently not (or that bit isn't in the main tree yet?). Can you have a look?<br>

<br>
Thanks!<br>
  Jim<br>
<br>
<br>
On Sep 13, 2012, at 11:37 PM, Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>> wrote:<br>
<br>
> Author: ctopper<br>
> Date: Fri Sep 14 01:37:49 2012<br>
> New Revision: 163878<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=163878&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=163878&view=rev</a><br>
> Log:<br>
> Reduce size of register name index tables by using uint16_t for all in tree targets. If more than 16-bits are needed for any out of tree targets, code will detect and use uint32_t instead.<br>
><br>
> Modified:<br>
>    llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp<br>
>    llvm/trunk/utils/TableGen/SequenceToOffsetTable.h<br>
><br>
> Modified: llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp?rev=163878&r1=163877&r2=163878&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp?rev=163878&r1=163877&r2=163878&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp (original)<br>
> +++ llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp Fri Sep 14 01:37:49 2012<br>
> @@ -581,12 +581,13 @@<br>
>     StringTable.add(AsmName);<br>
>   }<br>
><br>
> -  StringTable.layout();<br>
> +  unsigned Entries = StringTable.layout();<br>
>   O << "  static const char AsmStrs" << AltName << "[] = {\n";<br>
>   StringTable.emit(O, printChar);<br>
>   O << "  };\n\n";<br>
><br>
> -  O << "  static const unsigned RegAsmOffset" << AltName << "[] = {";<br>
> +  O << "  static const uint" << ((Entries > 0xffff) ? "32" : "16")<br>
> +    << "_t RegAsmOffset" << AltName << "[] = {";<br>
>   for (unsigned i = 0, e = Registers.size(); i != e; ++i) {<br>
>     if ((i % 14) == 0)<br>
>       O << "\n    ";<br>
><br>
> Modified: llvm/trunk/utils/TableGen/SequenceToOffsetTable.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/SequenceToOffsetTable.h?rev=163878&r1=163877&r2=163878&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/SequenceToOffsetTable.h?rev=163878&r1=163877&r2=163878&view=diff</a><br>

> ==============================================================================<br>
> --- llvm/trunk/utils/TableGen/SequenceToOffsetTable.h (original)<br>
> +++ llvm/trunk/utils/TableGen/SequenceToOffsetTable.h Fri Sep 14 01:37:49 2012<br>
> @@ -82,9 +82,9 @@<br>
>   }<br>
><br>
>   bool empty() const { return Seqs.empty(); }<br>
> -<br>
> +<br>
>   /// layout - Computes the final table layout.<br>
> -  void layout() {<br>
> +  unsigned layout() {<br>
>     assert(Entries == 0 && "Can only call layout() once");<br>
>     // Lay out the table in Seqs iteration order.<br>
>     for (typename SeqMap::iterator I = Seqs.begin(), E = Seqs.end(); I != E;<br>
> @@ -93,6 +93,7 @@<br>
>       // Include space for a terminator.<br>
>       Entries += I->first.size() + 1;<br>
>     }<br>
> +    return Entries;<br>
>   }<br>
><br>
>   /// get - Returns the offset of Seq in the final table.<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>~Craig<br>