summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Verifier.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Check struct return type first. Devang Patel2008-03-051-6/+7
| | | | llvm-svn: 47922
* s/isReturnStruct()/hasStructRetAttr()/gDevang Patel2008-03-031-0/+3
| | | | llvm-svn: 47857
* If a function uses multive values in ret instruction then itDevang Patel2008-03-031-3/+0
| | | | | | is returning a struct value. llvm-svn: 47848
* Fix PR2113 by verifying allocations.Chris Lattner2008-03-011-3/+6
| | | | llvm-svn: 47792
* Add assert to check return type.Devang Patel2008-02-261-5/+5
| | | | llvm-svn: 47637
* To support multiple return values, now ret instruction supports multiple ↵Devang Patel2008-02-231-2/+10
| | | | | | operands instead of one aggregate operand. llvm-svn: 47508
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-1/+1
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Use isa<> instead of getTypeID() to check StructType.Devang Patel2008-02-211-6/+5
| | | | llvm-svn: 47460
* Let invoke return aggregate value.Devang Patel2008-02-211-2/+3
| | | | llvm-svn: 47425
* Let function call return aggregate.Devang Patel2008-02-211-6/+20
| | | | | | Now, we have very first multiple return value testcase! llvm-svn: 47424
* What if functions can return aggregate values ?Devang Patel2008-02-201-2/+5
| | | | | | One small step towards multiple return value support. llvm-svn: 47406
* Verifier should use Assert1 instead of assert.Devang Patel2008-02-201-2/+2
| | | | llvm-svn: 47394
* Use isValidOperands() to verify GetResultInst.Devang Patel2008-02-201-1/+2
| | | | llvm-svn: 47387
* Add GetResultInst. First step for multiple return value support.Devang Patel2008-02-191-0/+6
| | | | llvm-svn: 47348
* Expand ParameterAttributes to 32 bits (in preparationDale Johannesen2008-02-191-11/+11
| | | | | | | for adding alignment info, not there yet). Clean up interfaces to reference ParameterAttributes consistently. llvm-svn: 47342
* check that terminators only occur at the end of a block. This catches theChris Lattner2008-02-091-0/+5
| | | | | | | | common problem of putting two terminators in the same block. I can't write a testcase for this because the .ll parser rejects this before the verifier can, but this can occur when generating IR. llvm-svn: 46900
* Be more liberal in what parameter attributes areDuncan Sands2008-01-121-31/+45
| | | | | | allowed on the vararg arguments of a call. llvm-svn: 45909
* Do not allow attributes beyond a function's lastDuncan Sands2008-01-111-7/+25
| | | | | | | | | | | | 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
* Allow parameter attributes on varargs function parameters.Evan Cheng2008-01-111-4/+3
| | | | llvm-svn: 45850
* Small cleanup for handling of type/parameter attributeDuncan Sands2008-01-071-4/+4
| | | | | | incompatibility. llvm-svn: 45704
* The transform that tries to turn calls to bitcast functions intoDuncan Sands2008-01-061-16/+4
| | | | | | | | | direct calls bails out unless caller and callee have essentially equivalent parameter attributes. This is illogical - the callee's attributes should be of no relevance here. Rework the logic, which incidentally fixes a crash when removed arguments have attributes. llvm-svn: 45658
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Noting and enforcing that GC intrinsics are valid only within aGordon Henriksen2007-12-251-28/+36
| | | | | | | | | function with GC. This will catch the error when the inliner inlines a function with GC into a caller with no GC. llvm-svn: 45350
* Adjusting verification of "llvm.gc*" intrinsic prototypes to matchGordon Henriksen2007-12-251-26/+33
| | | | | | LangRef. llvm-svn: 45349
* Get the verifier to check attributes on calls as wellDuncan Sands2007-12-211-74/+97
| | | | | | | | | | 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
* Make invokes of inline asm legal. Teach codegenDuncan Sands2007-12-171-1/+1
| | | | | | | | how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). llvm-svn: 45108
* Change the PointerType api for creating pointer types. The old functionality ↵Christopher Lamb2007-12-171-2/+2
| | | | | | of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082
* Make it clear in the LangRef that allocation instructions only operated on ↵Christopher Lamb2007-12-171-0/+8
| | | | | | the generic address space. Implement support in the verifier for ensuring this is true. llvm-svn: 45080
* Check that there are not more attributes thanDuncan Sands2007-11-301-0/+4
| | | | | | function parameters. llvm-svn: 44452
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-3/+3
| | | | | | | | | | | | 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
* Fix PR1816. If a bitcast of a function only exists because of aDuncan Sands2007-11-251-30/+7
| | | | | | | | | trivial difference in function attributes, allow calls to it to be converted to direct calls. Based on a patch by Török Edwin. While there, move the various lists of mutually incompatible parameters etc out of the verifier and into ParameterAttributes.h. llvm-svn: 44315
* Rename the 'const' parameter attribute to 'readnone',Duncan Sands2007-11-221-2/+2
| | | | | | | and the 'pure' parameter attribute to 'readonly'. Names suggested by DannyB. llvm-svn: 44273
* Add support for vectors to int <-> float casts.Nate Begeman2007-11-171-8/+40
| | | | llvm-svn: 44204
* I discover array_lengthof, thanks to gabor on #llvm.Duncan Sands2007-11-141-2/+1
| | | | llvm-svn: 44139
* Simplify the attribute verification code.Duncan Sands2007-11-141-34/+24
| | | | llvm-svn: 44116
* Add pure/const attributes. Documentation will follow.Anton Korobeynikov2007-11-141-4/+13
| | | | llvm-svn: 44109
* Don't barf on empty basic blocks. Do not rely on assertDuncan Sands2007-11-011-9/+21
| | | | | | | | | | doing something - this needs to work for release builds too. I chose to just abort rather than following the fancy logic of abortIfBroken, because (1) it is a pain to do otherwise, and (2) nothing is going to work if the module is this broken. llvm-svn: 43611
* remove verifier command line option: this should be part of the API, notChris Lattner2007-11-011-11/+0
| | | | | | a command line optn. llvm-svn: 43603
* Now with less tabs!Owen Anderson2007-11-011-5/+5
| | | | llvm-svn: 43601
* Add a preverifier pass to check that every basic block ends in a terminator, ↵Owen Anderson2007-10-311-1/+20
| | | | | | so that we don't segfault when verifying invalid code. llvm-svn: 43578
* I am not sure this is a good idea to be an option, but rename the option forChris Lattner2007-10-291-1/+1
| | | | | | now. It conflicts with clang's -pedantic flag. llvm-svn: 43431
* Add 'pedantic' mode to verifier rejecting syntactically valid, but 'bad' due ↵Anton Korobeynikov2007-10-281-3/+14
| | | | | | to other reasons code llvm-svn: 43424
* Check that the second parameter of init_trampolineDuncan Sands2007-09-291-2/+6
| | | | | | | can be resolved to a function. This is required for codegen and used by instcombine. llvm-svn: 42469
* reject things like "declare internal @foo"Chris Lattner2007-09-191-2/+11
| | | | llvm-svn: 42140
* Incorporating review feedback for GC verifier patch.Gordon Henriksen2007-09-181-11/+5
| | | | llvm-svn: 42087
* Fix for PR1633: Verifier doesn't fully verify GC intrinsicsGordon Henriksen2007-09-171-0/+36
| | | | | | | | | | | | | | LLVM now enforces the following prototypes for the write barriers: <ty>* @llvm.gcread(<ty2>*, <ty>**) void @llvm.gcwrite(<ty>*, <ty2>*, <ty>**) And for @llvm.gcroot, the first stack slot is verified to be an alloca or a bitcast of an alloca. Fixes test/CodeGen/Generic/GC/lower_gcroot.ll, which violated these. llvm-svn: 42051
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-041-1/+1
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* use a nicer accessor.Chris Lattner2007-08-181-1/+1
| | | | llvm-svn: 41165
* Fix the verification for overloaded intrinsic types. Check that they areDan Gohman2007-08-161-6/+19
| | | | | | what they're supposed to be before using them. llvm-svn: 41130
* Add MVT::fAny for overloading intrinsics on floating-point types.Dan Gohman2007-08-161-0/+14
| | | | llvm-svn: 41128
OpenPOWER on IntegriCloud