summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
* Trying that again.Gordon Henriksen2008-01-031-1/+0
| | | | llvm-svn: 45529
* Fix a compile error on Windows.Gordon Henriksen2008-01-031-0/+2
| | | | llvm-svn: 45528
* Remove the function attr cache for intrinsics. This does not maintain the Chris Lattner2008-01-031-7/+1
| | | | | | | refcount on these correctly, and can end up referring to deleted attributes. This fixes PR1881. llvm-svn: 45525
* Don't create a new ParamAttrsList (which copies the vector) just to Chris Lattner2008-01-031-6/+6
| | | | | | get a profile. llvm-svn: 45524
* move some code out of line, rearrange a bit.Chris Lattner2008-01-031-6/+10
| | | | llvm-svn: 45519
* Split param attr implementation out from Function.cpp into itsChris Lattner2008-01-023-222/+326
| | | | | | | own file. Don't #include ParameterAttributes.h into any major public header files: just move methods out of line as appropriate. llvm-svn: 45517
* remove blob of #if'd out code.Chris Lattner2008-01-021-37/+0
| | | | llvm-svn: 45512
* Fix a build issue on cygwinChris Lattner2008-01-021-6/+3
| | | | llvm-svn: 45506
* Adding C bindings for SwitchInst::addCase.Gordon Henriksen2008-01-011-0/+5
| | | | | | Patch by Bryan O'Sullivan! llvm-svn: 45481
* Add some doxygen comments to llvm-c/Core.h.Gordon Henriksen2007-12-301-1/+2
| | | | llvm-svn: 45450
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-2927-54/+54
| | | | llvm-svn: 45418
* remove attribution from lib Makefiles.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45415
* Adding bindings for target triple and data layout.Gordon Henriksen2007-12-271-0/+19
| | | | llvm-svn: 45369
* Switch the bindings to use LLVMFoldingBuilder.Gordon Henriksen2007-12-271-1/+1
| | | | llvm-svn: 45367
* 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
* Adding bindings for memory buffers and module providers. SwitchingGordon Henriksen2007-12-191-0/+39
| | | | | | to exceptions rather than variants for error handling in Ocaml. llvm-svn: 45226
* When inlining through an 'nounwind' call, mark inlinedDuncan Sands2007-12-192-0/+50
| | | | | | | | | calls 'nounwind'. It is important for correct C++ exception handling that nounwind markings do not get lost, so this transformation is actually needed for correctness. llvm-svn: 45218
* remove a dead annotationChris Lattner2007-12-181-1/+0
| | | | llvm-svn: 45163
* Rename isNoReturn to doesNotReturn, and isNoUnwind toDuncan Sands2007-12-181-3/+3
| | | | | | doesNotThrow. llvm-svn: 45160
* Don't forget to print address space qualifiers when printing out the type ↵Christopher Lamb2007-12-181-1/+4
| | | | | | table! Thanks to Gordon Henriksen for pointing this out. llvm-svn: 45147
* Remove int_x86_sse2_movl_dq. It's replaced with a string compare.Evan Cheng2007-12-181-5/+3
| | | | llvm-svn: 45140
* Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sureEvan Cheng2007-12-171-23/+68
| | | | | | it's auto-upgraded to a shufflevector instruction. llvm-svn: 45131
* 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
* C and Ocaml bindings for address spaces, for that burgeoning marketGordon Henriksen2007-12-171-5/+8
| | | | | | for Ocaml-based compilers targeting embedded devices. :) llvm-svn: 45096
* Change the PointerType api for creating pointer types. The old functionality ↵Christopher Lamb2007-12-178-18/+27
| | | | | | 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
* Make instcombine promote inline asm calls to 'nounwind'Duncan Sands2007-12-161-0/+6
| | | | | | | | | | | | | calls. Remove special casing of inline asm from the inliner. There is a potential problem: the verifier rejects invokes of inline asm (not sure why). If an asm call is not marked "nounwind" in some .ll, and instcombine is not run, but the inliner is run, then an illegal module will be created. This is bad but I'm not sure what the best approach is. I'm tempted to remove the check in the verifier... llvm-svn: 45073
* All MMX shift instructions took a <2 x i32> vector as the shift amount ↵Anders Carlsson2007-12-141-0/+68
| | | | | | parameter. Change this to be <1 x i64> instead, which matches the assembler instruction. llvm-svn: 45027
* Revert r44626, which turned off the use of readonlyDuncan Sands2007-12-121-3/+0
| | | | | | | | | | and readnone for functions with bodies because it broke llvm-gcc-4.2 bootstrap. It turns out that, because of LLVM's array_ref hack, gcc was computing pure/const attributes wrong (now fixed by turning off the gcc ipa-pure-const pass). llvm-svn: 44937
* Add (very basic) bindings for ModuleProvider.Gordon Henriksen2007-12-121-0/+14
| | | | llvm-svn: 44899
* Implement address space attribute for LLVM pointer types. Address spaces are Christopher Lamb2007-12-115-19/+42
| | | | | | | | | | | | | | | | | regions of memory that have a target specific relationship, as described in the Embedded C Technical Report. This also implements the 2007-12-11-AddressSpaces test, which demonstrates how address space attributes can be used in LLVM IR. In addition, this patch changes the bitcode signature for stores (in a backwards compatible manner), such that the pointer type, rather than the pointee type, is encoded. This permits type information in the pointer (e.g. address space) to be preserved for stores. LangRef updates are forthcoming. llvm-svn: 44858
* Teach VMCore to constant fold shufflevectors with constant operands.Chris Lattner2007-12-111-2/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to compile: #include <emmintrin.h> typedef __m128i VSInt16; typedef short vSInt16 __attribute__ ((__vector_size__ (16))); VSInt16 t3() { return (VSInt16)((vSInt16)_mm_set1_epi16(6518)); } into: _t3: movaps LCPI1_0, %xmm0 ret instead of: _t3: movl $6518, %eax movd %eax, %xmm0 pextrw $0, %xmm0, %eax xorps %xmm0, %xmm0 pinsrw $0, %eax, %xmm0 punpcklwd %xmm0, %xmm0 pshufd $0, %xmm0, %xmm0 ret llvm-svn: 44856
* significantly simplify some code, no functionality change.Chris Lattner2007-12-111-88/+23
| | | | llvm-svn: 44850
* refactor some code, no functionality change.Chris Lattner2007-12-111-94/+96
| | | | llvm-svn: 44849
* Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.Chris Lattner2007-12-101-11/+10
| | | | | | | | Reimplement the xform in Analysis/ConstantFolding.cpp where we can use targetdata to validate that it is safe. While I'm in there, fix some const correctness issues and generalize the interface to the "operand folder". llvm-svn: 44817
* Delete the CollectorNamePool if it should become empty.Gordon Henriksen2007-12-101-0/+4
| | | | llvm-svn: 44775
* Adding a collector name attribute to Function in the IR. These Gordon Henriksen2007-12-103-0/+54
| | | | | | | | | | | | | | | | | | | | methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
* Reverting dtor devirtualization patch.Gordon Henriksen2007-12-107-295/+197
| | | | | | | _sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed _sabre_: the vtable lives to fight another day llvm-svn: 44760
* fix some warnings.Chris Lattner2007-12-101-15/+12
| | | | llvm-svn: 44756
* Fix a big problem in the recent dtor refactoring work, now it passes ↵Chris Lattner2007-12-101-50/+14
| | | | | | 2007-11-19-InlineAsm.ll llvm-svn: 44755
* Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!Gordon Henriksen2007-12-097-197/+334
| | | | llvm-svn: 44747
* Commit 44487 broke bootstrap of llvm-gcc-4.2. It isDuncan Sands2007-12-051-0/+3
| | | | | | | not yet clear why, but in the meantime work around the problem by making less use of readnone/readonly info. llvm-svn: 44626
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-035-23/+57
| | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
* Small optimization of parameter attribute lookup.Duncan Sands2007-11-301-1/+1
| | | | llvm-svn: 44458
* Add a convenience method for modifying parameterDuncan Sands2007-11-301-1/+59
| | | | | | | | attributes. While there, I noticed that not all attribute methods returned a pointer-to-constant, so I fixed that. llvm-svn: 44457
* Check that there are not more attributes thanDuncan Sands2007-11-301-0/+4
| | | | | | function parameters. llvm-svn: 44452
* Small parameter attributes cleanup.Duncan Sands2007-11-291-4/+6
| | | | llvm-svn: 44433
* Add some convenience methods for querying attributes, andDuncan Sands2007-11-282-15/+18
| | | | | | use them. llvm-svn: 44403
OpenPOWER on IntegriCloud