summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/IntrinsicEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Add new ValueType for metadata.Devang Patel2009-07-061-0/+2
| | | | llvm-svn: 74882
* Replace std::iostreams with raw_ostream in TableGen.Daniel Dunbar2009-07-031-17/+17
| | | | | | | | - Sorry, I can't help myself. - No intended functionality change. llvm-svn: 74742
* improve the APIs for creating struct and function types with no ↵Chris Lattner2009-07-011-1/+1
| | | | | | | | arguments/elements to not have to create a temporary vector (in the API at least). Patch by Jay Foad! llvm-svn: 74584
* Fix PR3994: LLVMMatchType arguments do not refer to absolute return valueBob Wilson2009-04-161-2/+0
| | | | | | | | | | 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. llvm-svn: 69316
* fix a few spelling errors and typosJim Grosbach2009-03-261-1/+1
| | | | llvm-svn: 67758
* Added support to have TableGen provide information if an intrinsic (coreMon P Wang2009-02-241-1/+21
| | | | | | or target) can be overloaded or not. llvm-svn: 65404
* Generalize some alias analysis logic from atomicDuncan Sands2009-02-141-0/+34
| | | | | | intrinsics to any IntrWriteArgMem intrinsics. llvm-svn: 64551
* Reapply 63765. Patches for clang and llvm-gcc to follow.Dale Johannesen2009-02-051-16/+48
| | | | llvm-svn: 63812
* Reverting 63765. This broke the build of both clangDale Johannesen2009-02-041-48/+16
| | | | | | and llvm-gcc. llvm-svn: 63786
* New feature: add support for target intrinsics being defined in theNate Begeman2009-02-041-16/+48
| | | | | | | | | 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. llvm-svn: 63765
* make tblgen autogenerate the nocapture intrinsics for Chris Lattner2009-01-121-7/+22
| | | | | | | llvm.memcpy/memset/memmove. This allows removal of some hackish code from basicaa. llvm-svn: 62071
* add scaffolding to emit argument attributes. No functionality Chris Lattner2009-01-121-2/+31
| | | | | | change. llvm-svn: 62067
* make tblgen emit the entire Intrinsic::getAttributes method, Chris Lattner2009-01-121-0/+7
| | | | | | not a random piece of it. No functionality change. llvm-svn: 62066
* Improve support for type-generic vector intrinsics by teaching TableGen howBob Wilson2009-01-071-3/+20
| | | | | | | | 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. llvm-svn: 61834
* Fix to record comparator to make it work for return values > 1.Bill Wendling2008-11-131-1/+1
| | | | llvm-svn: 59242
* Put comma in correct place for call to StructType::getBill Wendling2008-11-131-2/+4
| | | | llvm-svn: 59241
* Modify the intrinsics pattern to separate out the "return" types from theBill Wendling2008-11-131-33/+101
| | | | | | | | | | "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>]>; llvm-svn: 59237
* Large mechanical patch.Devang Patel2008-09-251-2/+2
| | | | | | | | | | | | | | | 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. llvm-svn: 56622
* Added support for overloading intrinsics (atomics) based on pointersMon P Wang2008-07-301-0/+8
| | | | | | | to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 llvm-svn: 54195
* Wrap MVT::ValueType in a struct to get type safetyDuncan Sands2008-06-061-8/+9
| | | | | | | | | | | | | | | | 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). llvm-svn: 52044
* Change the builtin matcher to emit a decision tree, which should help out Chris Lattner2008-01-041-8/+108
| | | | | | the VC++ 'nesting depth' issue. llvm-svn: 45567
* Don't let IntrinsicID be uninitialized if it doesn't match.Chris Lattner2008-01-041-1/+1
| | | | llvm-svn: 45563
* Remove the default else. This was ending in code that looked like this:Bill Wendling2008-01-031-2/+0
| | | | | | | | | | if (!strcmp(Target, "x86")) { // ... } else IntrinsicID = Intrinsic::not_intrinsic; llvm-svn: 45557
* Fix a build problem with VC++ by not doing the target prefixChris Lattner2008-01-021-13/+24
| | | | | | | comparison for every builtin. This reduces the depth of the if/elseif chain dramatically. llvm-svn: 45500
OpenPOWER on IntegriCloud