- Aug 17, 2009
-
-
David Goodwin authored
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. llvm-svn: 79247
-
Chris Lattner authored
just remove the argument and replace it with 1. llvm-svn: 79246
-
- Aug 13, 2009
-
-
Owen Anderson authored
llvm-svn: 78948
-
Bob Wilson authored
There have been a few times where I've wanted this but ended up leaving the operand type unconstrained. It is easy to add this now and should help catch errors in the future. llvm-svn: 78849
-
Dan Gohman authored
llvm-svn: 78848
-
- Aug 12, 2009
-
-
David Goodwin authored
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. llvm-svn: 78827
-
Owen Anderson authored
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
-
Daniel Dunbar authored
We now match all of 403.gcc (as emitted by clang). :) llvm-svn: 78750
-
Daniel Dunbar authored
- Used to mark fake instructions which don't correspond to an actual machine instruction (or are duplicates of a real instruction). This is to be used for "special cases" in the .td files, which should be ignored by things like the assembler and disassembler. We still need a good solution to handle pervasive duplication, like with the Int_ instructions. - Set the bit on fake "mov 0" style instructions, which allows turning an assembler matcher warning into a hard error. - -2 FIXMEs. llvm-svn: 78731
-
- Aug 11, 2009
-
-
Daniel Dunbar authored
used to strip hard coded comments out of .td assembly strings. llvm-svn: 78716
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Daniel Dunbar authored
related. llvm-svn: 78706
-
Bob Wilson authored
llvm-svn: 78643
-
Daniel Dunbar authored
- This drops us to 123 ambiguous instructions (previously ~500) on X86. llvm-svn: 78636
-
Bob Wilson authored
arguments that are vectors of any size and element type. llvm-svn: 78631
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 10, 2009
-
-
Daniel Dunbar authored
on target specific operands for testing class membership and converting to MCInst operands. llvm-svn: 78597
-
Daniel Dunbar authored
explicit parser match classes. llvm-svn: 78588
-
Daniel Dunbar authored
structure. llvm-svn: 78581
-
Daniel Dunbar authored
instruction operands. llvm-svn: 78565
-
- Aug 09, 2009
-
-
Daniel Dunbar authored
llvm-svn: 78533
-
Daniel Dunbar authored
make it easier to see interesting ambiguities. - Also, check that user doesn't try to redefine the super class. This is a wart in the current design, in that assembler match classes aren't explicitly declared somewhere (so there isn't a unique place to declare the super class). This should probably be fixed. llvm-svn: 78532
-
Daniel Dunbar authored
- We can now discriminate SUB32ri8 from SUB32ri, for example. llvm-svn: 78530
-
Daniel Dunbar authored
- We want the ordering operation to be simple, since we run it on every match. The old ordering is also not a strict weak ordering when there are ambiguities, which makes MSVC unhappy. - While we are at it, detect all ambiguities instead of just the adjacent ones. There are actually 655, for X86. llvm-svn: 78526
-
Daniel Dunbar authored
-2 FIXMEs. llvm-svn: 78523
-
Daniel Dunbar authored
ambiguities. - Currently there are 483 ambiguities to resolve. :) llvm-svn: 78522
-
Chris Lattner authored
llvm-svn: 78520
-
Daniel Dunbar authored
llvm-svn: 78518
-
Daniel Dunbar authored
- Track whether we need to insert an explicit 'break'. - Invert conditional when matching a single prefix to reduce nesting/bracing/breaking. - wc -l of X86GenAsmMatcher.inc decreased by 10%. :) llvm-svn: 78513
-
- Aug 08, 2009
-
-
Daniel Dunbar authored
Also, redefined MatchRegisterName to just return the register value or a sentinel, to simplify the generated code. llvm-svn: 78504
-
Chris Lattner authored
much more efficient way than a sequence of if's. Switch MatchRegisterName to use it. It would be nice if someone could factor this out to a shared place in tblgen :) llvm-svn: 78492
-
Chris Lattner authored
llvm-svn: 78487
-
Chris Lattner authored
llvm-svn: 78486
-
Benjamin Kramer authored
llvm-svn: 78462
-
Daniel Dunbar authored
- This doesn't actually improve the algorithm (its still linear), but the generated (match) code is now fairly compact and table driven. Still need a generic string matcher. - The table still needs to be compressed, this is quite simple to do and should shrink it to under 16k. - This also simplifies and restructures the code to make the match classes more explicit, in anticipation of resolving ambiguities. llvm-svn: 78461
-
Daniel Dunbar authored
so that terminal states are as simple as possible. - If we were willing to assume that the order that operands get inserted in the MCInst is fixed we could actually dispose with this altogether, although it might be nice to have the flexibility to change it later. llvm-svn: 78458
-
Chris Lattner authored
error condition get trapped with an assert. llvm-svn: 78449
-
Chris Lattner authored
llvm-svn: 78444
-
Benjamin Kramer authored
llvm-svn: 78431
-
Chris Lattner authored
driven by TAI to being static, driven by tblgen. This means that a target doesn't get impacted by this stuff at all if it doesn't opt into it. llvm-svn: 78427
-