summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Verifier.cpp
Commit message (Collapse)AuthorAgeFilesLines
* The PreVerifier pass preserves everything. In practice, thisChris Lattner2008-12-011-0/+4
| | | | | | | prevents the passmgr from adding yet-another domtree invocation for Verifier if there is already one live. llvm-svn: 60326
* reapply Sanjiv's patch to genericize memcpy/memset/memmove to take anChris Lattner2008-11-211-6/+3
| | | | | | arbitrary integer width for the count. llvm-svn: 59823
* Revert r59802. It was breaking the build of llvm-gcc:Bill Wendling2008-11-211-3/+6
| | | | | | | | | | | | | | | | | | | | | g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic' make[3]: *** [llvm-convert.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2 llvm-svn: 59809
* Make mem[cpy,move,set] intrinsics overloaded.Sanjiv Gupta2008-11-211-6/+3
| | | | llvm-svn: 59802
* Use stripPointerCasts when checking for AllocaInsts for the stackprotector ↵Bill Wendling2008-11-191-1/+1
| | | | | | intrinsic. llvm-svn: 59614
* Use dyn_cast instead of cast.Bill Wendling2008-11-191-1/+1
| | | | llvm-svn: 59577
* Match an element of the return type if it returns a structure.Bill Wendling2008-11-191-2/+12
| | | | llvm-svn: 59576
* Verify that the second parameter of the stacprotector intrinsic is an allocaBill Wendling2008-11-181-0/+5
| | | | | | instruction. llvm-svn: 59563
* Correct this error message.Nick Lewycky2008-11-151-1/+1
| | | | llvm-svn: 59370
* Modify the intrinsics pattern to separate out the "return" types from theBill Wendling2008-11-131-12/+27
| | | | | | | | | | "parameter" types. An intrinsic can now return a multiple return values like this: def add_with_overflow : Intrinsic<[llvm_i32_ty, llvm_i1_ty], [LLVMMatchType<0>, LLVMMatchType<0>]>; llvm-svn: 59237
* Refactor the code that does the type checking for intrinsics.Bill Wendling2008-11-131-115/+132
| | | | llvm-svn: 59228
* Added support for the following definition of shufflevector Mon P Wang2008-11-101-5/+6
| | | | | | <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
* Related to PR2911, reject as invalid non-pointer GC roots.Gordon Henriksen2008-10-251-2/+4
| | | | llvm-svn: 58143
* Verify prefetch arguments, PR2576.Chris Lattner2008-10-161-0/+8
| | | | llvm-svn: 57626
* fix an incorrect and extremely confusing error messageChris Lattner2008-10-051-1/+1
| | | | llvm-svn: 57123
* Fix function attribute verification check.Devang Patel2008-10-031-6/+5
| | | | | | Thanks Duncan! llvm-svn: 57029
* Verify function attributes.Devang Patel2008-10-031-1/+5
| | | | llvm-svn: 57020
* Remove redundant check.Devang Patel2008-10-021-9/+0
| | | | llvm-svn: 56960
* Attributes noinline alwaysinline are incompatibleDevang Patel2008-10-011-0/+17
| | | | llvm-svn: 56939
* Now Attributes are divided in three groupsDevang Patel2008-09-261-1/+1
| | | | | | | | | | | | | - return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. This patch requires corresponding changes in llvm-gcc and clang. llvm-svn: 56704
* 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
OpenPOWER on IntegriCloud