[llvm-commits] [llvm] r78379 - in /llvm/trunk: lib/Target/X86/AsmParser/X86AsmParser.cpp test/MC/AsmParser/labels.s test/MC/AsmParser/x86_instructions.s

Chris Lattner clattner at apple.com
Fri Aug 7 09:50:33 PDT 2009


On Aug 7, 2009, at 1:45 AM, Daniel Dunbar wrote:

> Author: ddunbar
> Date: Fri Aug  7 03:45:03 2009
> New Revision: 78379
>
> URL: http://llvm.org/viewvc/llvm-project?rev=78379&view=rev
> Log:
> Disable X86 AsmMatcher for now, it is causing gcc-4.0 to run out of  
> memory on
> i386-apple-darwin9. This presumably will get fixed once the  
> generated code
> improves.

I'm sure you have a ton of ideas :), but it looks pretty straight- 
forward to break down common conditions into a tree.  Turning the top  
level into a switch on the # operands also looks pretty obvious :).

The generated code looks great for a first cut though!  Maybe it  
should include a comment about the instruction being matched?

Is the code intended to handle regclass constraints yet?  For example,  
in:

   if (Operands.size() == 3 &&
       Operands[0].isToken("mulss") &&
       Operands[1].isReg() &&
       Operands[2].isReg())
     return ConvertReg1ImpReg1(Inst, X86::MULSSrr, Operands[2],  
Operands[1]);

I don't see how it avoids matching things like "mulss %gs, %eax".  Do  
you intend the matcher to reject this in the future?

-Chris



More information about the llvm-commits mailing list