aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Instructions.h
AgeCommit message (Collapse)Author
2007-12-09Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!Gordon Henriksen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Rather than having special rules like "intrinsics cannotDuncan Sands
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-28Add some convenience methods for querying attributes, andDuncan Sands
use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27Fix PR1146: parameter attributes are longer part ofDuncan Sands
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-22add some static icmpinst predicates.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44283 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17Updated VC++ build system.Hartmut Kaiser
Silenced some VC warnings. I'm getting linker errors, though: unresolved externals: llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *) and llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *) Where are these defined? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24Remove an unnecessary static_cast.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42261 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-15Fix PR1666, SPASS with the CBE and 254.gap with the CBE.Chris Lattner
GCC optimizes away things like ptr < NULL to false. To "fix" this, have the CBE emit casts of pointers to intptr_t when doing relational pointer comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-04Update GEP constructors to use an iterator interface to fixDavid Greene
GLIBCXX_DEBUG issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41697 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-29Silence implicit 64->32-bit conversion warnings.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41567 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27Update InvokeInst to work like CallInstDavid Greene
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41506 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-24sink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.Chris Lattner
This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst both have an out-of-line virtual method to home the class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41371 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-06remove #if 0 code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40879 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-01New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene
indexing an empty std::vector. Updates to all clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-20Simplify the logic for setVolatile.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40130 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-18Add constructor overloads for LoadInst and StoreInst that insert at theDan Gohman
end of a BasicBlock and have an alignment parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40016 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06Add some accessors to improve consistency.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37957 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11Simplify BranchInst::getSuccessor, avoiding a conditional operator.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36991 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27add a GEP helper functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22PR400 phase 1 implementation feedback.Christopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36354 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22PR400 work phase 1. Add attributed load/store instructions for ↵Christopher Lamb
volatile/align to LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22For PR1136:Reid Spencer
Add reference counting to ParamAttrsList and make use of it in Function, CallInst and InvokeInst classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21Revert Christopher Lamb's load/store alignment changes.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21The expression "SubclassData = (SubclassData & ~1) | (V) ? 1 : 0;" does not ↵Jeff Cohen
do what was intended! | has higher precedence than ?. Caught by Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21add support for alignment attributes on load/store instructionsChristopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.Chris Lattner
Writing it twice in the same day was too much for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35978 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09For PR1146:Reid Spencer
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35824 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-09For PR1146:Reid Spencer
* Add ParamAttrList pointers to Function and CallInst. * Move the implementation of ParamAttrList from Type.cpp to Function.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35818 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28Provide an ICmpInst::makeConstantRange to generate a ConstantRange valueReid Spencer
from a predicate and an APInt. This is removed from ConstantRange class so that ConstantRange doesn't have to depend on lib/VMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34760 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24Refactor the setName stuff, moving it down the inheritance hierarchy, toChris Lattner
solve a crash in -instcombine -debug that was hit while investigating PR1217 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15make mayWriteToMemory a non-virtual functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34334 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15For PR1195:Reid Spencer
Change use of "packed" term to "vector" in comments, strings, variable names, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15For PR1195:Reid Spencer
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13Switch UnaryOperators to default to passing names up by const char* when ↵Chris Lattner
possible. This speeds up bcreading by 1.5%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34233 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13eliminate instruction ctors that take vectors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34228 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13Add invokeinst and callinst ctors that don't take vectors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34214 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13remove some dead methods.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34213 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12add #includeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34190 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02Changes to support making the shift instructions be true BinaryOperators.Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31implement the new GEP instruction ctors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33708 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31Revise APIs for creating constantexpr GEPs to not require the use ofChris Lattner
vectors. This allows us to eliminate many temporary vectors, and their associated malloc/free pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33691 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-14add accessorsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33207 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-29Doxygenify a comment.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32765 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-23For PR950:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27For PR950:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20For PR950:Reid Spencer
First in a series of patches to convert SetCondInst into ICmpInst and FCmpInst using only two opcodes and having the instructions contain their predicate value. Nothing uses these classes yet. More patches to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08For PR950:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31542 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-05Add insertelement/extractelement helper ctors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30750 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-03clean up use of 'explicit'. This is PR934.Chris Lattner
Patch contributed by Kevin Sopp! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30701 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-18Fix findCaseDest to return null when BB is both the default dest and oneNick Lewycky
of the numeric cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30468 91177308-0d34-0410-b5e6-96231b3b80d8