summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Verifier.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Another file I forgot.Dale Johannesen2008-09-261-1/+0
| | | | llvm-svn: 56678
* Large mechanical patch.Devang Patel2008-09-251-25/+25
| | | | | | | | | | | | | | | s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. llvm-svn: 56622
* s/ParamAttrsWithIndex/FnAttributeWithIndex/gDevang Patel2008-09-241-1/+1
| | | | llvm-svn: 56535
* s/ParameterAttributes/Attributes/gDevang Patel2008-09-231-9/+9
| | | | llvm-svn: 56513
* Use parameter attribute store (soon to be renamed) forDevang Patel2008-09-231-4/+15
| | | | | | Function Notes also. Function notes are stored at index ~0. llvm-svn: 56511
* Make safer variant of alias resolution routine to be defaultAnton Korobeynikov2008-09-091-1/+1
| | | | llvm-svn: 56005
* Extend the vcmp/fcmp LLVM IR instructions to take vectors as argumentsDan Gohman2008-09-091-4/+17
| | | | | | | | | | | | | | and, if so, to return a vector of boolean as a result; Extend the select LLVM IR instruction to allow you to specify a result type which is a vector of boolean, in which case the result will be an element-wise selection instead of choosing one vector or the other; and Update LangRef.html to describe these changes. This patch was contributed by Preston Gurd! llvm-svn: 55969
* Bitcasting two or from aggregate types is not permitted. UpdateDan Gohman2008-09-081-0/+6
| | | | | | LangRef.html, and teach the verifier to check bitcast instructions. llvm-svn: 55921
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-5/+5
| | | | llvm-svn: 55779
* plug a little memleak in verifyFunction()Nuno Lopes2008-09-021-1/+3
| | | | | | # first commit to llvm, so whatch out :) llvm-svn: 55631
* Make the verifier reject instructions which have null pointers Chris Lattner2008-08-281-0/+11
| | | | | | | for operands: rdar://6179606. no testcase, because I can't write a .ll file that is this broken ;-) llvm-svn: 55460
* Minor cleanup.Chris Lattner2008-08-271-16/+15
| | | | llvm-svn: 55423
* Diagnose uses of unsized types with the byval attribute in theDan Gohman2008-08-271-0/+11
| | | | | | verifier. See PR2711 for details. llvm-svn: 55414
* Update wording, as aggregates are now first-class.Dan Gohman2008-08-271-3/+2
| | | | llvm-svn: 55413
* remove the type checking logic already done by tblgen, just keep theChris Lattner2008-08-241-36/+10
| | | | | | | parts tblgen doesn't do (checking for constant, alloca, enclosing function has gc marker). This passes dj! :) llvm-svn: 55294
* Reverting r55227. This was causing the following failures in the regressionBill Wendling2008-08-231-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tests: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll >& /dev/null child process exited abnormally FAIL: ndbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll >& /dev/null child process exited abnormally === Summary === # of expected passes 3021 # of unexpected failures 6 # of expected failures 16 make[1]: *** [check-local] Error 1 make: *** [check] Error 2 llvm-svn: 55233
* Verify that the alignment argument to llvm.memcpy is a constantChris Lattner2008-08-231-0/+10
| | | | | | integer, PR2318. llvm-svn: 55228
* remove verification for gc intrinsic argument types. it was indented wrongChris Lattner2008-08-231-39/+0
| | | | | | and tblgen now knows intrinsic prototypes. llvm-svn: 55227
* whitespace cleanupChris Lattner2008-08-191-1/+1
| | | | llvm-svn: 54980
* Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen2008-08-171-2/+2
| | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899
* Improve support for vector casts in LLVM IR and CodeGen.Dan Gohman2008-08-141-10/+10
| | | | llvm-svn: 54784
* Add read/write support for X86's sseregparm.Dale Johannesen2008-08-131-0/+1
| | | | llvm-svn: 54744
* Fix the AsmWriter to not print extra spaces after parameter attributes.Dan Gohman2008-08-051-4/+4
| | | | llvm-svn: 54351
* Added support for overloading intrinsics (atomics) based on pointersMon P Wang2008-07-301-7/+25
| | | | | | | to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 llvm-svn: 54195
* Add vector shifts to the IR, patch by Eli Friedman.Nate Begeman2008-07-291-5/+11
| | | | | | CodeGen & Clang work coming next. llvm-svn: 54161
* Allow verifier to be run on partially materialized modules.Nate Begeman2008-07-251-1/+2
| | | | llvm-svn: 54028
* Enable first-class aggregates support.Dan Gohman2008-07-231-24/+17
| | | | | | | | | | | | Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. llvm-svn: 53941
* verify limits-fndefn.c from the GCC testsuite before theChris Lattner2008-07-181-1/+1
| | | | | | | heat death of the universe, fixing an O(N^2) problem in the size of a basic block. llvm-svn: 53749
* Use const_cast instead of a C-style cast.Dan Gohman2008-06-241-1/+1
| | | | llvm-svn: 52684
* Re-apply 52002, allowing the verifier to accept non-MRV struct returnDan Gohman2008-06-091-4/+15
| | | | | | | | types on functions, with adjustments so that it accepts both new-style aggregate returns and old-style MRV returns, including those with only a single member. llvm-svn: 52157
* Wrap MVT::ValueType in a struct to get type safetyDuncan Sands2008-06-061-8/+9
| | | | | | | | | | | | | | | | and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044
* Revert 52002.Dan Gohman2008-06-051-4/+1
| | | | llvm-svn: 52030
* Change the Verifier to support returning first class aggregrates.Matthijs Kooijman2008-06-051-1/+4
| | | | | | Add a testcase for functions returning first class aggregrates. llvm-svn: 52002
* IR support for extractvalue and insertvalue instructions. Also, beginDan Gohman2008-05-151-1/+1
| | | | | | moving toward making structs and arrays first-class types. llvm-svn: 51157
* Make PreVerifyID, IntSigsEnd, and KillSigsEnd const.Dan Gohman2008-05-141-1/+1
| | | | llvm-svn: 51088
* Change class' public PassInfo variables to by initialized with theDan Gohman2008-05-131-1/+1
| | | | | | | | | | | address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. llvm-svn: 51022
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-6/+8
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Check for validity of aliasee pointer before dereference.Anton Korobeynikov2008-05-081-1/+3
| | | | llvm-svn: 50878
* Turn StripPointerCast() into a methodAnton Korobeynikov2008-05-071-2/+2
| | | | llvm-svn: 50836
* Make StripPointerCast a common function (should we mak it method of Value ↵Anton Korobeynikov2008-05-061-3/+2
| | | | | | instead?) llvm-svn: 50775
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-251-6/+0
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* tighten up verifier checks which missed cases whereChris Lattner2008-04-231-8/+9
| | | | | | return instrs operands didn't match up with function results. llvm-svn: 50182
* Verify that the operand of a getresult instruction is a Chris Lattner2008-04-231-1/+7
| | | | | | call/invoke or undef. llvm-svn: 50129
* Make sure that intrinsics automagically get theDuncan Sands2008-04-071-0/+4
| | | | | | | right parameter attributes no matter how they are obtained. llvm-svn: 49335
* Update example to new syntax.Nick Lewycky2008-03-281-2/+8
| | | | llvm-svn: 48910
* Add explicit keywords.Dan Gohman2008-03-251-3/+3
| | | | llvm-svn: 48801
* Fix merge errorAnton Korobeynikov2008-03-221-1/+0
| | | | llvm-svn: 48687
* Add testcase for prev. commit. Minor fixesAnton Korobeynikov2008-03-221-2/+2
| | | | llvm-svn: 48686
* Aliasing chains cleanups: update langref, add check into verifierAnton Korobeynikov2008-03-221-1/+6
| | | | llvm-svn: 48685
* Reimplement the parameter attributes support, phase #1. hilights:Chris Lattner2008-03-121-53/+72
| | | | | | | | | | | | | | | | | | | | | | | 1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289
OpenPOWER on IntegriCloud