History log of /external/llvm/utils/TableGen/IntrinsicEmitter.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/utils/TableGen/IntrinsicEmitter.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

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

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e553feab843a82e35b81e20ebc736f775c85db32 16-Nov-2013 Owen Anderson <resistor@mac.com> Small improvement to InstrinsicEmitter::EmitAttributes. This change removes the “pushing” and “clearing” of the SmallVector and instead uses const arrays to pass the attributeKinds to AttributeSet::get .

Patch by Aditya Nandakumar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
2e50b8a08d40ce72ae35c73528140d3ee25209e0 31-Oct-2013 Andrew Trick <atrick@apple.com> Enable variable arguments support for intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
cf940ceff73f567876f1a1f62d3acbf67c43ea90 31-Oct-2013 Andrew Trick <atrick@apple.com> whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
477fc628b3c9ce1c970d4a678dd5607b15242cc8 24-Sep-2013 Jiangning Liu <jiangning.liu@arm.com> Initial support for Neon scalar instructions.

Patch by Ana Pazos.

1.Added support for v1ix and v1fx types.
2.Added Scalar Pairwise Reduce instructions.
3.Added initial implementation of Scalar Arithmetic instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
563a9cf7ba3055921b7de9f05dd9223e82d20aba 25-Jul-2013 Justin Holewinski <jholewinski@nvidia.com> Fix a bug in TableGen where the intrinsic function name recognizer could mis-identify names if one was a prefix substring of the other

For two intrinsics 'llvm.nvvm.texsurf.handle' and 'llvm.nvvm.texsurf.handle.internal',
TableGen was emitting matching code like:

if (Name.startswith("llvm.nvvm.texsurf.handle")) ...
if (Name.startswith("llvm.nvvm.texsurf.handle.internal")) ...

We can never match "llvm.nvvm.texsurf.handle.internal" here because it will
always be erroneously matched by the first condition.

The fix is to sort the intrinsic names and emit them in reverse order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
dc89737bcdbb8f69d8ae7578bdfa904cabcfc5ed 06-Jul-2013 Nick Lewycky <nicholas@mxc.ca> Extend 'readonly' and 'readnone' to work on function arguments as well as
functions. Make the function attributes pass add it to known library functions
and when it can deduce it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e3617247a0cbaf0d108ae22428c2a8fb47c257e6 27-Jan-2013 Bill Wendling <isanbard@gmail.com> Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
4d0b4a45dc724666d5de4f2f7c2d295487e4ca3e 11-Jan-2013 Michael Ilseman <milseman@apple.com> Support for half intrinsics. Pushes MMX into slower encoding path.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
629fb82419d9bfff6ae475363bcce66192dfcc8e 22-Dec-2012 Bill Wendling <isanbard@gmail.com> Change 'AttrVal' to 'AttrKind' to better reflect that it's a kind of attribute instead of the value of the attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
034b94b17006f51722886b0f2283fb6fb19aca1f 19-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
99faa3b4ec6d03ac7808fe4ff3fbf3d04e375502 08-Dec-2012 Bill Wendling <isanbard@gmail.com> s/AttrListPtr/AttributeSet/g to better label what this class is going to be in the near future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0976e00fd1cbf4128daeb72efd8957d00383fda9 20-Nov-2012 Bill Wendling <isanbard@gmail.com> Make the AttrListPtr object a part of the LLVMContext.

When code deletes the context, the AttributeImpls that the AttrListPtr points to
are now invalid. Therefore, instead of keeping a separate managed static for the
AttrListPtrs that's reference counted, move it into the LLVMContext and delete
it when deleting the AttributeImpls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.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/utils/TableGen/IntrinsicEmitter.cpp
07aae2e7d58fe23e370e0cbb9e1a3def99434c36 15-Oct-2012 Bill Wendling <isanbard@gmail.com> Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
cb3de0bc800d7920087b19bb12a545d4cc84114e 15-Oct-2012 Bill Wendling <isanbard@gmail.com> Attributes Rewrite

Convert the internal representation of the Attributes class into a pointer to an
opaque object that's uniqued by and stored in the LLVMContext object. The
Attributes class then becomes a thin wrapper around this opaque
object. Eventually, the internal representation will be expanded to include
attributes that represent code generation options, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
11d00420e42ba88c3b48cab997965a7be79315e2 10-Oct-2012 Bill Wendling <isanbard@gmail.com> Pass into the AttributeWithIndex::get method an ArrayRef of attribute
enums. These are then created via the correct Attributes creation method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
6f36fa981a59461466e12e5056ba209d289b81b1 11-Jun-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Write llvm-tblgen backends as functions instead of sub-classes.

