summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/Record.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-071-1/+1
| | | | llvm-svn: 149967
* Implement String Cast from IntegerDavid Greene2012-01-301-0/+5
| | | | | | Allow casts from integer to string. llvm-svn: 149273
* Removing unused default switch cases in switches over enums that already ↵David Blaikie2012-01-161-3/+0
| | | | | | | | account for all enumeration values explicitly. (This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them) llvm-svn: 148262
* Delete CodeInit and CodeRecTy from TableGen.Jakob Stoklund Olesen2012-01-131-30/+0
| | | | | | | The code type was always identical to a string anyway. Now it is simply a synonym. The code literal syntax [{...}] is still valid. llvm-svn: 148092
* Use uniqued StringInit pointers for lookups.Jakob Stoklund Olesen2012-01-131-20/+8
| | | | | | | This avoids a gazillion StringMap and dynamic_cast calls, making TableGen run 3x faster. llvm-svn: 148091
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+10
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* ARM vldm and vstm VFP instructions can take a data type suffix.Jim Grosbach2011-11-111-1/+1
| | | | | | | | | | | | It's ignored by the assembler when present, but is legal syntax. Other instructions have something similar, but for some mnemonics it's only sometimes not significant, so this quick check in the parser will need refactored into something more robust soon-ish. This gets some basics working in the meantime. Partial for rdar://10435264 llvm-svn: 144422
* Add NAME MemberDavid Greene2011-10-191-0/+5
| | | | | | | | Add a Value named "NAME" to each Record. This will be set to the def or defm name when instantiating multiclasses. This will replace the #NAME# processing hack once paste functionality is in place. llvm-svn: 142518
* Resolve Record NamesDavid Greene2011-10-191-0/+6
| | | | | | | When resolving Record values, be sure to update the Record name as it may contain references to the value. llvm-svn: 142511
* Allow Names Changes on Unregistered RecordsDavid Greene2011-10-191-4/+3
| | | | | | | | | | | Add Record names to be changed even on Records that aren't yet registered. We need to be able to do this for paste functionality because we do not want to register def names before they are unique and that can only happen once all paste operations are done. This change lets us update Record names formed by paste operations and register the result later. llvm-svn: 142510
* Fix Name AccessDavid Greene2011-10-191-1/+1
| | | | | | Ask for the Record name as a string explicitly to avoid a possible assert. llvm-svn: 142506
* Fix Name AccessDavid Greene2011-10-191-1/+1
| | | | | | | Ask for the Record name as a string explicitly to avoid a possible assert. llvm-svn: 142505
* Fix Name AccessDavid Greene2011-10-191-1/+1
| | | | | | | Ask for the record name as a string explicitly to avoid a potential assert. llvm-svn: 142504
* Add Record InitDavid Greene2011-10-191-0/+4
| | | | | | Add an init function to be shared among Record constructors. llvm-svn: 142501
* Make Template Arg Names InitsDavid Greene2011-10-191-3/+6
| | | | | | | | Allow template arg names to be Inits. This is further work to implement paste as it allows template names to participate in paste operations. llvm-svn: 142500
* Add Utility to Scope NamesDavid Greene2011-10-191-0/+36
| | | | | | | | Add a couple of utility functions to take a variable name and qualify it with the namespace of the enclosing class and/or multiclass. This is inpreparation for making template arg names first-class Inits. llvm-svn: 142498
* Make VarInit Name an InitDavid Greene2011-10-191-1/+13
| | | | | | | | Make the VarInit name an Init itself. We need this to implement paste functionality so we can reference variables whose names are not yet completely resolved. llvm-svn: 142497
* Add Value AccessorsDavid Greene2011-10-191-0/+12
| | | | | | | | Add accessors to get Record values by Init name. This lets us look up Record values whose names are not yet fully resolved. More work toward paste. llvm-svn: 142496
* Fix List-of-List ProcessingDavid Greene2011-10-061-1/+3
| | | | | | | | | Fix VarListElementInit::resolveListElementReference to return a partially resolved VarListElementInint in the case where full resolution is not possible. This allows TableGen to make forward progress resolving certain complex list expressions. llvm-svn: 141315
* Allow Operator ArgumentsDavid Greene2011-10-041-5/+13
| | | | | | | | | | | | | | | When resolving an operator list element reference, resolve all operator operands and try to fold the operator first. This allows the operator to collapse to a list which may then be indexed. Before, it was not possible to do this: class D<int a, int b> { ... } class C<list<int> A> : D<A[0], A[1]>; class B<list<int> b> : C<!foreach(...,b)>; Now it is. llvm-svn: 141101
* Move TableGen's parser and entry point into a libraryPeter Collingbourne2011-10-011-0/+2009
This is the first step towards splitting LLVM and Clang's tblgen executables. llvm-svn: 140951
OpenPOWER on IntegriCloud