| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Patch by Michael Liao!
llvm-svn: 152232
|
| |
|
|
|
|
|
|
| |
hashing infrastructure. I wonder why we don't just use StringMap here,
and I may revisit the issue if I have time, but for now I'm just trying
to consolidate.
llvm-svn: 152023
|
| |
|
|
| |
llvm-svn: 149967
|
| |
|
|
|
|
| |
Allow casts from integer to string.
llvm-svn: 149273
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
This avoids a gazillion StringMap and dynamic_cast calls, making
TableGen run 3x faster.
llvm-svn: 148091
|
| |
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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 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
|
| |
|
|
|
|
|
| |
When resolving Record values, be sure to update the Record name as it
may contain references to the value.
llvm-svn: 142511
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Ask for the Record name as a string explicitly to avoid a possible assert.
llvm-svn: 142506
|
| |
|
|
|
|
|
| |
Ask for the Record name as a string explicitly to avoid a possible
assert.
llvm-svn: 142505
|
| |
|
|
|
|
|
| |
Ask for the record name as a string explicitly to avoid a potential
assert.
llvm-svn: 142504
|
| |
|
|
|
|
| |
Add an init function to be shared among Record constructors.
llvm-svn: 142501
|
| |
|
|
|
|
|
|
| |
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 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 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 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 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
This is the first step towards splitting LLVM and Clang's tblgen executables.
llvm-svn: 140951
|