The TableGenBackend base class doesn't do much, and will be removed
completely soon.

Patch by Sean Silva!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d509d0b532ec2358b3f341d4a4cd1411cb8b5db2 28-May-2012 Chris Lattner <sabre@nondot.org> switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
86208903cb3b693b26e144b8c5c7a0ab6a9a45c6 28-May-2012 Chris Lattner <sabre@nondot.org> rdar://11542750 - llvm.trap should be marked no return.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
55dc5c77a33bff5a902fec1b2133620064e1a256 27-May-2012 Chris Lattner <sabre@nondot.org> Reimplement the intrinsic verifier to use the same table as Intrinsic::getDefinition,
making it stronger and more sane.

Delete the code from tblgen that produced the old code.

Besides being a path forward in intrinsic sanity, this also eliminates a bunch of
machine generated code that was compiled into Function.o


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
908a831a9a1fb043bc4758d6712d78255099ae51 27-May-2012 Chris Lattner <sabre@nondot.org> move some code around so that Verifier.cpp can get access to the intrinsic info table.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
b4654c1c490275370ca706eed2d85cc232b21155 27-May-2012 Chris Lattner <sabre@nondot.org> enhance the intrinsic info table to encode what *kind* of Any argument
it is (at the cost of 45 bytes of extra table space) so that the verifier can
start using it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e82d598ef225f1daaf76451291f0808066b0301f 27-May-2012 Chris Lattner <sabre@nondot.org> rearrange some code, no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9ce6f6fe5e44a5bd4c4dcee660cddd197aec5307 23-May-2012 Patrik Hägglund <patrik.h.hagglund@ericsson.com> Fixed typo in r156905.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
a48289a672e20587e95bcdd84d5c71d28eb3d2b8 23-May-2012 Chris Lattner <sabre@nondot.org> small refinement to r157218 to save a tiny amount of table size in the common
case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
b428511989eea383b4fa65678c12b055d5c72af5 22-May-2012 Pete Cooper <peter_cooper@apple.com> Added address space qualifier to intrinsic PointerType arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
387c9dcddabe8551468647b249d3629953caab9e 17-May-2012 Chris Lattner <sabre@nondot.org> enhance the intrinsic info stuff to emit encodings that don't fit in 32-bits into a
separate side table, using the handy SequenceToOffsetTable class. This encodes all
these weird things into another 256 bytes, allowing all intrinsics to be encoded this way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d7cf5eb0219db7303875941ab62b3ef6e8fb0b31 17-May-2012 Chris Lattner <sabre@nondot.org> finish encoding all of the interesting details of intrinsics. Now intrinsics
are only rejected because they can't be encoded into a 32-bit unit, not because
they contain an unencodable feature.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
46aaf69e37287a9696b6cc5c49d10d0937ff052b 17-May-2012 Chris Lattner <sabre@nondot.org> strengthen the intrinsic descriptor stuff to be able to handle sin, cos and other
intrinsics that use passed-in arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
15706cbf8520f7c372e1c2e441e3b5d18f24aafd 17-May-2012 Chris Lattner <sabre@nondot.org> simplify code generated by tblgen that is not necessary since we dropped
compatibility with LLVM 2.x bitcode files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e4807c1ba1233c717efa63c7ed405aeec8e792ac 17-May-2012 Francois Pichet <pichet2000@gmail.com> I forgot the #ifdef _MSC_VER guard in my last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
3aca8799067c694cdd90b7fd2151ba4097886936 17-May-2012 Francois Pichet <pichet2000@gmail.com> Fix the MSVC 2010 build: disable the optimizer for a problematic function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
a98aa6ad1e8e53600b2e322e2ab869e03d436849 16-May-2012 Chris Lattner <sabre@nondot.org> Significantly reduce the compiled size of Functions.cpp by turning a big blob of tblgen
generated code (for Intrinsic::getType) into a table. This handles common cases right now,
but I plan to extend it to handle all cases and merge in type verification logic as well
in follow-on patches.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
7200c5cd30a714112ed6e4e4f1d2cee8bd6c10ec 16-May-2012 Chris Lattner <sabre@nondot.org> have tblgen emit cast<> instead of dyn_cast<> when we know it must succeed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
f657da2e4896732f306a9e62261418112e7337ce 02-May-2012 Douglas Gregor <dgregor@apple.com> Move llvm-tblgen's StringMatcher into the TableGen library so it can
be used by clang-tblgen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
b57b170317f12370183111fc458de3352c5f71dc 13-Apr-2012 Craig Topper <craig.topper@gmail.com> Fix target specific intrinsic handling to adjust intrinsic number before doing attribute table lookup. Also fix attribute table lookup to handle 'invalid' intrinsic correctly. Fixes PR12542

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
72e84f51a68fac35074133b4dcc4b152d77f2636 26-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> TableGen: Don't emit the llvm intrinsic -> gcc builtin table, its only user was the c backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
36a2138cce66a164f08a36c4c5820b133c4590fd 01-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Emit the "is an intrinsic overloaded" table as a bitfield.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
b519a0fe0ee02804cc77cb9c40ded6604341b71c 01-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Emit the intrinsic modref info as a lookup table instead of a huge switch.

