History log of /external/llvm/lib/TableGen/Record.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/TableGen/Record.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/TableGen/Record.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/TableGen/Record.cpp
8f4397799f9eebdc149754c539619ccbed578b90 31-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix most memory leaks in tablegen.

Found by the valgrind bot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
74b3c8da4800c7e8ba8f019879db29738ecc5f74 15-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Make helpers static. Add missing include so LLVMInitializeObjCARCOpts gets C linkage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
d23a41c153712b929bd84f5e713bda5db5d6e66d 25-Jan-2013 Hal Finkel <hfinkel@anl.gov> Add an addition operator to TableGen

This adds an !add(a, b) operator to tablegen; this will be used
to cleanup the PPC register definitions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
37fda193d292d78c672b8019723c7907af312c43 07-Jan-2013 Sean Silva <silvas@purdue.edu> Simplify TableGen type-compatibility checks.

Patch by Elior Malul!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
61131ab15fd593a2e295d79fe2714e7bc21f2ec8 25-Oct-2012 Joerg Sonnenberger <joerg@bec.de> Remove exception handling usage from tblgen.

Most places can use PrintFatalError as the unwinding mechanism was not
used for anything other than printing the error. The single exception
was CodeGenDAGPatterns.cpp, where intermediate errors during type
resolution were ignored to simplify incremental platform development.
This use is replaced by an error flag in TreePattern and bailout earlier
in various places if it is set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
3f7b7f8ce0b050fc6a0100839d9c5a84198b2aed 10-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Use semantically correct RTTI functions.

Also, some minor cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
6cfc806a6b82b60a3e923b6b89f2b4da62cdb50b 10-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Mechanically move dynamic_cast<> to dyn_cast<>.

Some of these dyn_cast<>'s would be better phrased as isa<> or cast<>.
That will happen in a future patch.

There are also two dyn_cast_or_null<>'s slipped in instead of
dyn_cast<>'s, since they were causing crashes with just dyn_cast<>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
63554988a94b8a4bcf3de77659a0b27c07a0975d 05-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Use appropriate LLVM-style RTTI functions.

Use isa<> or cast<> when semantically that is what is happening. Also
some trivial "style" cleanups at fix sites.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
736ceace11249da645ec4ed91b8714832193ead4 05-Oct-2012 Sean Silva <silvas@purdue.edu> tblgen: Replace uses of dynamic_cast<XXXRecTy> with dyn_cast<>.

This is a mechanical change of dynamic_cast<> to dyn_cast<>. A number of
these uses are actually more like isa<> or cast<>, and will be changed
to the semanticaly appropriate one in a future patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
57838db0a1cfcfbb8d1df59562dccd22208cd703 19-Sep-2012 Sean Silva <silvas@purdue.edu> De-nest if's and fix mix-up

Two deeply nested if's obscured that the sense of the conditions was
mixed up. Amazingly, TableGen's output is exactly the same even with the
sense of the tests fixed; it seems that all of TableGen's conversions
are symmetric so that the inverted sense was nonetheless correct "by
accident". As such, I couldn't come up with a test case.

If there does in fact exist a non-symmetric conversion in TableGen's
type system, then a test case should be prepared.

Despite the symmetry, both if's are left in place for robustness in the
face of future changes.

Review by Jakob.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
307525cd24c3b9c081ddb3c34a3418f2875cd556 07-Sep-2012 Michael Liao <michael.liao@intel.com> Re-work bit/bits value resolving in tblgen

- This patch is inspired by the failure of the following code snippet
which is used to convert enumerable values into encoding bits to
improve the readability of td files.

class S<int s> {
bits<2> V = !if(!eq(s, 8), {0, 0},
!if(!eq(s, 16), {0, 1},
!if(!eq(s, 32), {1, 0},
!if(!eq(s, 64), {1, 1}, {?, ?}))));
}

Later, PR8330 is found to report not exactly the same bug relevant
issue to bit/bits values.

- Instead of resolving bit/bits values separately through
resolveBitReference(), this patch adds getBit() for all Inits and
resolves bit value by resolving plus getting the specified bit. This
unifies the resolving of bit with other values and removes redundant
logic for resolving bit only. In addition,
BitsInit::resolveReferences() is optimized to take advantage of this
origanization by resolving VarBitInit's variable reference first and
then getting bits from it.

- The type interference in '!if' operator is revised to support possible
combinations of int and bits/bit in MHS and RHS.

- As there may be illegal assignments from integer value to bit, says
assign 2 to a bit, but we only check this during instantiation in some
cases, e.g.

bit V = !if(!eq(x, 17), 0, 2);

Verbose diagnostic message is generated when invalid value is
resolveed to help locating the error.

- PR8330 is fixed as well.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
c1f10fd5b9a780d1c42dca7143d7a8acd9bd9377 23-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Tristate mayLoad, mayStore, and hasSideEffects.

