aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix InstCombine/2007-10-31-RangeCrash.llChris Lattner2007-11-012-0/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43596 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrote backpatcher. Backpatcher now stores the "has final pointer"Ted Kremenek2007-11-012-53/+67
| | | | | | | | | | | | flag in the **key** of the backpatch map, as opposed to the mapped value which contains either the final pointer, or a pointer to a chain of pointers that need to be backpatched. The bit flag was moved to the key because we were erroneously assuming that the backpatched pointers would be at an alignment of >= 2 bytes, which obviously doesn't work for character strings. Now we just steal the bit from the key. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43595 91177308-0d34-0410-b5e6-96231b3b80d8
* Added typedef "value_type" to DenseMap (similar typedef appears in std::map).Ted Kremenek2007-11-011-5/+11
| | | | | | | | | | | | | Added method FindAndConstruct() to DenseMap, which does the same thing as operator[], except that it refers value_type& (a reference to both the key and mapped data pair). This method is useful for clients that wish to access the stored key value, as opposed to the key used to do the actual lookup (these need not always be the same). Redefined operator[] to use FindAndConstruct() (same logic). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43594 91177308-0d34-0410-b5e6-96231b3b80d8
* constified several pointer arguments for methods in the Deserializer.Ted Kremenek2007-10-312-5/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43583 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a regression in test/CodeGen/X86/2007-04-24-VectorCrash.ll introducedDan Gohman2007-10-311-4/+3
| | | | | | | | by r43510. Gracefully handle constants with vector type that aren't ConstantVector or ConstantAggregateZero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43579 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43578 91177308-0d34-0410-b5e6-96231b3b80d8
* Implemented deserialization of references. References are handledTed Kremenek2007-10-312-6/+34
| | | | | | | | | | | | | | just like pointers, except that they cannot be backpatched. This means that references are essentially non-owning pointers where the referred object must be deserialized prior to the reference being deserialized. Because of the nature of references, this ordering of objects is always possible. Fixed a bug in backpatching code (returning the backpatched pointer would accidentally include a bit flag). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43570 91177308-0d34-0410-b5e6-96231b3b80d8
* Added Serializer::EmitRef to deal with emitting arbitrary references.Ted Kremenek2007-10-312-4/+7
| | | | | | | Modified Serializer::EmitPtr to handle const pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43565 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed access control within FoldingSet for some ivars from "private"Ted Kremenek2007-10-311-1/+1
| | | | | | | to "protected". This allows iterators to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43559 91177308-0d34-0410-b5e6-96231b3b80d8
* Make ARM and X86 LowerMEMCPY identical by moving the isThumb check into ↵Rafael Espindola2007-10-314-23/+16
| | | | | | | | | | | | getMaxInlineSizeThreshold and by restructuring the X86 version. New I just have to move this to a common place :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43554 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2007-10-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43553 91177308-0d34-0410-b5e6-96231b3b80d8
* Make ARM an X86 memcpy expansion more similar to each other.Rafael Espindola2007-10-315-11/+11
| | | | | | | | | | Now both subtarget define getMaxInlineSizeThreshold and the expansion uses it. This should not change generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43552 91177308-0d34-0410-b5e6-96231b3b80d8
* Promotion of sdiv/srem/udiv/urem.Duncan Sands2007-10-311-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43551 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a newline at the end of the file.Duncan Sands2007-10-313-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43550 91177308-0d34-0410-b5e6-96231b3b80d8
* fix validationChris Lattner2007-10-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43549 91177308-0d34-0410-b5e6-96231b3b80d8
* okay, fine, make me finish this chapter. :)Chris Lattner2007-10-311-32/+977
| | | | | | | Feedback appreciated! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43548 91177308-0d34-0410-b5e6-96231b3b80d8
* add the code for expression code that we'll add, though most of theChris Lattner2007-10-311-1/+265
| | | | | | | description is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43547 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the first half of chapter 5: if/then/else. Chris Lattner2007-10-313-1/+524
| | | | | | | To come: for statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43546 91177308-0d34-0410-b5e6-96231b3b80d8
* __main is dead along with llvm-gcc3.Chris Lattner2007-10-311-25/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43545 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the skeleton of a better PHI elimination pass.Owen Anderson2007-10-312-0/+120
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542 91177308-0d34-0410-b5e6-96231b3b80d8
* Some fixes to get MachineDomTree working better.Owen Anderson2007-10-314-18/+62
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43541 91177308-0d34-0410-b5e6-96231b3b80d8
* Make i64=expand_vector_elt(v2i64) work in 32-bit mode.Dale Johannesen2007-10-312-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43535 91177308-0d34-0410-b5e6-96231b3b80d8
* At end of LSR, replace uses of now constant (as result of SplitCriticalEdge) ↵Evan Cheng2007-10-301-9/+33
| | | | | | PHI node with the constant value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43533 91177308-0d34-0410-b5e6-96231b3b80d8
* Added member function "size()" to FoldingSet to return the number ofTed Kremenek2007-10-301-1/+4
| | | | | | | nodes in the FoldingSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43531 91177308-0d34-0410-b5e6-96231b3b80d8
* New test.Devang Patel2007-10-301-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43527 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not safe to tell SplitCriticalEdge to merge identical edges. It may ↵Evan Cheng2007-10-302-11/+57
| | | | | | delete the phi instruction that's being processed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43524 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing SSE builtins: CVTPD2PI, CVTPS2PI,Dale Johannesen2007-10-302-0/+64
| | | | | | | | CVTTPD2PI, CVTTPS2PI, CVTPI2PD, CVTPI2PS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43523 91177308-0d34-0410-b5e6-96231b3b80d8
* Typo.Evan Cheng2007-10-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43511 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for folding binary operators with vector zero operands.Dan Gohman2007-10-302-19/+64
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43510 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for visibility warnings generated by gcc-4.2.Duncan Sands2007-10-302-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43500 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for expanding trunc stores. ConsiderDuncan Sands2007-10-301-62/+126
| | | | | | | | | | | | | | | | | | storing an i170 on a 32 bit machine. This is first promoted to a trunc-i170 store of an i256. On a little-endian machine this expands to a store of an i128 and a trunc-i42 store of an i128. The trunc-i42 store is further expanded to a trunc-i42 store of an i64, then to a store of an i32 and a trunc-i10 store of an i32. At this point the operand type is legal (i32) and expansion stops (legalization of the trunc-i10 needs to be handled in LegalizeDAG.cpp). On big-endian machines the high bits are stored first, and some bit-fiddling is needed in order to generate aligned stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43499 91177308-0d34-0410-b5e6-96231b3b80d8
* If a call to getTruncStore is for a normal store,Duncan Sands2007-10-301-3/+5
| | | | | | | | | offload to getStore rather than trying to handle both cases at once (the assertions for example assume the store really is truncating). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43498 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix argument types for PSLLQ, PSRLQ.Dale Johannesen2007-10-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43490 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing MMX PSUBQ.Dale Johannesen2007-10-301-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43488 91177308-0d34-0410-b5e6-96231b3b80d8
* - Bug fixes.Evan Cheng2007-10-292-10/+104
| | | | | | | - Allow icmp rewrite using an iv / stride of a smaller integer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43480 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build systemHartmut Kaiser2007-10-293-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43479 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a DAGCombiner abort on a bitcast from a scalar to a vector.Dan Gohman2007-10-292-1/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43470 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't bitcast from pointer-to-vector to pointer-to-array whenDan Gohman2007-10-291-20/+4
| | | | | | | lowering load and store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43468 91177308-0d34-0410-b5e6-96231b3b80d8
* Use an array instead of a fixed-length std::vector.Dan Gohman2007-10-291-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43467 91177308-0d34-0410-b5e6-96231b3b80d8
* Do a real assert if there is an unhandled vector instruction insteadDan Gohman2007-10-291-3/+3
| | | | | | | of just printing to cerr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43466 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable more fold (sext (load x)) -> (sext (truncate (sextload x)))Evan Cheng2007-10-295-24/+166
| | | | | | | | | transformation. Previously, it's restricted by ensuring the number of load uses is one. Now the restriction is loosened up by allowing setcc uses to be "extended" (e.g. setcc x, c, eq -> setcc sext(x), sext(c), eq). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43465 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit keywords.Dan Gohman2007-10-293-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43464 91177308-0d34-0410-b5e6-96231b3b80d8
* Update a comment to reflect the current code.Dan Gohman2007-10-291-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43463 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unused function argument.Dan Gohman2007-10-291-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43462 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2007-10-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43461 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid calling ValidStride when not all uses are addresses.Dan Gohman2007-10-291-6/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43460 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed warning concerning implicit conversion from a NULL pointerTed Kremenek2007-10-291-1/+1
| | | | | | | constant to an unsigned int. We now just directly assign the literal 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43459 91177308-0d34-0410-b5e6-96231b3b80d8
* update testcaseChris Lattner2007-10-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43452 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid doing something dumb like rewriting using a 64-bit iv in 32-bit mode.Evan Cheng2007-10-291-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43446 91177308-0d34-0410-b5e6-96231b3b80d8
* add a note.Chris Lattner2007-10-291-0/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43444 91177308-0d34-0410-b5e6-96231b3b80d8