Shrinks BasicAliasAnalysis.o from 106k to 56k on i386.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
1f5952352146f229cbc249405fbe9898d168089b 28-Feb-2012 Craig Topper <craig.topper@gmail.com> Convert generated intrinsic attributes to use an array lookup as Chris suggested in PR11951.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
655b8de7b2ab773a977e0c524307e71354d8af29 05-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@149814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e3376ecd504300ae529c902135f51baffbdc2824 20-Dec-2011 Dan Gohman <gohman@apple.com> Add basic generic CodeGen support for half.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.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/utils/TableGen/IntrinsicEmitter.cpp
eb9a85f09e18b3fe88499710404b38d3a9128f62 14-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> Change Intrinsic::getDeclaration and friends to take an ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
b2318662b6d2e6d9ea9917fd280dde0ba9a938ad 19-Jun-2011 Chris Lattner <sabre@nondot.org> fix the varargs version of StructType::get to not require an LLVMContext, making usage
much cleaner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
bd0fa4c00d7870b1da36eac7b2181700381f2f96 28-May-2011 John McCall <rjmccall@apple.com> Change how tblgen generates attributes for intrinsics to use a single
switch. With this newfound organization, teach tblgen how not to give
all intrinsics the 'nounwind' attribute. Introduce a new intrinsic,
llvm.eh.resume, which does not have this attribute. Documentation and uses
to follow.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e88ccb545d0e03fd4445d361100fc95f350c6663 10-Nov-2010 Dan Gohman <gohman@apple.com> Rename AccessesArguments and AccessesArgumentsReadonly, and rewrite
their comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9423f633654af6045b1efa7795edfe8ea0533d7e 09-Nov-2010 Dan Gohman <gohman@apple.com> Translate IntrReadArgMem to AccessesArgumentsReadonly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
1f4096054367cab3acab3a74c719ef6d3090606a 24-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> Get rid of pop_macro warnings on MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
08047f616977f204df6054c481601f2237cc308d 14-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> CBackend: Fix MSVC build.

