summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Verifier.cpp
Commit message (Collapse)AuthorAgeFilesLines
* eliminate a use of Instruction::getPrev(), patch by Gabor Greif in 2005.Chris Lattner2007-04-171-1/+2
| | | | llvm-svn: 36197
* For PR1284:Reid Spencer2007-04-121-2/+3
| | | | | | Implement the "part_set" intrinsic. llvm-svn: 35938
* unbreak the build :(Chris Lattner2007-04-101-1/+1
| | | | llvm-svn: 35857
* Fix build problem.Jeff Cohen2007-04-101-1/+1
| | | | llvm-svn: 35856
* Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.Reid Spencer2007-04-041-0/+2
| | | | llvm-svn: 35678
* For PR1297:Reid Spencer2007-04-011-7/+42
| | | | | | | | | | | | 1. Clear up confusion between "GotBits" and "ExpectBits". GotBits is the type actually provided. ExpectedBits is the type expected for the intrinsics. Before this patch, it was reversed! 2. Implement checks for overloaded intrinsics. This involves computing the suffix expected and making sure the suffix matches the function name. It also includes some intrinsic-specific checks such as ensuring that the bswap parameter and result are the same width and an even number of bytes. llvm-svn: 35540
* 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-6/+6
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* Switch ValueSymbolTable to use StringMap<Value*> instead of ↵Chris Lattner2007-02-121-21/+0
| | | | | | | | | std::map<std::string, Value*> as its main datastructure. There are many improvements yet to be made, but this speeds up opt --std-compile-opts on 447.dealII by 7.3%. llvm-svn: 34193
* convert some vectors to smallvector.Chris Lattner2007-02-101-2/+3
| | | | llvm-svn: 34145
* speed up the verifier 8.5% by using a smallvector instead of vector.Chris Lattner2007-02-101-2/+5
| | | | llvm-svn: 34144
* Change an std::set to a SmallPtrSet. This speeds up the verifier onChris Lattner2007-02-101-1/+2
| | | | | | 447.dealII from 1.27s to 0.86s. llvm-svn: 34143
* Support var arg intrinsics.Jim Laskey2007-02-061-0/+4
| | | | llvm-svn: 33962
* For PR411:Reid Spencer2007-02-051-16/+14
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-14/+15
| | | | | | | | | | | | 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-6/+6
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Propagate changes from my local tree. This patch includes:Anton Korobeynikov2007-01-281-5/+5
| | | | | | | | | | | | | | | | | | | | | | 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-17/+17
| | | | | | | | | 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-7/+7
| | | | llvm-svn: 33223
* For PR1064:Reid Spencer2007-01-121-8/+33
| | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | llvm-svn: 33076
* For PR411:Reid Spencer2007-01-061-4/+8
| | | | | | | | | Take an incremental step towards type plane elimination. This change separates types from values in the symbol tables by finally making use of the TypeSymbolTable class. This yields more natural interfaces for dealing with types and unclutters the SymbolTable class. llvm-svn: 32956
* Do not allow packed types for icmp and fcmp instructions.Reid Spencer2007-01-041-5/+2
| | | | llvm-svn: 32865
* For PR950:Reid Spencer2006-12-311-1/+1
| | | | | | Change signed integer type names to unsigned equivalents. llvm-svn: 32780
* For PR950:Reid Spencer2006-12-231-4/+0
| | | | | | | | 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
* Fix Regression/Verifier/invoke-1.llChris Lattner2006-12-201-2/+7
| | | | llvm-svn: 32722
* Revert the previous patch which was incorrect. This unbreaks eon, but rebreaksChris Lattner2006-12-201-1/+2
| | | | | | invoke-1.ll llvm-svn: 32718
* Remove a useless statement.Reid Spencer2006-12-181-1/+0
| | | | llvm-svn: 32660
* For PR1042:Reid Spencer2006-12-181-1/+1
| | | | | | | Fix a thinko. We want to check the second case if the first cast *didn't* trigger. llvm-svn: 32657
* Fix PR1042, by tightening up the subtle rules with invoke value use.Chris Lattner2006-12-161-3/+37
| | | | llvm-svn: 32624
* only check non-external functionsChris Lattner2006-12-131-6/+6
| | | | llvm-svn: 32530
* Reject attempts to define intrinsics. This fixes PR1047 andChris Lattner2006-12-131-0/+7
| | | | | | Regression/Verifier/2006-12-12-IntrinsicDefine.ll llvm-svn: 32529
* Don't use <sstream> in Streams.h but <iosfwd> instead.Bill Wendling2006-12-071-0/+1
| | | | llvm-svn: 32340
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-071-3/+2
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* Remove the 'printname' argument to WriteAsOperand. It is always true, andChris Lattner2006-12-061-1/+1
| | | | | | passing false would make the asmprinter fail anyway. llvm-svn: 32264
* Changed to using LLVM streams.Bill Wendling2006-11-281-3/+3
| | | | llvm-svn: 31955
* For PR950:Reid Spencer2006-11-271-0/+175
| | | | | | | | | | 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
* For PR950:Reid Spencer2006-11-201-0/+29
| | | | | | | | 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. llvm-svn: 31867
* For PR950:Reid Spencer2006-10-201-1/+1
| | | | | | | | 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
* Added some eye-candy for Subtarget type checkingAnton Korobeynikov2006-09-171-0/+1
| | | | | | Added X86 StdCall & FastCall calling conventions. Codegen will follow. llvm-svn: 30446
* Adding dllimport, dllexport and external weak linkage types.Anton Korobeynikov2006-09-141-2/+10
| | | | | | | | | DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. llvm-svn: 30374
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29911
* For PR780:Reid Spencer2006-07-261-7/+8
| | | | | | | | | | | | 1. Move IncludeFile.h to System library 2. Move IncludeFile.cpp to System library 3. #1 and #2 required to prevent cyclic library dependencies for libSystem 4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h 5. Add IncludeFile support to various lib/System classes. 6. Add new lib/System classes to LinkAllVMCore.h All this in an attempt to pull in lib/System to what's required for VMCore llvm-svn: 29287
* Fix PR826, testcase here: Regression/Verifier/2006-07-11-StoreStruct.llChris Lattner2006-07-111-2/+8
| | | | llvm-svn: 29112
* Change the verifier to never throw an exception. Instead verifyModule ↵Chris Lattner2006-07-061-8/+7
| | | | | | canoptionally return the string error, which is an easier api for clients touse anyway. llvm-svn: 29017
* Use hidden visibility to reduce the sizes of some .o files. This chops 60K ↵Chris Lattner2006-06-281-1/+3
| | | | | | off a release llvm-dis. llvm-svn: 28969
* csret functions can be varargs (as can target cc's). Verify restrictions onChris Lattner2006-05-191-3/+18
| | | | | | csret functions. llvm-svn: 28405
* remove dead varChris Lattner2006-05-141-1/+0
| | | | llvm-svn: 28287
* Use the isValidOperands helper instead of duplicating checking codeChris Lattner2006-04-081-16/+7
| | | | llvm-svn: 27524
OpenPOWER on IntegriCloud