summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/IntrinsicEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Write llvm-tblgen backends as functions instead of sub-classes.Jakob Stoklund Olesen2012-06-111-45/+91
| | | | | | | | | The TableGenBackend base class doesn't do much, and will be removed completely soon. Patch by Sean Silva! llvm-svn: 158311
* switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients.Chris Lattner2012-05-281-1/+2
| | | | llvm-svn: 157556
* rdar://11542750 - llvm.trap should be marked no return.Chris Lattner2012-05-271-4/+21
| | | | llvm-svn: 157551
* Reimplement the intrinsic verifier to use the same table as ↵Chris Lattner2012-05-271-137/+0
| | | | | | | | | | | | | 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 llvm-svn: 157545
* move some code around so that Verifier.cpp can get access to the intrinsic ↵Chris Lattner2012-05-271-33/+4
| | | | | | info table. llvm-svn: 157540
* enhance the intrinsic info table to encode what *kind* of Any argumentChris Lattner2012-05-271-12/+20
| | | | | | | it is (at the cost of 45 bytes of extra table space) so that the verifier can start using it. llvm-svn: 157536
* rearrange some code, no functionality change.Chris Lattner2012-05-261-20/+24
| | | | llvm-svn: 157523
* Fixed typo in r156905.Patrik Hägglund2012-05-231-2/+2
| | | | llvm-svn: 157320
* small refinement to r157218 to save a tiny amount of table size in the commonChris Lattner2012-05-231-4/+10
| | | | | | case. llvm-svn: 157312
* Added address space qualifier to intrinsic PointerType arguments.Pete Cooper2012-05-211-0/+6
| | | | llvm-svn: 157218
* enhance the intrinsic info stuff to emit encodings that don't fit in 32-bits ↵Chris Lattner2012-05-171-164/+73
| | | | | | | | | 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. llvm-svn: 156995
* finish encoding all of the interesting details of intrinsics. Now intrinsicsChris Lattner2012-05-171-45/+45
| | | | | | | are only rejected because they can't be encoded into a 32-bit unit, not because they contain an unencodable feature. llvm-svn: 156978
* strengthen the intrinsic descriptor stuff to be able to handle sin, cos and ↵Chris Lattner2012-05-171-54/+63
| | | | | | | | other intrinsics that use passed-in arguments. llvm-svn: 156977
* simplify code generated by tblgen that is not necessary since we droppedChris Lattner2012-05-171-20/+4
| | | | | | compatibility with LLVM 2.x bitcode files. llvm-svn: 156976
* I forgot the #ifdef _MSC_VER guard in my last commit.Francois Pichet2012-05-171-0/+5
| | | | llvm-svn: 156975
* Fix the MSVC 2010 build: disable the optimizer for a problematic function.Francois Pichet2012-05-171-0/+2
| | | | llvm-svn: 156973
* Significantly reduce the compiled size of Functions.cpp by turning a big ↵Chris Lattner2012-05-161-117/+307
| | | | | | | | | | 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. llvm-svn: 156905
* have tblgen emit cast<> instead of dyn_cast<> when we know it must succeed.Chris Lattner2012-05-161-2/+2
| | | | llvm-svn: 156902
* Move llvm-tblgen's StringMatcher into the TableGen library so it canDouglas Gregor2012-05-021-1/+1
| | | | | | be used by clang-tblgen. llvm-svn: 156000
* Fix target specific intrinsic handling to adjust intrinsic number before ↵Craig Topper2012-04-131-9/+15
| | | | | | doing attribute table lookup. Also fix attribute table lookup to handle 'invalid' intrinsic correctly. Fixes PR12542 llvm-svn: 154658
* TableGen: Don't emit the llvm intrinsic -> gcc builtin table, its only user ↵Benjamin Kramer2012-03-261-19/+0
| | | | | | was the c backend. llvm-svn: 153432
* Emit the "is an intrinsic overloaded" table as a bitfield.Benjamin Kramer2012-03-011-7/+10
| | | | llvm-svn: 151792
* Emit the intrinsic modref info as a lookup table instead of a huge switch.Benjamin Kramer2012-03-011-16/+18
| | | | | | Shrinks BasicAliasAnalysis.o from 106k to 56k on i386. llvm-svn: 151781
* Convert generated intrinsic attributes to use an array lookup as Chris ↵Craig Topper2012-02-281-18/+26
| | | | | | suggested in PR11951. llvm-svn: 151622
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-051-4/+3
| | | | llvm-svn: 149814
* Add basic generic CodeGen support for half.Dan Gohman2011-12-201-0/+2
| | | | llvm-svn: 146927
* Move TableGen's parser and entry point into a libraryPeter Collingbourne2011-10-011-1/+1
| | | | | | This is the first step towards splitting LLVM and Clang's tblgen executables. llvm-svn: 140951
* Change Intrinsic::getDeclaration and friends to take an ArrayRef.Benjamin Kramer2011-07-141-1/+1
| | | | llvm-svn: 135154
* fix the varargs version of StructType::get to not require an LLVMContext, ↵Chris Lattner2011-06-181-1/+1
| | | | | | | | making usage much cleaner. llvm-svn: 133364
* Change how tblgen generates attributes for intrinsics to use a singleJohn McCall2011-05-281-59/+111
| | | | | | | | | 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. llvm-svn: 132252
* Rename AccessesArguments and AccessesArgumentsReadonly, and rewriteDan Gohman2010-11-101-2/+2
| | | | | | their comments. llvm-svn: 118696
* Translate IntrReadArgMem to AccessesArgumentsReadonly.Dan Gohman2010-11-091-0/+2
| | | | llvm-svn: 118622
* Get rid of pop_macro warnings on MSVC.Michael J. Spencer2010-09-241-2/+5
| | | | llvm-svn: 114750
* CBackend: Fix MSVC build.Michael J. Spencer2010-09-141-4/+4
| | | | | | This may produce warnings on MSVS, but it's better than failures. llvm-svn: 113834
* Add x86mmx to TableGen.Dale Johannesen2010-09-111-0/+2
| | | | llvm-svn: 113671
* emit the LLVM intrinsic name -> intrinsic number mapping table withChris Lattner2010-09-061-25/+34
| | | | | | StringMatcher instead of a linear sequence of memcmps. llvm-svn: 113145
* emit the __builtin -> intrinsic map with StringMatcher instead of aChris Lattner2010-09-061-108/+18
| | | | | | copy of a close relative of it. llvm-svn: 113142
* slightly improve the runtime and code size of the Intrinsics info table by notChris Lattner2010-09-061-13/+15
| | | | | | comparing the "llvm." prefix in the memcmp, and not storing it in the string literal. llvm-svn: 113136
* Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMemDan Gohman2010-08-051-2/+2
| | | | | | to IntrReadWriteArgMem, as it's for reading as well as writing. llvm-svn: 110395
* Fixes for Microsoft Visual Studio 2010, from Steven Watanabe!Douglas Gregor2010-05-111-0/+19
| | | | llvm-svn: 103457
* Change intrinsic result type for void to store it as an empty listChris Lattner2010-03-221-6/+7
| | | | | | | instead of as a single element list with VoidTy. Now with a fix for the verifier. llvm-svn: 99206
* Revert r99009 temporarily it seems to be breaking the bots.Eric Christopher2010-03-191-7/+6
| | | | llvm-svn: 99011
* Change intrinsic result type for void to store it as an empty listChris Lattner2010-03-191-6/+7
| | | | | | instead of as a single element list with VoidTy. llvm-svn: 99009
* Partially address a README by having functionattrs consider calls toDuncan Sands2010-01-061-1/+1
| | | | | | | | | | 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. llvm-svn: 92829
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-9/+9
| | | | llvm-svn: 78948
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-22/+22
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* Add a new overloaded EVT::vAny type for use in TableGen to allow intrinsicBob Wilson2009-08-111-3/+3
| | | | | | arguments that are vectors of any size and element type. llvm-svn: 78631
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-101-27/+27
| | | | | | own struct type. llvm-svn: 78610
* Privatize the StructType table, which unfortunately involves routing ↵Owen Anderson2009-08-051-2/+2
| | | | | | contexts through a number of APIs. llvm-svn: 78258
* Fix the verifier to handle intrinsics with LLVMMatchType parameters, whereBob Wilson2009-07-291-0/+13
| | | | | | | | | | | | | | | 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. llvm-svn: 77467
OpenPOWER on IntegriCloud