This may produce warnings on MSVS, but it's better than failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
8be452545a1d3921f006c4d5673f14165ceead82 11-Sep-2010 Dale Johannesen <dalej@apple.com> Add x86mmx to TableGen.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
cc67c75b67d22653ea9380020e9a40381233901d 06-Sep-2010 Chris Lattner <sabre@nondot.org> emit the LLVM intrinsic name -> intrinsic number mapping table with
StringMatcher instead of a linear sequence of memcmps.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
298b176559d5c76d7d9f7fdd06429a75892de043 06-Sep-2010 Chris Lattner <sabre@nondot.org> emit the __builtin -> intrinsic map with StringMatcher instead of a
copy of a close relative of it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
2738ff9c22d27ce3e4aee6f250eb68f594db1ce9 06-Sep-2010 Chris Lattner <sabre@nondot.org> slightly improve the runtime and code size of the Intrinsics info table by not
comparing the "llvm." prefix in the memcmp, and not storing it in the string literal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
7365c091f92db5e68c98d7faedc6c34e1bbbc898 06-Aug-2010 Dan Gohman <gohman@apple.com> Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem
to IntrReadWriteArgMem, as it's for reading as well as writing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
7d9663c70b3300070298d716dba6e6f6ce2d1e3e 11-May-2010 Douglas Gregor <dgregor@apple.com> Fixes for Microsoft Visual Studio 2010, from Steven Watanabe!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
93dc92e412fd06250e46951bffb6040eca9baebd 22-Mar-2010 Chris Lattner <sabre@nondot.org> Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy. Now with a fix
for the verifier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d7de54068ca6db50f4b54fb150af7b7c62573449 20-Mar-2010 Eric Christopher <echristo@apple.com> Revert r99009 temporarily it seems to be breaking the bots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
26e763753be5f3422a892f6c268721eae7792eac 19-Mar-2010 Chris Lattner <sabre@nondot.org> Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
7c422ac216fe39fc9c402a704cf296cca9dc5b22 06-Jan-2010 Duncan Sands <baldrick@free.fr> Partially address a README by having functionattrs consider calls to
memcpy, memset and other intrinsics that only access their arguments
to be readnone if the intrinsic's arguments all point to local memory.
This improves the testcase in the README to readonly, but it could in
theory be made readnone, however this would involve more sophisticated
analysis that looks through the memcpy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
1d0be15f89cb5056e20e2d24faa8d6afb1573bca 13-Aug-2009 Owen Anderson <resistor@mac.com> Push LLVMContexts through the IntegerType APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
825b72b0571821bf2d378749f69d6c4cfb52d2f9 11-Aug-2009 Owen Anderson <resistor@mac.com> Split EVT into MVT and EVT, the former representing _just_ a primitive type, while
the latter is capable of representing either a primitive or an extended type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
61fc4cf7aa0b87ceab62082cee8ef5ce3f574ffc 11-Aug-2009 Bob Wilson <bob.wilson@apple.com> Add a new overloaded EVT::vAny type for use in TableGen to allow intrinsic
arguments that are vectors of any size and element type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e50ed30282bb5b4a9ed952580523f2dda16215ac 11-Aug-2009 Owen Anderson <resistor@mac.com> Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d7f2a6cb3fbc012763adb42fd967f6fefbb22a37 06-Aug-2009 Owen Anderson <resistor@mac.com> Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
09b1366f3f310b5648aa8cd72ed16b9f19b4c68d 29-Jul-2009 Bob Wilson <bob.wilson@apple.com> Fix the verifier to handle intrinsics with LLVMMatchType parameters, where
the return type of the intrinsic is not overloaded, i.e., where the type
being matched is some other parameter. The argument to LLVMMatchType is
an index into the list of overloaded types (ignoring the fixed types),
but VerifyIntrinsicPrototype is expecting its arguments for LLVMMatchType
parameters to be indices into the combined list of _all_ return values and
parameters, not just the overloaded ones.

This patch changes TableGen to keep track for each overloaded type of the
corresponding index into the list of return values and parameters. It
then generates the values expected by VerifyIntrinsicPrototype.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
bee9e35ba25c0f1c4fba7e4b01fef29dbfd859f3 07-Jul-2009 Devang Patel <dpatel@apple.com> Add new ValueType for metadata.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
1a55180238dbcf11113f610aea010447e51f595b 03-Jul-2009 Daniel Dunbar <daniel@zuster.org> Replace std::iostreams with raw_ostream in TableGen.
- Sorry, I can't help myself.

