summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/IntrinsicLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add lengthof and endof templates that hide a lot of sizeof computations.Owen Anderson2007-09-071-2/+3
| | | | | | Patch by Sterling Stein! llvm-svn: 41758
* Fix a regression compiling 2005-05-11-Popcount-ffs-fls with the CBE,Chris Lattner2007-08-061-1/+1
| | | | | | introduced by chandler's patch. llvm-svn: 40864
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-4/+4
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* The exception handling intrinsics return values,Duncan Sands2007-07-061-1/+9
| | | | | | | | | | | | | so must be lowered to a value, not nothing at all. Subtle point: I made eh_selector return 0 and eh_typeid_for return 1. This means that only cleanups (destructors) will be run as the exception unwinds [if eh_typeid_for returned 0 then it would be as if the first catch always matched, and the corresponding handler would be run], which is probably want you want in the CBE. llvm-svn: 37947
* Extend eh.selector to support both catches and filters.Duncan Sands2007-07-041-1/+0
| | | | | | Drop the eh.filter intrinsic. llvm-svn: 37875
* Codegen support (stripped out) for the annotate attribute.Tanya Lattner2007-06-151-0/+3
| | | | llvm-svn: 37608
* Fix a typo in bswap lowering.Lauro Ramos Venancio2007-06-111-1/+1
| | | | llvm-svn: 37544
* Make LowerCTPOP() support arbitrary bitwidth integer type.Zhou Sheng2007-06-021-10/+23
| | | | llvm-svn: 37397
* Correct the logic in LowerPartSet which cleared the bits from 0 to low-1.Zhou Sheng2007-05-261-5/+7
| | | | llvm-svn: 37331
* Un-brain-dead-ify the lowering of part set for the reverse case.Reid Spencer2007-05-151-99/+73
| | | | llvm-svn: 37071
* Give names to the final result values of the part_set computations. ThisReid Spencer2007-05-141-2/+2
| | | | | | just aids in readability and debugability of the output. No functional change. llvm-svn: 37037
* Get the size of auto arrays right, regardless of its changing size.Reid Spencer2007-05-121-11/+13
| | | | llvm-svn: 37006
* Fix problems in the PartSet lowering having to do with incorrect bit width.Reid Spencer2007-04-161-3/+5
| | | | llvm-svn: 36180
* Make sure intrinsics that are lowered to functions make the function weakReid Spencer2007-04-121-2/+2
| | | | | | | linkage so we only end up with one of them in a program. These are, after all overloaded and templatish in nature. llvm-svn: 35956
* Fix bugs in generated code for part_select and part_set so that llc doesn'tReid Spencer2007-04-121-35/+44
| | | | | | barf when CBE is run with a program that contains these intrinsics. llvm-svn: 35946
* Fix a bug in PartSet. The replacement value needs to be zext or trunc toReid Spencer2007-04-121-3/+7
| | | | | | the size of the value, not just zext. Also, give better names to two BBs. llvm-svn: 35945
* For PR1284:Reid Spencer2007-04-121-11/+193
| | | | | | Implement the "part_set" intrinsic. llvm-svn: 35938
* apparently some people commit without building the tree, or they forget toChris Lattner2007-04-101-1/+1
| | | | | | commit a LOT of files. llvm-svn: 35858
* Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.Reid Spencer2007-04-041-0/+175
| | | | llvm-svn: 35678
* For PR1297:Reid Spencer2007-04-021-1/+1
| | | | | | | Make sure that the CTPOP result is casted to i32 as the bit counting intrinsics all return i32 now (this affects CTLZ and CTTZ as well). llvm-svn: 35567
* For PR1297:Reid Spencer2007-04-011-17/+4
| | | | | | Support overloaded intrinsics bswap, ctpop, cttz, ctlz. llvm-svn: 35547
* Lower eh filter intrinsic.Jim Laskey2007-03-011-0/+1
| | | | llvm-svn: 34802
* Provide a more meaningful name.Jim Laskey2007-02-281-1/+1
| | | | llvm-svn: 34751
* Update comment.Jim Laskey2007-02-221-1/+1
| | | | llvm-svn: 34502
* Remove assertion.Jim Laskey2007-02-221-4/+1
| | | | llvm-svn: 34494
* Selection and lowering for exception handling.Jim Laskey2007-02-211-0/+5
| | | | llvm-svn: 34481
* eliminate vector-related allocationsChris Lattner2007-02-131-2/+4
| | | | llvm-svn: 34223
* Two fixes:Chris Lattner2007-02-061-38/+33
| | | | | | | | 1. Memset takes an i32 for the value to set, not i8. This was causing GCC to ICE all over the place (PR1183). 2. memcpy/memmove were not properly zext/trunc'ing the size in some cases. llvm-svn: 33970
* Fix PR1181 and CodeGen/CBackend/2007-02-05-memset.llChris Lattner2007-02-061-6/+16
| | | | llvm-svn: 33957
* Use short form of BinaryOperator create function.Reid Spencer2007-02-021-16/+16
| | | | llvm-svn: 33784
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-32/+32
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-1/+1
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Use TargetData to obtain the correct size of the "size_t" argument forReid Spencer2007-01-291-9/+24
| | | | | | | | functions like memcpy, memmove and memset. Ensure only one prototype is used for these functions and that it matches the system definition by using the appropriate type for the size argument. llvm-svn: 33618
* For PR1138:Reid Spencer2007-01-281-4/+11
| | | | | | | Force memcpy to be the 32-bit variant. Since this is only used with CBE and lli which both target 32-bit machines, this should be okay. llvm-svn: 33608
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-2/+2
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
* eliminate calls to Type::isInteger, preferring isIntegral instead.Chris Lattner2007-01-151-2/+2
| | | | llvm-svn: 33222
* llvm 2.0 doesn't support llvm.isunordered.*Chris Lattner2007-01-071-17/+0
| | | | llvm-svn: 32994
* Change the interface to Module::getOrInsertFunction to be easier to use,to ↵Chris Lattner2007-01-071-74/+39
| | | | | | | | resolve PR1088, and to help PR411. This simplifies many clients also llvm-svn: 32989
* 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
OpenPOWER on IntegriCloud