summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
* Now with fewer extraneous semicolons!Owen Anderson2010-10-073-6/+6
| | | | llvm-svn: 115996
* Add initialization routines for VMCore.Owen Anderson2010-10-071-2/+14
| | | | llvm-svn: 115963
* Next step on the getting-rid-of-static-ctors train: begin adding per-libraryOwen Anderson2010-10-071-0/+5
| | | | | | | initialization functions that initialize the set of passes implemented in that library. Add C bindings for these functions as well. llvm-svn: 115927
* Another step towards getting rid of static ctors for pass registration: have ↵Owen Anderson2010-10-051-1/+0
| | | | | | | | | | INITIALIZE_PASS AND INITIALIZE_AG_PASS expand to an initializeMyPass() function (in additional to the extant static ctors). Eventually, these will be called from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used at the moment) will be handed off to a PassRegistry for ownership. llvm-svn: 115703
* The pshufw instruction came about in MMX2 when SSE was introduced. Don't placeBill Wendling2010-10-041-7/+37
| | | | | | | | | it in with the SSSE3 instructions. Steward! Could you place this chair by the aft sun deck? I'm trying to get away from the Astors. They are such boors! llvm-svn: 115552
* Cleanup. Get rid of extraneous variable.Bill Wendling2010-10-031-3/+2
| | | | llvm-svn: 115453
* Attempt to outwit overly smart compiler.Dale Johannesen2010-10-011-0/+1
| | | | llvm-svn: 115251
* Massive rewrite of MMX: Dale Johannesen2010-09-303-57/+506
| | | | | | | | | | | | | | | | | | | The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. llvm-svn: 115243
* Allow llvm.gcroot to work with non-pointer allocas.Talin2010-09-301-2/+6
| | | | llvm-svn: 115198
* When an MDNode changes to become identical to another MDNode,Dan Gohman2010-09-281-5/+4
| | | | | | | | | | | delete the MDNode that changed, rather than the other MDNode. This is less work, because it doesn't require the changed node to be re-inserted into the uniquing map and it doesn't require the is-function-local flag to be recomputed. Also, it avoids trouble when the existing node is part of a complicated data structure. llvm-svn: 114996
* Scope a varible inside an if statement, to make it clear thatDan Gohman2010-09-281-3/+1
| | | | | | it's not used afterwards. llvm-svn: 114986
* Make this code 65-bit clean.Dan Gohman2010-09-271-1/+1
| | | | llvm-svn: 114828
* Add ret instruction to PTX backendChe-Liang Chiou2010-09-252-0/+8
| | | | llvm-svn: 114788
* Allow the PassRegistry mutex to be lazily initialized, and clean up the ↵Owen Anderson2010-09-161-10/+10
| | | | | | global namespace at the same time. llvm-svn: 114131
* Do not expose the locking for the PassRegistry in the header. Be careful toOwen Anderson2010-09-161-1/+8
| | | | | | synchronize any method that might lazily initialize the pImpl. llvm-svn: 114130
* Fix a threaded LLVM bug due the need for operator= on reference counted ↵Owen Anderson2010-09-161-0/+1
| | | | | | | | | AttrListImpl's. It might be possible to implement this very carefully to allow a lock-free implementation while still avoiding illegal interleavings, but I haven't been able to figure one out. llvm-svn: 114046
* Since PassRegistry is currently a shared global object, it needs locking. ↵Owen Anderson2010-09-151-0/+7
| | | | | | | | | While it might intuitively seem that all the setup of this class currently happens at static initialization time, this misses the fact that some later events can cause mutation of the PassRegistrationListeners list, and thus cause race issues. llvm-svn: 114036
* Add x86MMX a few more places.Dale Johannesen2010-09-151-0/+1
| | | | llvm-svn: 113914
* Remove the experimental AliasAnalysis::getDependency interface, whichDan Gohman2010-09-141-1/+8
| | | | | | | | | | | isn't a good level of abstraction for memdep. Instead, generalize AliasAnalysis::alias and related interfaces with a new Location class for describing a memory location. For now, this is the same Pointer and Size as before, plus an additional field for a TBAA tag. Also, introduce a fixed MD_tbaa metadata tag kind. llvm-svn: 113858
* When a function-local value with function-local metadata uses gets RAUWed with aDan Gohman2010-09-141-0/+18
| | | | | | | | | | | non-function-local value, it may result in the metadata no longer needing to be function-local. Check for this condition, and clear the isFunctionLocal flag, if it's still in the uniquing map, since any node in the uniquing map needs to have an accurate function-local flag. Also, add an assert to help catch problematic cases. llvm-svn: 113828
* Minimize #includes in a top-level header.Owen Anderson2010-09-131-0/+1
| | | | llvm-svn: 113772
* Silence some constructor ordering warnings.Eric Christopher2010-09-131-3/+3
| | | | llvm-svn: 113767
* Added skeleton for inline asm multiple alternative constraint support.John Thompson2010-09-131-10/+60
| | | | llvm-svn: 113766
* Add X86 MMX type to bitcode and Type.Dale Johannesen2010-09-106-0/+22
| | | | | | | (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".) llvm-svn: 113618
* Use StringRef which performs the "early exit" when compared against a constantBill Wendling2010-09-101-6/+1
| | | | | | string. llvm-svn: 113615
* Early exit with simple checks.Bill Wendling2010-09-101-3/+6
| | | | llvm-svn: 113603
* Auto-upgrade the magic ".llvm.eh.catch.all.value" global toBill Wendling2010-09-101-0/+14
| | | | | | "llvm.eh.catch.all.value". Only the name needs to be changed. llvm-svn: 113600
* MDNodes are not Constants.Dan Gohman2010-09-091-5/+0
| | | | llvm-svn: 113539
* Print invalid metadata references as <badref>, for consistency withDan Gohman2010-09-091-2/+10
| | | | | | regular value references. llvm-svn: 113538
* Clarify the ownership model of LLVMContext and Module. Namely, contexts ownOwen Anderson2010-09-084-0/+24
| | | | | | | modules are instantiated in them. If the context is deleted, all of its owned modules are also deleted. llvm-svn: 113374
* Fix PR7972, in which the PassRegistry was being leaked. As part of this,Owen Anderson2010-09-071-35/+16
| | | | | | | switch to using a ManagedStatic for the global PassRegistry instead of a ManagedCleanup, and fix a destruction ordering bug this exposed. llvm-svn: 113283
* Add an MVT::x86mmx type. It will take the place of all current MMX vector types.Bill Wendling2010-09-071-0/+1
| | | | llvm-svn: 113261
* Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce ↵Owen Anderson2010-09-071-26/+64
| | | | | | | | #include clutter and exposing internal details. llvm-svn: 113252
* Replace NEON vabdl, vaba, and vabal intrinsics with combinations of theBob Wilson2010-09-031-12/+50
| | | | | | | | vabd intrinsic and add and/or zext operations. In the case of vaba, this also avoids the need for a DAG combine pattern to combine vabd with add. Update tests. Auto-upgrade the old intrinsics. llvm-svn: 112941
* lets get crazy and name the header file the exact class name,Chris Lattner2010-09-021-1/+1
| | | | | | not a scrunched version of it. llvm-svn: 112904
* reapply 112894:Chris Lattner2010-09-021-12/+4
| | | | | | | | | | | | | | | | Remove #uses comments from functions: they we're padded out to column 50 and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. llvm-svn: 112899
* revert patch, need to update clang tests tooChris Lattner2010-09-021-4/+12
| | | | llvm-svn: 112895
* Remove #uses comments from functions: they we're padded out to column 50Chris Lattner2010-09-021-12/+4
| | | | | | | | | | | | | | | and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. llvm-svn: 112894
* Print the number of uses of a function in the .ll since it can be informativeDuncan Sands2010-09-021-2/+2
| | | | | | and there seems to be no reason not to. llvm-svn: 112812
* Remove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply,Bob Wilson2010-09-011-21/+52
| | | | | | | add, and subtract operations with zero-extended or sign-extended vectors. Update tests. Add auto-upgrade support for the old intrinsics. llvm-svn: 112773
* Add comments explaining why it's not necessary to include theDan Gohman2010-08-301-1/+6
| | | | | | is-function-local flag in metadata uniquing bits. llvm-svn: 112528
* Remove NEON vmovn intrinsic, replacing it with vector truncate operations.Bob Wilson2010-08-301-1/+6
| | | | | | Auto-upgrade the old intrinsic and update tests. llvm-svn: 112507
* Remove NEON vaddl, vaddw, vsubl, and vsubw intrinsics. Instead, use llvmBob Wilson2010-08-291-2/+32
| | | | | | | IR add/sub operations with one or both operands sign- or zero-extended. Auto-upgrade the old intrinsics. llvm-svn: 112416
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-2810-362/+17
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* zap dead codeChris Lattner2010-08-281-10/+0
| | | | llvm-svn: 112349
* Add alignment arguments to all the NEON load/store intrinsics.Bob Wilson2010-08-271-1/+66
| | | | | | | Update all the tests using those intrinsics and add support for auto-upgrading bitcode files with the old versions of the intrinsics. llvm-svn: 112271
* Don't include the is-function-local bit in the FoldingSetNodeIDDan Gohman2010-08-241-15/+15
| | | | | | | | for MDNodes, since this information is effectively implied by the operands. This allow allows the code to avoid doing a recursive is-it-really-function-local check in some cases. llvm-svn: 111995
* Verify that a non-uniqued non-temporary MDNode is not deleted viaDan Gohman2010-08-231-1/+3
| | | | | | MDNode::deleteTemporary. llvm-svn: 111853
* Now that PassInfo and Pass::ID have been separated, move the rest of the ↵Owen Anderson2010-08-231-3/+3
| | | | | | passes over to the new registration API. llvm-svn: 111815
* Verify the predicates on icmp/fcmp. Suggested by Jeff Yasskin!Nick Lewycky2010-08-221-6/+15
| | | | llvm-svn: 111787
OpenPOWER on IntegriCloud