- No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0fd38069cb6699ce21eb159f22d3f23c012c9e81 01-Jul-2009 Chris Lattner <sabre@nondot.org> improve the APIs for creating struct and function types with no arguments/elements
to not have to create a temporary vector (in the API at least). Patch by Jay Foad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d305e707a65fa18cbe828cae2338499661c9229e 16-Apr-2009 Bob Wilson <bob.wilson@apple.com> Fix PR3994: LLVMMatchType arguments do not refer to absolute return value
and argument positions but only to the overloaded intrinsic parameters.
Keep a separate list of these overloaded parameters in CodeGenTarget.cpp
so they can be resolved easily. Remove assertions from IntrinsicEmitter.cpp:
they were harmless but confusing, and the assertions elsewhere in TableGen
will catch any incorrect values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
da4231f134989af7dc6bd3408821ba573def27b2 26-Mar-2009 Jim Grosbach <grosbach@apple.com> fix a few spelling errors and typos

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0d52ff1f7b993750a74a5d4432273092de9af069 25-Feb-2009 Mon P Wang <wangmp@apple.com> Added support to have TableGen provide information if an intrinsic (core
or target) can be overloaded or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d869b3847f1dee78e1e4e1ed3cb41bd3ab0a079c 14-Feb-2009 Duncan Sands <baldrick@free.fr> Generalize some alias analysis logic from atomic
intrinsics to any IntrWriteArgMem intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
49de98214b82fefeb8f16efbf8cdd8813a85469b 05-Feb-2009 Dale Johannesen <dalej@apple.com> Reapply 63765. Patches for clang and llvm-gcc to follow.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
4d452de1506344bf1d28bb4a8c4ddb78c51a28c8 04-Feb-2009 Dale Johannesen <dalej@apple.com> Reverting 63765. This broke the build of both clang
and llvm-gcc.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d24479730a8790d82c4859dc477bc2416d7a6bda 04-Feb-2009 Nate Begeman <natebegeman@mac.com> New feature: add support for target intrinsics being defined in the
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d4a2700fdc5bc8ac50084fcb39155e01e86168d5 12-Jan-2009 Chris Lattner <sabre@nondot.org> make tblgen autogenerate the nocapture intrinsics for
llvm.memcpy/memset/memmove. This allows removal of some
hackish code from basicaa.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
10dae94be2ccb187bd4e3da53771be54057acd6c 12-Jan-2009 Chris Lattner <sabre@nondot.org> add scaffolding to emit argument attributes. No functionality
change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
048ffb239c282277959463c61200b86e2380cb84 12-Jan-2009 Chris Lattner <sabre@nondot.org> make tblgen emit the entire Intrinsic::getAttributes method,
not a random piece of it. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
bc03979536a1ecb220f1330719f3e3973a81ab0b 07-Jan-2009 Bob Wilson <bob.wilson@apple.com> Improve support for type-generic vector intrinsics by teaching TableGen how
to handle LLVMMatchType intrinsic parameters, and by adding new subclasses
of LLVMMatchType to match vector types with integral elements that are
either twice as wide or half as wide as the elements of the matched type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
023422a6eb9ea692a5a837dc1daf256ac75ac6b0 13-Nov-2008 Bill Wendling <isanbard@gmail.com> Fix to record comparator to make it work for return values > 1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
20072af3b0b22d90afbce769409f4ed822520366 13-Nov-2008 Bill Wendling <isanbard@gmail.com> Put comma in correct place for call to StructType::get

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
cdcc3e6e12b8b4e224bd62c96768c5f5e325aace 13-Nov-2008 Bill Wendling <isanbard@gmail.com> Modify the intrinsics pattern to separate out the "return" types from the
"parameter" types. An intrinsic can now return a multiple return values like
this:

def add_with_overflow : Intrinsic<[llvm_i32_ty, llvm_i1_ty],
[LLVMMatchType<0>, LLVMMatchType<0>]>;



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0598866c052147c31b808391f58434ce3dbfb838 25-Sep-2008 Devang Patel <dpatel@apple.com> Large mechanical patch.

s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g

This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.

This requires corresponding changes in llvm-gcc and clang.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
e3b3a7241c01f26613694e53b26b01abf764ddfc 30-Jul-2008 Mon P Wang <wangmp@apple.com> Added support for overloading intrinsics (atomics) based on pointers
to different address spaces. This alters the naming scheme for those
intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb 06-Jun-2008 Duncan Sands <baldrick@free.fr> Wrap MVT::ValueType in a struct to get type safety
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
331bf92fb51f058672144681b3d0e67d30f5699f 04-Jan-2008 Chris Lattner <sabre@nondot.org> Change the builtin matcher to emit a decision tree, which should help out
the VC++ 'nesting depth' issue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
81442c0d832872c8f50ec72aeaf937e06d8f3dfb 04-Jan-2008 Chris Lattner <sabre@nondot.org> Don't let IntrinsicID be uninitialized if it doesn't match.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
f840f87baf1bad29e105354fdde51a128e7b1cd7 04-Jan-2008 Bill Wendling <isanbard@gmail.com> Remove the default else. This was ending in code that looked like this:

