summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Instructions.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!Gordon Henriksen2007-12-091-32/+18
| | | | llvm-svn: 44747
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-031-1/+12
| | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
* Small parameter attributes cleanup.Duncan Sands2007-11-291-4/+6
| | | | llvm-svn: 44433
* Add some convenience methods for querying attributes, andDuncan Sands2007-11-281-8/+18
| | | | | | use them. llvm-svn: 44403
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-6/+38
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* Add support for vectors to int <-> float casts.Nate Begeman2007-11-171-2/+14
| | | | llvm-svn: 44204
* fix typoChris Lattner2007-10-181-1/+1
| | | | llvm-svn: 43129
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-041-73/+0
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* Update InvokeInst to work like CallInstDavid Greene2007-08-271-22/+0
| | | | llvm-svn: 41506
* sink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.Chris Lattner2007-08-241-2/+5
| | | | | | | This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst both have an out-of-line virtual method to home the class. llvm-svn: 41371
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-6/+7
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* Add constructor overloads for LoadInst and StoreInst that insert at theDan Gohman2007-07-181-0/+20
| | | | | | end of a BasicBlock and have an alignment parameter. llvm-svn: 40016
* Enhance BinaryOperator::isNot to support vector not.Chris Lattner2007-06-151-1/+5
| | | | llvm-svn: 37585
* Update comments to say "vector" instead of "packed".Dan Gohman2007-05-111-10/+10
| | | | llvm-svn: 36995
* add a GEP helper functionChris Lattner2007-04-271-0/+11
| | | | llvm-svn: 36515
* PR400 work phase 1. Add attributed load/store instructions for ↵Christopher Lamb2007-04-221-0/+42
| | | | | | volatile/align to LLVM. llvm-svn: 36349
* For PR1136:Reid Spencer2007-04-221-0/+22
| | | | | | | Add reference counting to ParamAttrsList and make use of it in Function, CallInst and InvokeInst classes. llvm-svn: 36346
* For PR1146:Reid Spencer2007-04-221-2/+0
| | | | | | | | Make ParamAttrsList objects unique. You can no longer directly create or destroy them but instead must go through the ParamAttrsList::get() interface. llvm-svn: 36327
* Revert Christopher Lamb's load/store alignment changes.Reid Spencer2007-04-211-42/+0
| | | | llvm-svn: 36309
* add support for alignment attributes on load/store instructionsChristopher Lamb2007-04-211-0/+42
| | | | llvm-svn: 36301
* add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.Chris Lattner2007-04-141-0/+16
| | | | | | Writing it twice in the same day was too much for me. llvm-svn: 35978
* Fix a bug where ICmpInst objects instantiated directly with a name wouldReid Spencer2007-04-111-2/+2
| | | | | | | not retain that name. Not noticed because AsmParser always sets name after construction. However, llvm2cpp noticed. llvm-svn: 35903
* For PR1146:Reid Spencer2007-04-091-0/+6
| | | | | | | | | | * Add ParamAttrs to InvokeInst class too. * Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0 * Destruct the ParamAttrs in Call/Invoke destructors to avoid memory leaks. This will change when ParamAttrsList is uniquified but needs to be correct until then. llvm-svn: 35824
* For PR1146:Reid Spencer2007-04-091-0/+4
| | | | | | | * Add ParamAttrList pointers to Function and CallInst. * Move the implementation of ParamAttrList from Type.cpp to Function.cpp llvm-svn: 35818
* Change uses of Function::front to Function::getEntryBlock for readability.Dan Gohman2007-03-221-1/+1
| | | | llvm-svn: 35265
* Use modern variable name. ConstantUnsignedInt is long since dead. NoReid Spencer2007-03-011-2/+2
| | | | | | functional change with this patch. llvm-svn: 34806
* Provide an ICmpInst::makeConstantRange to generate a ConstantRange valueReid Spencer2007-02-281-0/+36
| | | | | | | from a predicate and an APInt. This is removed from ConstantRange class so that ConstantRange doesn't have to depend on lib/VMCore. llvm-svn: 34760
* Refactor the setName stuff, moving it down the inheritance hierarchy, toChris Lattner2007-02-241-67/+197
| | | | | | solve a crash in -instcombine -debug that was hit while investigating PR1217 llvm-svn: 34544
* For PR1195:Reid Spencer2007-02-151-1/+1
| | | | | | | Change use of "packed" term to "vector" in comments, strings, variable names, etc. llvm-svn: 34300
* For PR1195:Reid Spencer2007-02-151-31/+31
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* Switch UnaryOperators to default to passing names up by const char* when ↵Chris Lattner2007-02-131-8/+46
| | | | | | | | possible. This speeds up bcreading by 1.5%. llvm-svn: 34233
* eliminate instruction ctors that take vectors.Chris Lattner2007-02-131-37/+0
| | | | llvm-svn: 34228
* Add invokeinst and callinst ctors that don't take vectors.Chris Lattner2007-02-131-11/+47
| | | | llvm-svn: 34214
* remove some dead methods.Chris Lattner2007-02-131-25/+8
| | | | llvm-svn: 34213
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-1/+8
| | | | | | | | | | | | 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
* silence some warnings when assertions are disabled.Chris Lattner2007-02-011-2/+8
| | | | llvm-svn: 33747
* Fix build breakage by using correct arguments to getIndexedType in theReid Spencer2007-01-311-6/+10
| | | | | | GEP constructors. llvm-svn: 33726
* implement the new GEP instruction ctors.Chris Lattner2007-01-311-5/+23
| | | | llvm-svn: 33708
* Revise APIs for creating constantexpr GEPs to not require the use of vectors.Chris Lattner2007-01-311-5/+6
| | | | | | This allows us to eliminate many temporary vectors, and theirassociated malloc/free pairs. llvm-svn: 33692
* Fix an assertion message.Reid Spencer2007-01-261-1/+1
| | | | llvm-svn: 33519
* For PR970:Reid Spencer2007-01-211-30/+14
| | | | | | | Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! llvm-svn: 33415
* For PR1117:Reid Spencer2007-01-171-29/+29
| | | | | | Expose the previously hidden checkCast function as CastInst::castIsValid. llvm-svn: 33282
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-33/+33
| | | | | | | | | 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
* teach VMCore to accept i1 add's and shiftsChris Lattner2007-01-151-10/+10
| | | | llvm-svn: 33223
* For PR1064:Reid Spencer2007-01-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-111-3/+3
| | | | llvm-svn: 33076
* For PR1043:Zhou Sheng2007-01-111-5/+5
| | | | | | | Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. llvm-svn: 33073
* For PR950:Reid Spencer2006-12-311-26/+12
| | | | | | Change signed integer type names to unsigned equivalents. llvm-svn: 32780
* For PR950:Reid Spencer2006-12-231-74/+63
| | | | | | | | 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
* Remove the createInferredCast methods now that their last uses have beenReid Spencer2006-12-181-14/+0
| | | | | | removed. All casting is now explicit and not inferred by VMCore. llvm-svn: 32655
OpenPOWER on IntegriCloud