summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/IntrinsicLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* For PR950:Reid Spencer2006-12-311-30/+30
| | | | | | | | | | | | | | | | | | Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. llvm-svn: 32788
* For PR950:Reid Spencer2006-12-231-2/+2
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* Simplify all the casting business and get rid of isSigned().Reid Spencer2006-12-211-64/+18
| | | | llvm-svn: 32731
* Convert the last uses of CastInst::createInferredCast to a normal castReid Spencer2006-12-181-5/+13
| | | | | | | | creation. These changes are still temporary but at least this pushes knowledge of signedness out closer to where it can be determined properly and allows signedness to be removed from VMCore. llvm-svn: 32654
* This case isn't needed with recent changes to ConstantInt::getChris Lattner2006-12-121-3/+1
| | | | llvm-svn: 32472
* Change inferred cast creation calls to more specific cast creations.Reid Spencer2006-12-121-1/+1
| | | | llvm-svn: 32460
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-071-12/+12
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* Changed to using llvm streams.Bill Wendling2006-11-281-10/+9
| | | | llvm-svn: 31954
* For PR950:Reid Spencer2006-11-271-21/+79
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Simplify IntrinsicLowering and clarify that it is only for use by theChris Lattner2006-11-151-3/+3
| | | | | | CBE and interpreter. llvm-svn: 31755
* For PR950:Reid Spencer2006-11-081-38/+14
| | | | | | | | This patch converts the old SHR instruction into two instructions, AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not dependent on the sign of their operands. llvm-svn: 31542
* For PR950:Reid Spencer2006-10-201-17/+18
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* Handle new forms of llvm.dbg intrinsics.Jim Laskey2006-03-231-0/+1
| | | | llvm-svn: 26988
* Handle the removal of the debug chain.Jim Laskey2006-03-131-2/+0
| | | | llvm-svn: 26729
* remove dbg_declare, it's not used yet.Chris Lattner2006-03-091-1/+0
| | | | llvm-svn: 26659
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-031-6/+12
| | | | | | PR709, and paving the way for future progress. llvm-svn: 26476
* For PR411:Reid Spencer2006-01-161-11/+23
| | | | | | | | | | | | | | | | 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. llvm-svn: 25366
* Add BSWAP stuff to intrinsic lowering for CBE & friends.Nate Begeman2006-01-161-2/+106
| | | | llvm-svn: 25355
* Add "support" for the llvm.stacksave/stackrestore intrinsics, this isChris Lattner2006-01-131-2/+15
| | | | | | used by the C backend. llvm-svn: 25267
* continued readcyclecounter supportAndrew Lenharth2005-11-111-0/+6
| | | | llvm-svn: 24300
* When a function takes a variable number of pointer arguments, with a zeroJeff Cohen2005-10-231-1/+2
| | | | | | | | | | | | | pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. llvm-svn: 23888
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-271-1/+1
| | | | llvm-svn: 22523
* Fix lowering of ctlz, so now UnitTests/2005-05-11-Popcount-ffs-fls passesChris Lattner2005-05-111-40/+26
| | | | | | with the CBE llvm-svn: 21875
* Fix lowering of cttz to work with signed valuesChris Lattner2005-05-111-5/+4
| | | | llvm-svn: 21874
* fix and concisify intinsic lowering for ctpop. Unfortunately, this codeChris Lattner2005-05-111-167/+61
| | | | | | looks completely untested. :( llvm-svn: 21873
* Wrap long lines. Fix "warning: conflicting types for built-in function ↵Chris Lattner2005-05-081-8/+15
| | | | | | | | 'memset'" warning from the CBE+GCC. llvm-svn: 21779
* Implement count leading zeros (ctlz), count trailing zeros (cttz), and countAndrew Lenharth2005-05-031-0/+196
| | | | | | | | | population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. llvm-svn: 21676
* Do not use deprecated APIsAlkis Evlogimenos2005-04-301-1/+1
| | | | llvm-svn: 21639
* Lower llvm.sqrt -> fsqrt/sqrtChris Lattner2005-04-301-1/+17
| | | | llvm-svn: 21629
* Remove trailing whitespaceMisha Brukman2005-04-211-6/+6
| | | | llvm-svn: 21420
* First step in adding pcmarker intrinsic. Second step (soon) is adding ↵Andrew Lenharth2005-03-281-0/+3
| | | | | | backend support. llvm-svn: 20900
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-10/+10
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Lower llvm.isunordered(a, b) into a != a | b != b.Alkis Evlogimenos2005-03-011-3/+8
| | | | llvm-svn: 20382
* Lower prefetch to a noop, patch contributed by Justin Wick!Chris Lattner2005-02-281-0/+3
| | | | llvm-svn: 20375
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-291-1/+1
| | | | llvm-svn: 15334
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-041-0/+2
| | | | llvm-svn: 14622
* Move the IntrinsicLowering header into the CodeGen directory, as per PR346Chris Lattner2004-06-201-0/+214
| | | | llvm-svn: 14266
* Move into the VMCore libraryChris Lattner2003-12-281-57/+0
| | | | llvm-svn: 10623
* Implement the default implementation of the intrinsic lowering classChris Lattner2003-12-281-0/+57
llvm-svn: 10621
OpenPOWER on IntegriCloud