Keep track of the set/unset state of these bits along with their
true/false values, but treat '?' as '0' for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
e96ce46b4deabec1110fd9d58213cb884a33b61c 12-Jul-2012 Jim Grosbach <grosbach@apple.com> TableGen: Location information for diagnostic.

def Pat<...>;

Results in 'record name is not a string!' diagnostic. Not the best,
but the lack of location information moves it from not very helpful
into completely useless. We're in the Record class when throwing the
error, so just add the location info directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
a2da78852b25ef098c91e5923e8edf205c3bf0c7 07-Mar-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix infinite loop in nested multiclasses.

Patch by Michael Liao!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
c78bd9ba6beaa42e2c1de14a3cc519cfdbfd593a 05-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Switch the TableGen record's string-based DenseMap key to use the new
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
858143816d43e58b17bfd11cb1b57afbd7f0f893 07-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert assert(0) to llvm_unreachable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
448b73a95ca9be6409907b96402f1606cd87d80c 30-Jan-2012 David Greene <greened@obbligato.org> Implement String Cast from Integer

Allow casts from integer to string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
2dd674fdce68f8fd59d78a3bbab2cf5b8d220290 17-Jan-2012 David Blaikie <dblaikie@gmail.com> Removing unused default switch cases in switches over enums that already 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)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
8dd6f0c8353f80de6526810899f271d539f6929c 13-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Delete CodeInit and CodeRecTy from TableGen.

The code type was always identical to a string anyway. Now it is simply
a synonym. The code literal syntax [{...}] is still valid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
ebaf92c67dac4974f98a08f8096d3eb2f4edd09d 13-Jan-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Use uniqued StringInit pointers for lookups.

This avoids a gazillion StringMap and dynamic_cast calls, making
TableGen run 3x faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
2d24e2a396a1d211baaeedf32148a3b657240170 20-Dec-2011 David Blaikie <dblaikie@gmail.com> Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
7aef99b677452724100145c81f76f32e494cc5a7 12-Nov-2011 Jim Grosbach <grosbach@apple.com> ARM vldm and vstm VFP instructions can take a data type suffix.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
e338565757bfcfe9d762751c976684f66954fb45 19-Oct-2011 David Greene <greened@obbligato.org> Add NAME Member

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
9c42bcf2ca4844162b427d017fa419bf93f258e3 19-Oct-2011 David Greene <greened@obbligato.org> Resolve Record Names

When resolving Record values, be sure to update the Record name as it
may contain references to the value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
f628204262fb91bc095e198b5d9777bd015637e2 19-Oct-2011 David Greene <greened@obbligato.org> Allow Names Changes on Unregistered Records

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
a461c398267287d7a5d75fb3fa98d29cbfbb17f4 19-Oct-2011 David Greene <greened@obbligato.org> Fix Name Access

Ask for the Record name as a string explicitly to avoid a possible assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
41effc6c15cb65bf486887b20b1dd419ad40f4af 19-Oct-2011 David Greene <greened@obbligato.org> Fix Name Access

Ask for the Record name as a string explicitly to avoid a possible
assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
e681d284f96333cef7774c6cc3dd862526af2282 19-Oct-2011 David Greene <greened@obbligato.org> Fix Name Access

Ask for the record name as a string explicitly to avoid a potential
assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
f7931b7040de1c829e678b4e391308bc3376f8a0 19-Oct-2011 David Greene <greened@obbligato.org> Add Record Init

Add an init function to be shared among Record constructors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
e22b321d2276b634519165b101b02d92c2fcf5c7 19-Oct-2011 David Greene <greened@obbligato.org> Make Template Arg Names Inits

Allow template arg names to be Inits. This is further work to
implement paste as it allows template names to participate in paste
operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
30c2225b3c4a89b527ee38542ab8990ca0a682f1 19-Oct-2011 David Greene <greened@obbligato.org> Add Utility to Scope Names

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
ee6dca17252de152720655282fb4b74b76fb2fe9 19-Oct-2011 David Greene <greened@obbligato.org> Make VarInit Name an Init

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
96a9f78c4aa1bc188f3f7ee869bed44cb7a6ff0e 19-Oct-2011 David Greene <greened@obbligato.org> Add Value Accessors

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
d2b9f20b188966722bca10714c237aa036e8c808 06-Oct-2011 David Greene <greened@obbligato.org> Fix List-of-List Processing

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
cedaae125e26d4d98072ed04017ddaebcfa468f8 04-Oct-2011 David Greene <greened@obbligato.org> Allow Operator Arguments

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp
7c788888872233748da10a8177a9a1eb176c1bc8 01-Oct-2011 Peter Collingbourne <peter@pcc.me.uk> Move TableGen's parser and entry point into a library

This is the first step towards splitting LLVM and Clang's tblgen executables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/TableGen/Record.cpp