summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling2008-11-131-0/+4
| | | | llvm-svn: 59202
* Added support for the following definition of shufflevector Mon P Wang2008-11-103-25/+26
| | | | | | <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> llvm-svn: 58964
* Use utohex_buffer instead of utohexstr to avoid creating a temporaryChris Lattner2008-11-101-1/+2
| | | | | | string in the .ll and .s printers. llvm-svn: 58962
* Fix a use of an invalid iterator when -debug-pass=Details is used.Dan Gohman2008-11-061-1/+1
| | | | llvm-svn: 58816
* Add comments to function.Bill Wendling2008-11-051-0/+6
| | | | llvm-svn: 58781
* Silence unused variable warnings.Devang Patel2008-11-051-1/+3
| | | | llvm-svn: 58743
* fix memory leak in pass manager when adding an analysis pass that already ↵Nuno Lopes2008-11-041-1/+3
| | | | | | | | existed. as pass manager takes ownership of the added passes, it has to delete the pass if it isnt added to the pass list tweak the opt tool so that it doesnt access a Pass after the ownership was taken by the pass manager llvm-svn: 58730
* - Add a "getOrInsertGlobal" method to the Module class. This acts similarly toBill Wendling2008-11-041-0/+22
| | | | | | | | | | "getOrInsertFunction" in that it either adds a new declaration of the global and returns it, or returns the current one -- optionally casting it to the correct type. - Use the new getOrInsertGlobal in the stack protector code. - Use "splitBasicBlock" in the stack protector code. llvm-svn: 58727
* Duncan pointed out that the Extended case in getTypeForMVT couldDan Gohman2008-11-041-7/+2
| | | | | | be considerably simplified. llvm-svn: 58703
* Add a return statement to suppress warnings in NDEBUG builds.Dan Gohman2008-11-041-0/+1
| | | | llvm-svn: 58702
* Add some asserts to verify MVT invariant assumptions.Dan Gohman2008-11-041-0/+2
| | | | llvm-svn: 58701
* Fix unused variable warnings.Devang Patel2008-11-032-0/+13
| | | | llvm-svn: 58653
* Add C bindings for extractvalue and insertvalue. Patch by Frits van Bommel!Dan Gohman2008-11-031-0/+26
| | | | llvm-svn: 58650
* Change how extended types are represented in MVTs. Instead of fiddlingDan Gohman2008-11-031-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | bits, use a union of a SimpleValueType enum and a regular Type*. This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits. In most cases, this doesn't add significant overhead. There are places in codegen that use arrays of MVTs, so these are now larger, but they're small in common cases. This eliminates restrictions on the size of integer types and vector types that can be represented in codegen. As the included testcase demonstrates, it's now possible to codegen very large add operations. There are still some complications with using very large types. PR2880 is still open so they can't be used as return values on normal targets, there are no libcalls defined for very large integers so operations like multiply and divide aren't supported. This also introduces a minimal tablgen Type library, capable of handling IntegerType and VectorType. This will allow parts of TableGen that don't depend on using SimpleValueType values to handle arbitrary integer and vector types. llvm-svn: 58623
* Reverting back 58505. Will commit it once I have the bc reader/writer/docsSanjiv Gupta2008-11-011-2/+1
| | | | | | ready. llvm-svn: 58547
* For some targets pointer and int are 16-bits. Allow 16-bits as a valid indexSanjiv Gupta2008-10-311-1/+2
| | | | | | in such cases. llvm-svn: 58505
* Reuse PrintEscapedString for printing names in .llDaniel Dunbar2008-10-281-28/+21
| | | | | | | | - One functionality change, '\\' in a name is now printed as a hex escape instead of "\\\\". This is consistent with other users of PrintEscapedString. llvm-svn: 58343
* Fix an obvious copy/pasto.Nick Lewycky2008-10-271-4/+4
| | | | llvm-svn: 58231
* Fix type-o in ExprMapKeyType::operator ==(). The "&&" was missing.Bill Wendling2008-10-261-1/+1
| | | | | | Patch by Frits van Bommel! llvm-svn: 58175
* Related to PR2911, reject as invalid non-pointer GC roots.Gordon Henriksen2008-10-251-2/+4
| | | | llvm-svn: 58143
* Move Print*Pass to use raw_ostream.Daniel Dunbar2008-10-221-11/+16
| | | | llvm-svn: 57946
* CMake: Turned some libraries into partially linked objects. CorrectedOscar Fuentes2008-10-221-1/+1
| | | | | | names of LLVMCore and ARMCodeGen. llvm-svn: 57943
* CMake: updated lib/VMCore/CMakeLists.txtOscar Fuentes2008-10-211-0/+1
| | | | llvm-svn: 57937
* Privatize PrintModulePass and PrintFunctionPass and addDaniel Dunbar2008-10-212-8/+96
| | | | | | | createPrintModulePass and createPrintFunctionPass. - So clients who compile w/o RTTI can use them. llvm-svn: 57933
* Keep track of *which* input constraint matches an outputChris Lattner2008-10-171-2/+7
| | | | | | | constraint. Reject asms where an output has multiple input constraints tied to it. llvm-svn: 57687
* Introduce a typing refinenement on tagged dataGabor Greif2008-10-161-5/+3
| | | | | | | | | | | | using the 'volatile' qualifier. This should not have any operational consequences on code, because tags should always be stripped off (giving a non-volatile pointer) before dereferencing. The new qualification is there to catch some attempts to use tagged pointers in a context where an untagged pointer is appropriate. Notably this approach does not catch dereferencing of tagged pointers, but helps in separating the two concepts a bit. llvm-svn: 57641
* Verify prefetch arguments, PR2576.Chris Lattner2008-10-161-0/+8
| | | | llvm-svn: 57626
* apply Eli's patch for PR2165 and provide a testcase.Chris Lattner2008-10-161-0/+6
| | | | llvm-svn: 57625
* Fix Instruction::isIdenticalTo and isSameOperationAs to recognizeDan Gohman2008-10-161-6/+57
| | | | | | | additional information in Loads, Stores, Calls, Invokes, InsertValueInsts, and ExtractValueInsts. llvm-svn: 57620
* Correct the name of isTrapping in comments.Dan Gohman2008-10-151-1/+1
| | | | llvm-svn: 57606
* Fix a missing space after the return type in invoke statements.Dan Gohman2008-10-151-3/+3
| | | | | | This fixes PR2894. llvm-svn: 57589
* Prevent assert when using '"' in names (via hexadecimal).Daniel Dunbar2008-10-141-2/+1
| | | | | | Update LangRef to mention \xx quoting in names. llvm-svn: 57538
* Change getLLVMName to use raw_ostream & PrintLLVMName.Daniel Dunbar2008-10-141-59/+15
| | | | | | | | - Avoids duplicated quotification code. - Remove QuoteNameIfNeeded. - No functionality change. llvm-svn: 57537
* Unbreak DbgStopPointInst::getFileName().Daniel Dunbar2008-10-111-1/+1
| | | | llvm-svn: 57373
* Add a "loses information" return value to APFloat::convertDale Johannesen2008-10-093-13/+23
| | | | | | | and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329
* Rename APFloat::convertToAPInt to bitcastToAPInt toDale Johannesen2008-10-092-3/+3
| | | | | | | make it clearer what the function does. No functional change. llvm-svn: 57325
* Add <cstdio> include where needed by gcc-4.4.Duncan Sands2008-10-081-0/+1
| | | | | | Patch by Samuel Tardieu. llvm-svn: 57291
* Remove interfaces implemented by dead pass from the list of available passes.Devang Patel2008-10-061-7/+17
| | | | | | Patch By Matthijs Kooijman. llvm-svn: 57202
* 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
* add a new form of Type::dump that takes a module for type names,Chris Lattner2008-10-011-0/+8
| | | | | | patch provided by Tomas Lindquist Olsen! llvm-svn: 56929
* Make some implicit conversions explicit, to avoid compiler warnings.Dan Gohman2008-10-011-2/+2
| | | | llvm-svn: 56927
* Factorize code: remove variants of "strip offDuncan Sands2008-10-011-8/+21
| | | | | | | | | | | pointer bitcasts and GEP's", and centralize the logic in Value::getUnderlyingObject. The difference with stripPointerCasts is that stripPointerCasts only strips GEPs if all indices are zero, while getUnderlyingObject strips GEPs no matter what the indices are. llvm-svn: 56922
* Don't prepend a space character for constants in Value::print.Dan Gohman2008-10-011-1/+1
| | | | llvm-svn: 56920
* Support inreg, zext and sext as return value attributes.Devang Patel2008-09-291-7/+9
| | | | llvm-svn: 56801
OpenPOWER on IntegriCloud