summaryrefslogtreecommitdiffstats
path: root/llvm/test/Verifier
Commit message (Collapse)AuthorAgeFilesLines
...
* These tests used intrinsics with the wrong prototype. They weren't caught ↵Chris Lattner2012-05-271-2/+2
| | | | | | | | | because the old verifier just checked that something "was a pointer", but not that the pointee was correct. llvm-svn: 157544
* Remove support for the special 'fast' value for fpmath accuracy for the moment.Duncan Sands2012-04-161-12/+0
| | | | llvm-svn: 154850
* Make it possible to indicate relaxed floating point requirements at the IR levelDuncan Sands2012-04-161-6/+18
| | | | | | | | | through the use of 'fpmath' metadata. Currently this only provides a 'fpaccuracy' value, which may be a number in ULPs or the keyword 'fast', however the intent is that this will be extended with additional information about NaN's, infinities etc later. No optimizations have been hooked up to this so far. llvm-svn: 154822
* Rename "fpaccuracy" metadata to the more generic "fpmath". That's because I'mDuncan Sands2012-04-142-31/+31
| | | | | | | | | thinking of generalizing it to be able to specify other freedoms beyond accuracy (such as that NaN's don't have to be respected). I'd like the 3.1 release (the first one with this metadata) to have the more generic name already rather than having to auto-upgrade it in 3.2. llvm-svn: 154744
* Express the number of ULPs in fpaccuracy metadata as a real rather than aDuncan Sands2012-04-101-0/+31
| | | | | | rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. llvm-svn: 154387
* First part of PR12251. Add documentation and verifier support for the rangeRafael Espindola2012-03-242-0/+100
| | | | | | metadata. llvm-svn: 153359
* Replace all instances of dg.exp file with lit.local.cfg, since all tests are ↵Eli Bendersky2012-02-162-3/+1
| | | | | | | | run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
* Teach the verifier to reject all non-constant arguments to the secondChandler Carruth2011-12-121-0/+16
| | | | | | argument of the cttz and ctlz intrinsics. llvm-svn: 146360
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-092-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
* more tests not making the jump into the brave new world.Chris Lattner2011-07-091-4/+0
| | | | llvm-svn: 134820
* stop accepting begin/end around function bodies in the .ll parser, this ↵Chris Lattner2011-06-171-3/+2
| | | | | | isn't pascal anymore. llvm-svn: 133244
* manually upgrade a bunch of tests to modern syntax, and remove some thatChris Lattner2011-06-171-7/+0
| | | | | | are either unreduced or only test old syntax. llvm-svn: 133228
* Reject unrepresentable pointer types in intrinsics. Fixes PR7316.Nick Lewycky2010-08-081-0/+21
| | | | llvm-svn: 110541
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-041-1/+1
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
* Revert r100191 since it breaks objc in clang Mon P Wang2010-04-021-1/+1
| | | | llvm-svn: 100199
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-021-1/+1
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
* Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.Bob Wilson2010-03-301-1/+1
| | | | llvm-svn: 99948
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-301-1/+1
| | | | | | | | | memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
* Delete useless trailing semicolons.Dan Gohman2010-01-051-1/+1
| | | | llvm-svn: 92740
* Remove obsolete -f flags.Dan Gohman2009-08-256-6/+6
| | | | llvm-svn: 79992
* Dan noticed that the verifier wasn't thoroughly checking uses ofDuncan Sands2009-05-293-0/+50
| | | | | | invoke results (see the testcases). Tighten up the checking. llvm-svn: 72586
* Revert this. There's no way to verifiy indirect calls, and an optimizer can turnTorok Edwin2009-05-221-11/+0
| | | | | | | indirect call into direct call, thus the verifier would reject something it previously accepted. llvm-svn: 72249
* Verify that calling conventions match function prototype.Torok Edwin2009-05-221-0/+11
| | | | | | | | | This only rejects mismatches between target specific calling convention and C/LLVM specific calling convention. There are too many fastcc/C, coldcc/cc42 mismatches in the testsuite, these are not reject by the verifier. llvm-svn: 72248
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-023-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. llvm-svn: 61558
* Correct this error message.Nick Lewycky2008-11-151-0/+5
| | | | llvm-svn: 59370
* Diagnose uses of unsized types with the byval attribute in theDan Gohman2008-08-271-1/+2
| | | | | | verifier. See PR2711 for details. llvm-svn: 55414
* Verify that the alignment argument to llvm.memcpy is a constantChris Lattner2008-08-231-0/+11
| | | | | | integer, PR2318. llvm-svn: 55228
* For all RUN lines starting with "not", redirect stderr to /dev/null so testsMatthijs Kooijman2008-06-109-9/+9
| | | | | | | | | | don't fail when (expected) error output is produced. This fixes 17 tests. While I was there, I also made all RUN lines of the form "not llvm-as..." a bit more consistent, they now all redirect stderr and stdout to /dev/null and use input redirect to read their input. llvm-svn: 52174
* Make structs and arrays first-class types, and add assemblyDan Gohman2008-05-231-2/+4
| | | | | | | | | and bitcode support for the extractvalue and insertvalue instructions and constant expressions. Note that this does not yet include CodeGen support. llvm-svn: 51468
* Eliminate questionable syntax for stdin redirection. This probably also ↵Gabor Greif2008-05-205-5/+5
| | | | | | speeds things up a bit. llvm-svn: 51357
* sabre brings to my attention that the 'tr' suffix is also obsoleteGabor Greif2008-05-201-1/+1
| | | | llvm-svn: 51349
* Rename the last test with .llx extension to .ll, resolve duplicate test by ↵Gabor Greif2008-05-201-1/+1
| | | | | | renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too. llvm-svn: 51328
* Revert the change from r51157 inDan Gohman2008-05-161-3/+3
| | | | | | | | test/Verifier/2002-11-05-GetelementptrPointers.ll, which was incorrect. Instead, fix getIndexedType to not follow pointer types, as PointerType is a subclass of CompositeType. llvm-svn: 51171
* IR support for extractvalue and insertvalue instructions. Also, beginDan Gohman2008-05-151-3/+3
| | | | | | moving toward making structs and arrays first-class types. llvm-svn: 51157
* Add testcase for prev. commit. Minor fixesAnton Korobeynikov2008-03-221-0/+6
| | | | llvm-svn: 48686
* All of these tests had out of date syntax and were never even running throughNick Lewycky2008-03-167-28/+26
| | | | | | | | | llvm-upgrade because nobody noticed them failing. Update to use new syntax and actually check for the right failure by looking at the error message. llvm-svn: 48417
* Functions are allowed to return structures. (Note that this test never failed.)Nick Lewycky2008-03-161-7/+0
| | | | llvm-svn: 48416
* Regressions/ is long gone.Nick Lewycky2008-03-161-1/+1
| | | | llvm-svn: 48415
* Remove llvm-upgrade and update tests.Tanya Lattner2008-03-102-17/+18
| | | | llvm-svn: 48137
* Fix PR2113 by verifying allocations.Chris Lattner2008-03-011-0/+8
| | | | llvm-svn: 47792
* Fix this test.Chris Lattner2008-03-011-7/+5
| | | | llvm-svn: 47791
* update this test to pass with duncan's change.Chris Lattner2008-01-221-1/+1
| | | | llvm-svn: 46246
* This test is now the same as byval-1.ll, so remove it.Duncan Sands2008-01-141-2/+0
| | | | llvm-svn: 45960
* Test that byval cannot be used with pointers toDuncan Sands2008-01-141-1/+2
| | | | | | types with no size. llvm-svn: 45959
* We now allow byval on fairly general pointer types.Duncan Sands2008-01-141-1/+1
| | | | llvm-svn: 45956
* Be more liberal in what parameter attributes areDuncan Sands2008-01-121-2/+2
| | | | | | allowed on the vararg arguments of a call. llvm-svn: 45909
* Do not allow attributes beyond a function's lastDuncan Sands2008-01-111-0/+10
| | | | | | | | | | | | parameter, even if it is a varargs function. Do allow attributes on the varargs part of a call, but not beyond the last argument. Only allow selected attributes to be on the varargs part of a call (currently only 'byval' is allowed). The reasoning here is that most attributes, eg inreg, simply make no sense here. llvm-svn: 45887
* Get the verifier to check attributes on calls as wellDuncan Sands2007-12-211-0/+10
| | | | | | | | | | as on functions. Make it verify invokes and not just ordinary calls. As a (desired) side-effect, it is no longer legal to have call attributes on arguments that are being passed to the varargs part of a varargs function (llvm-as drops them on the floor anyway). llvm-svn: 45286
* Use not instead of ignore when an exit status is expected to alwaysDan Gohman2007-12-111-1/+1
| | | | | | be non-zero. llvm-svn: 44866
* Change &| to |&.Dan Gohman2007-11-272-2/+2
| | | | llvm-svn: 44345
OpenPOWER on IntegriCloud