if (!strcmp(Target, "x86")) {
// ...
}
else
IntrinsicID = Intrinsic::not_intrinsic;


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
fa0fba1c546091c485e5513eadeef181dda370ab 02-Jan-2008 Chris Lattner <sabre@nondot.org> Fix a build problem with VC++ by not doing the target prefix
comparison for every builtin. This reduces the depth of
the if/elseif chain dramatically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
3060910e290949a9ac5eda8726d030790c4d60ff 29-Dec-2007 Chris Lattner <sabre@nondot.org> remove attributions from utils.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
43ad6b3e0d6ada51e9b23aab3e061187f1f5710c 17-Dec-2007 Christopher Lamb <christopher.lamb@gmail.com> Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
a3355ffb3d30d19d226bbb75707991c60f236e37 03-Dec-2007 Duncan Sands <baldrick@free.fr> Rather than having special rules like "intrinsics cannot
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
317096ab3710fda0960be58804e9f80c800340f6 28-Sep-2007 Dale Johannesen <dalej@apple.com> Add sqrt and powi intrinsics for long double.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0fee3ff93ea0bf1ce6466fec1d8496514d76e289 16-Aug-2007 Dan Gohman <gohman@apple.com> Add MVT::fAny for overloading intrinsics on floating-point types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
a583990ec83a4773608084a9694943ddd268e571 06-Aug-2007 Chandler Carruth <chandlerc@gmail.com> This resolves a regression of BasicAA which failed to find any memory information for overloaded intrinsics (PR1600). This resolves that issue, and improves the matching scheme to use a BitVector rather than a binary search.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
6994040a952e5fb27605eb3cf29ed86c4e59cf62 04-Aug-2007 Chandler Carruth <chandlerc@gmail.com> This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.

This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
face9e56a16c943c43b007d1f3d5c1d94b94226b 26-Jul-2007 Dan Gohman <gohman@apple.com> Fix a pasto in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9a0930dbd99af7958ef24bb4887ae6b1e294532f 26-Jun-2007 Dan Gohman <gohman@apple.com> Fix a typo in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
84c614d1ac671b1a5524169f20028f51c30be728 22-May-2007 Reid Spencer <rspencer@reidspencer.com> The Intrinsic::getDeclaration function's Tys parameter only contains the
types of the iAny types involved in the overloaded intrinsic. Thus, we
can't use the argument number as the index but have to count them separately
in order to index Tys correctly. This patch rectifies this situation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
2db15e2b4271d09ebc33516566ba852b8567810b 16-Apr-2007 Reid Spencer <rspencer@reidspencer.com> For PR1328:
Don't assert everytime an intrinsic name isn't recognized. Instead, make
the assert optional when callin getIntrinsicID(). This allows the assembler
to handle invalid intrinsic names gracefully.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
c4de3dec62c3f60ae7297f93c19c799c403c2e9f 01-Apr-2007 Reid Spencer <rspencer@reidspencer.com> For PR1297:
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
d263114d7a2adc1ea1cbbaf0fc67bb7761c9f828 15-Feb-2007 Chris Lattner <sabre@nondot.org> the lengths of the strings are known, just use memcmp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
3b515802f652b16b05c9a8f344d219a0739b36a3 15-Feb-2007 Chris Lattner <sabre@nondot.org> Implement Function::getIntrinsicID without it needing to call Value::getName,
which allocates a string. This speeds up instcombine on 447.dealII by 5%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
ac9dcb94dde5f166ee29372385c0e3b695227ab4 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
95af592a631f403e1458ec1155f89fc31011572c 07-Feb-2007 Jim Laskey <jlaskey@mac.com> Automatically generating intrinsic declarations from Dan Gohman. Modified
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
95d97b90e8427255c8298f5d3a1ab605af62aab4 06-Feb-2007 Jim Laskey <jlaskey@mac.com> Error check and eliminate unnecessary value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
ba4cc09f51eaf7bf7dff12bb4bb405caab3c29d1 06-Feb-2007 Jim Laskey <jlaskey@mac.com> Support var arg intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
a54b7cbd452b3adb2f51346140d996b29c2cdb30 12-Jan-2007 Reid Spencer <rspencer@reidspencer.com> For PR1064:
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.

