[llvm-commits] [llvm] r133940 - in /llvm/trunk: include/llvm/Target/ utils/TableGen/

Francois Pichet pichet2000 at gmail.com
Wed Jun 29 04:29:03 PDT 2011


On Wed, Jun 29, 2011 at 4:56 AM, Francois Pichet <pichet2000 at gmail.com> wrote:
> On Mon, Jun 27, 2011 at 5:06 PM, Owen Anderson <resistor at mac.com> wrote:
>> Author: resistor
>> Date: Mon Jun 27 16:06:21 2011
>> New Revision: 133940
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=133940&view=rev
>> Log:
>> Add support for alternative register names, useful for instructions whose operands are logically equivalent to existing registers, but happen to be printed specially.  For example, an instruciton that prints d0[0] instead of s0.
>> Patch by Jim Grosbach.
>>
>> Modified:
>>    llvm/trunk/include/llvm/Target/Target.td
>>    llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp
>>    llvm/trunk/utils/TableGen/AsmWriterEmitter.cpp
>>    llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp
>>    llvm/trunk/utils/TableGen/CodeGenInstruction.cpp
>>    llvm/trunk/utils/TableGen/CodeGenTarget.cpp
>>    llvm/trunk/utils/TableGen/CodeGenTarget.h
>>    llvm/trunk/utils/TableGen/DAGISelMatcherGen.cpp
>>    llvm/trunk/utils/TableGen/FastISelEmitter.cpp
>>    llvm/trunk/utils/TableGen/FixedLenDecoderEmitter.cpp
>>    llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp
>>    llvm/trunk/utils/TableGen/Record.cpp
>>    llvm/trunk/utils/TableGen/Record.h
>>    llvm/trunk/utils/TableGen/RegisterInfoEmitter.cpp
>>
>
> I am not sure if this commit is to blame but it seems to be the most probable.
> There is a huge regression on MSVC since last Monday with over 300
> failing tests.
>
> Seems like X86GenAsmWriter.inc is generated with some invalid data on MSVC.
> I copied X86GenAsmWriter.inc from my Mac to my PC and the failing test
> went from 300+ to only 4.
>
> So I did a diff between X86GenAsmWriter.inc (PC and Mac) and I saw
> some difference in X86ATTInstPrinter::getRegisterName()
>

Ok see r134064 for the fix. The problem was a StringRef pointing to a
temporary that was destroyed.
As in:
    std::string AsmName;
    AsmName = Reg.TheDef->getValueAsString("AsmName");

Thanks to chapuni who helped to find this problem with me on the IRC channel.
Now we get 100% pass rate for the llvm tests on MSVC again.




More information about the llvm-commits mailing list