aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Intrinsics.h
Commit message (Collapse)AuthorAgeFilesLines
* Add a programatic interface to intrinsic names.Chris Lattner2006-03-251-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27107 91177308-0d34-0410-b5e6-96231b3b80d8
* use the enum list autogen'd from Intrinsics.tdChris Lattner2006-03-091-61/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26660 91177308-0d34-0410-b5e6-96231b3b80d8
* remove the read/write port/io intrinsics.Chris Lattner2006-03-031-7/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-031-7/+10
| | | | | | | PR709, and paving the way for future progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR411:Reid Spencer2006-01-161-5/+16
| | | | | | | | | | | | | | | | | This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
* Add bswap intrinsics as documented in the Language ReferenceNate Begeman2006-01-141-9/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25309 91177308-0d34-0410-b5e6-96231b3b80d8
* add new llvm.stacksave/llvm.stackrestore intrinsicsChris Lattner2006-01-131-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25265 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for a cycle counter intrinsic. As basically all processors haveAndrew Lenharth2005-11-111-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this and have it in about the same form, I think this makes sense. on X86, you do a RDTSC (64bit result, from any ring since the P5MMX) on Alpha, you do a RDCC on PPC, there is a sequence which may or may not work depending on how things are setup by the OS. Or something like that. Maybe someone who knows PPC can add support. Something about the time base register. on Sparc, you read %tick, which in some solaris versions (>=8) is readable by userspace on IA64 read ar.itc So I think the ulong is justified since all of those are 64bit. Support is slighly flaky on old chips (P5 and lower) and sometimes depends on OS (PPC, Sparc). But for modern OS/Hardware (aka this decade), we should be ok. I am still not sure what to do about lowering. I can either see a lower to 0, to gettimeofday (or the target os equivalent), or loudly complaining and refusing to continue. I am commiting an Alpha implementation. I will add the X86 implementation if I have to (I have use of it in the near future), but if someone who knows that backend (and the funky multi-register results) better wants to add it, it would take them a lot less time ;) TODO: better lowering and legalizing, and support more platforms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24299 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement count leading zeros (ctlz), count trailing zeros (cttz), and countAndrew Lenharth2005-05-031-1/+5
| | | | | | | | | | population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
* Add llvm.sqrt intrinsic, patch contributed by Morten OfstadChris Lattner2005-04-301-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21627 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceMisha Brukman2005-04-211-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
* First step in adding pcmarker intrinsic. Second step (soon) is adding ↵Andrew Lenharth2005-03-281-0/+1
| | | | | | backend support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20900 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a prefetch intrinsic, patch contributed by Justin Wick!Chris Lattner2005-02-281-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20374 91177308-0d34-0410-b5e6-96231b3b80d8
* The Alpha (tm) intrinsics aren't even being usedMisha Brukman2004-10-291-91/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17341 91177308-0d34-0410-b5e6-96231b3b80d8
* isnan is deadChris Lattner2004-06-151-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14191 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the isunordered intrinsic.Alkis Evlogimenos2004-06-121-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14159 91177308-0d34-0410-b5e6-96231b3b80d8
* I misled Alkis: LLVM should have isnan, not isunordered.Chris Lattner2004-06-111-4/+2
| | | | | | | | | isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the isunordered intrinsic.Alkis Evlogimenos2004-06-111-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the new GC intrinsicsChris Lattner2004-05-231-12/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13686 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily hack in the intrinsics that John added. I expect him to finish ↵Chris Lattner2004-04-141-0/+2
| | | | | | up their addition, but in the meantime, the build should not be broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12938 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the llvm.readport and llvm.writeport intrinsics.John Criswell2004-04-081-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12780 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner2004-03-131-3/+3
| | | | | | | Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12356 91177308-0d34-0410-b5e6-96231b3b80d8
* Add llvm.memset/frameaddress/returnaddress intrinsics.Chris Lattner2004-02-141-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11431 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for the llvm.memmove intrinsic.Chris Lattner2004-02-121-1/+3
| | | | | | | Patch graciously contributed by Reid Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11354 91177308-0d34-0410-b5e6-96231b3b80d8
* Urg, check in header I forgot. :(Chris Lattner2004-02-121-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11353 91177308-0d34-0410-b5e6-96231b3b80d8
* add new intrinsicChris Lattner2004-01-061-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10700 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some intrinsicsChris Lattner2004-01-051-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10690 91177308-0d34-0410-b5e6-96231b3b80d8
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-3/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
* Added LLVM copyright header (for lack of a better term).John Criswell2003-10-201-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
* New revised variable argument handling supportChris Lattner2003-10-181-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9219 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate the unwind intrinsic, it is now an instructionChris Lattner2003-09-081-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8412 91177308-0d34-0410-b5e6-96231b3b80d8
* As it turns out, things will be simpler than I first expected. We no longerChris Lattner2003-08-251-4/+0
| | | | | | | need any exception handling intrinsics beyond llvm.unwind. (yaay) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8145 91177308-0d34-0410-b5e6-96231b3b80d8
* rethrow is really the language independent primitive here. "throw" can be ↵Chris Lattner2003-08-241-2/+3
| | | | | | | | | | | written in terms of it and llvm.exc.setcurrent. Rework these intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8109 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for recognizing LLVM exception handling intrinsicsChris Lattner2003-08-241-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8102 91177308-0d34-0410-b5e6-96231b3b80d8
* Add intrinsics for the llvm.sig(set|long)jmp functionsChris Lattner2003-08-181-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7949 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a bunch of new Alpha Intrinsics for Rahul JoshiChris Lattner2003-08-061-0/+76
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7646 91177308-0d34-0410-b5e6-96231b3b80d8
* Add alpha intrinsics, contributed by Rahul JoshiChris Lattner2003-07-281-5/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7372 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment for doxygen for namespaceChris Lattner2003-06-031-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6578 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for setjmp/longjmp primitivesChris Lattner2003-05-171-0/+4
| | | | | | | Patch checked in for Bill Wendling :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6241 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checkin for LLVM intrinsic functionsChris Lattner2003-05-081-0/+21
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6032 91177308-0d34-0410-b5e6-96231b3b80d8