This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
bits in an integer. The Type classes SubclassData field is used to
store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
64-bit integers. These are replaced with just IntegerType which is not
a primitive any more.
3. Adjust the rest of LLVM to account for this change.

Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types. Future increments
will rectify this situation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
90aa839c88776e3dd0b3a798a98ea30d85b6b53c 04-Oct-2006 Chris Lattner <sabre@nondot.org> Fix more static dtor issues


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
5348e393dff492b568c12f0bf5592509392b1407 02-Apr-2006 Chris Lattner <sabre@nondot.org> Adjust the Intrinsics.gen interface a little bit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
f124b46b4f18b1a8f054a1222324ae15079f6ed8 31-Mar-2006 Chris Lattner <sabre@nondot.org> Final bugfix for PR724. GCC won't inline varargs functions, so use one to
validate the prototype of intrinsic functions. This prevents GCC from going
crazy and inlining too much stuff, eventually running out of memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
c4d9b240b157efa9301d451ac44c12f6b004db8f 31-Mar-2006 Chris Lattner <sabre@nondot.org> When emitting code for the verifier, instead of emitting each case statement
independently, batch up checks so that identically typed intrinsics share
verifier code. This dramatically reduces the size of the verifier function,
which should help avoid GCC running out of memory compiling Verifier.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
f065a6f711dca09ba36ec8fd3556c4936cdbe621 29-Mar-2006 Evan Cheng <evan.cheng@apple.com> Don't sort the names before outputing the intrinsic name table. It causes a
mismatch against the enum table.
This is a part of Sabre's master plan to drive me nuts with subtle bugs that
happens to only affect x86 be. :-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
43fbbc36dc64243a1a57b072d37bccf6dad4d3cb 24-Mar-2006 Chris Lattner <sabre@nondot.org> Move CodeGenIntrinsic implementation to CodeGenTarget.cpp with the rest of
the CodeGen* implementations.

Parse the MVT::ValueType for each operand of the intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
7056de375d898d9d9ecc17e170632d91d18be4a8 24-Mar-2006 Chris Lattner <sabre@nondot.org> extract some more information from the intrinsic table


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
0da3130a98645c323883faa879c2d6ad42cbee3d 15-Mar-2006 Chris Lattner <sabre@nondot.org> allow the GCCBuiltinName field to be optional


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
71c3bc3d966bd874f760abf055c559673f925029 15-Mar-2006 Jeff Cohen <jeffc@jolt-lang.org> Fix VC++ build error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
ad45b00d6a3170f87f410f080d78d79a60f2d57e 15-Mar-2006 Chris Lattner <sabre@nondot.org> remove typo


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
fda6affb95e9f68278cb5cf75dc3fd3406978255 15-Mar-2006 Chris Lattner <sabre@nondot.org> Autogenerate a table of intrinsic names, so we can map from intrinsic ID to
LLVM intrinsic function name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
3f8b8913bc9cb232871445eefa8654caf7f9986f 15-Mar-2006 Chris Lattner <sabre@nondot.org> Autogenerate code to map from GCC builtin to LLVM intrinsic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
767a25b8788b5e313c99c16b4d359478432901f5 14-Mar-2006 Reid Spencer <rspencer@reidspencer.com> Add a newline at the end to avoid gcc warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
022f64fbbc4669623e79b805379266fed519017d 14-Mar-2006 Chris Lattner <sabre@nondot.org> emit a mapping from LLVM intrinsic -> GCC builtins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
18faf5d9f7f89130b9e3304965b81e1c70ebb75c 13-Mar-2006 Chris Lattner <sabre@nondot.org> Verify that packed type operands have the right size and base type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
78167faa18e66e95be3d73028b2db99bf3fbdcb3 11-Mar-2006 Chris Lattner <sabre@nondot.org> fix pasto in generate assertion msg


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
4e5f35973c1bc56cce14d44c6f8f4ad1e9f1a438 09-Mar-2006 Chris Lattner <sabre@nondot.org> generate side-effect info


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
6448ee44c6f232f215d5d9f145a0d71a983c4a3f 09-Mar-2006 Chris Lattner <sabre@nondot.org> Parse mod/ref properties, autogen mod/ref information


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
f97a00e681c7a526d49759d0d1b9d327cbf6c04a 09-Mar-2006 Chris Lattner <sabre@nondot.org> parse intrinsic types
autogenerate an intrinsic verifier


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9b843b249462980ae4630dc37d1bcccde884a5a7 09-Mar-2006 Chris Lattner <sabre@nondot.org> autogenerate the function name recognizer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp
9e493cfcc32aee58e6750ce1efa52d5c3bc3f893 03-Mar-2006 Chris Lattner <sabre@nondot.org> initial implementation of intrinsic parsing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/IntrinsicEmitter.cpp