[llvm-commits] [llvm] r152105 - /llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
Jakob Stoklund Olesen
stoklund at 2pi.dk
Tue Mar 6 07:57:01 PST 2012
On Mar 5, 2012, at 10:04 PM, Craig Topper wrote:
> Author: ctopper
> Date: Tue Mar 6 00:04:39 2012
> New Revision: 152105
>
> URL: http://llvm.org/viewvc/llvm-project?rev=152105&view=rev
> Log:
> Use uint16_t to store indices into string table since C++ only allows 64K string literals so the index into the big string can never be larger than that.
>
> Modified:
> llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
>
> Modified: llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp?rev=152105&r1=152104&r2=152105&view=diff
> ==============================================================================
> --- llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp Tue Mar 6 00:04:39 2012
> @@ -463,7 +463,7 @@
> emitRegisterNameString(raw_ostream &O, StringRef AltName,
> const std::vector<CodeGenRegister*> &Registers) {
> StringToOffsetTable StringTable;
> - O << " static const unsigned RegAsmOffset" << AltName << "[] = {\n ";
> + O << " static const uint16_t RegAsmOffset" << AltName << "[] = {\n ";
> for (unsigned i = 0, e = Registers.size(); i != e; ++i) {
> const CodeGenRegister &Reg = *Registers[i];
How does this work with 64k registers?
You are also missing overflow checking.
/jakob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120306/3b15032a/attachment.html>
More information about the llvm-commits
mailing list