summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* - Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into aEvan Cheng2008-06-253-15/+45
| | | | | | | | shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. llvm-svn: 52740
* Add support for expanding PPC 128 bit floats.Duncan Sands2008-06-254-9/+215
| | | | | | | | | | | | | | | | | | | | For this it is convenient to permit floats to be used with EXTRACT_ELEMENT, so I tweaked things to allow that. I also added libcalls for ppcf128 to i32 forms of FP_TO_XINT, since they exist in libgcc and this case can certainly occur (and does occur in the testsuite) - before the i64 libcall was being used. Also, the XINT_TO_FP result seemed to be wrong when the argument is an i128: the wrong fudge factor was added (the i32 and i64 cases were handled directly, but the i128 code fell through to some generic softening code which seemed to think it was i64 to f32!). So I fixed it by adding a fudge factor that I found in my breakfast cereal. llvm-svn: 52739
* Implement JIT support for global aliases, patch by David Chisnall!Chris Lattner2008-06-251-0/+2
| | | | llvm-svn: 52738
* Restore DeadArgElim back to 52570. It's breaking 447.dealII.Evan Cheng2008-06-251-527/+374
| | | | llvm-svn: 52736
* Switch the PPC backend and target-independent JIT to use the libsystem Chris Lattner2008-06-253-32/+5
| | | | | | | InvalidateInstructionCache method instead of calling through a hook on the JIT. This is a host feature, not a target feature. llvm-svn: 52734
* fix compilation errors in my previous patchChris Lattner2008-06-251-4/+5
| | | | llvm-svn: 52733
* Add a new InvalidateInstructionCache method to sys::Memory.Chris Lattner2008-06-251-6/+31
| | | | llvm-svn: 52731
* SimpleInstructionSelector is here no more.Dan Gohman2008-06-251-1/+0
| | | | llvm-svn: 52725
* Add/complete support for integer and floatDuncan Sands2008-06-253-38/+282
| | | | | | | | select_cc and friends. This code could be factorized a bit but I'm not sure that it's worth it. llvm-svn: 52724
* Pacify gcc-4.3.Duncan Sands2008-06-251-1/+1
| | | | llvm-svn: 52723
* Remove the OrigVT member from AtomicSDNode, as it is redundant withDan Gohman2008-06-255-29/+25
| | | | | | the base SDNode's VTList. llvm-svn: 52722
* Added MemOperands to Atomic operations since Atomics touches memory.Mon P Wang2008-06-2515-414/+500
| | | | | | | | Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub llvm-svn: 52706
* Fix a (false) warning on darwin.Matthijs Kooijman2008-06-251-1/+3
| | | | llvm-svn: 52705
* Fix some cosmetics in comments.Matthijs Kooijman2008-06-251-6/+6
| | | | llvm-svn: 52704
* - Use O(1) check of basic block size limit.Evan Cheng2008-06-251-4/+8
| | | | | | - Avoid speculatively execute vector ops. llvm-svn: 52703
* Fix PR2488, a case where we deleted stack restores too aggressively.Chris Lattner2008-06-251-4/+9
| | | | llvm-svn: 52702
* Enable two-address remat by default.Evan Cheng2008-06-252-36/+34
| | | | llvm-svn: 52701
* Use push_back rather than operator[], which is incorrect in this cases. ↵Owen Anderson2008-06-251-1/+1
| | | | | | | | Unfortunately, this slow the testcase down a little bit, but only marginally. llvm-svn: 52700
* Append to the ActiveTimers std::vector before looking at the timer insteadDan Gohman2008-06-241-1/+1
| | | | | | | | of after, so that any reallocation it does doesn't get counted for the pass being timed. This probably doesn't account for a timing discrepancy I was looking into, but I'm fixing it anyway. llvm-svn: 52693
* Add v2f32 (MMX) type to X86. Support is primitive:Dale Johannesen2008-06-244-8/+29
| | | | | | | load,store,call,return,bitcast. This is enough to make call and return work. llvm-svn: 52691
* In ConstantArray::getAsString(), we know the size of the resultant string in ↵Owen Anderson2008-06-241-1/+2
| | | | | | | | advance so we can pre-allocate it and just fill in the entries. This improves the time for the AsmPrinter on InstructionCombining.cpp from 0.4248s to 0.3370s. llvm-svn: 52690
* Use SmallVector instead of std::vector for a minor compile time improvement.Owen Anderson2008-06-241-11/+11
| | | | llvm-svn: 52689
* Revert 52645, the loop unroller changes. It caused a regression in 252.eon.Dan Gohman2008-06-241-120/+103
| | | | llvm-svn: 52688
* Fix a typo in a comment.Dan Gohman2008-06-241-1/+1
| | | | llvm-svn: 52687
* Use const_cast instead of a C-style cast.Dan Gohman2008-06-241-1/+1
| | | | llvm-svn: 52684
* Commit the new DeadArgElim pass again, this time with the gcc bootstrap ↵Matthijs Kooijman2008-06-241-374/+525
| | | | | | | | failures fixed. Also add a testcase to reproduce the gcc bootstrap failure in very much reduced form. llvm-svn: 52677
* Rename a few variables to be more consistent.Matthijs Kooijman2008-06-241-3/+3
| | | | llvm-svn: 52672
* If it's determined safe, remat MOV32r0 (i.e. xor r, r) and others as it is ↵Evan Cheng2008-06-241-11/+53
| | | | | | instead of using the longer MOV32ri instruction. llvm-svn: 52670
* Fix some signed vs. unsigned issues in array and vector handling.Dan Gohman2008-06-241-10/+10
| | | | llvm-svn: 52664
* Add a note about a potential PIC optimization.Dan Gohman2008-06-241-0/+7
| | | | llvm-svn: 52663
* Fixes for being compiled PIC on Linux. This isn't the mostDan Gohman2008-06-241-3/+10
| | | | | | | general solution possible, but it's a fairly simple one. Based on a patch from the OpenGTL project! llvm-svn: 52662
* A brief survey of priority_queue usage in the tree turned this upDan Gohman2008-06-231-1/+1
| | | | | | as a questionable case, but the code isn't actually needed. llvm-svn: 52657
* This situation can occur:Bill Wendling2008-06-231-2/+17
| | | | | | | | | | | | | | | | | | | ,------. | | | v | t2 = phi ... t1 ... | | | v | t1 = ... | ... = ... t1 ... | | `------' where there is a use in a PHI node that's a predecessor to the defining block. We don't want to mark all predecessors as having the value "alive" in this case. Also, the assert was too restrictive and didn't handle this case. llvm-svn: 52655
* Use the new PriorityQueue in ScheduleDAGList too, which alsoDan Gohman2008-06-231-19/+3
| | | | | | needs arbitrary-element removal. llvm-svn: 52654
* Use use_empty() instead of getNumUses(), avoiding a use list traversal.Dan Gohman2008-06-231-1/+1
| | | | llvm-svn: 52651
* Use getMBBEndIdx rather than assuming that the end is right after the last ↵Owen Anderson2008-06-231-1/+1
| | | | | | instruction in the block. llvm-svn: 52649
* Fix spelling and grammar in a comment.Dan Gohman2008-06-231-2/+2
| | | | llvm-svn: 52648
* Revamp the loop unroller, extending it to correctly update PHI nodesDan Gohman2008-06-231-103/+120
| | | | | | | | in the presence of out-of-loop users of in-loop values and the trip count is not a known multiple of the unroll count, and to be a bit simpler overall. This fixes PR2253. llvm-svn: 52645
* Remove option used to debug stack coloring bugs. It's no longer needed since ↵Evan Cheng2008-06-231-6/+1
| | | | | | stack coloring is now bug free. llvm-svn: 52644
* Disable PRE. It's breaking bootstrapping.Evan Cheng2008-06-231-1/+1
| | | | llvm-svn: 52643
* Move a DenseMap's declaration outside of a loop, and just callDan Gohman2008-06-231-1/+2
| | | | | | | clear() on each iteration. This avoids allocating and deallocating all of DenseMap's memory on each iteration. llvm-svn: 52642
* Instead of adding an isSS field to LiveInterval to denote stack slot. Use ↵Evan Cheng2008-06-232-5/+4
| | | | | | top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval. llvm-svn: 52639
* First step to fix PR2088. Implement routine to compute the Wojciech Matyjewicz2008-06-231-7/+48
| | | | | | | | multiplicative inverse of a given number. Modify udivrem to allow input and output pairs of arguments to overlap. Patch is based on the work by Chandler Carruth. llvm-svn: 52638
* Update the .cvs files.Dan Gohman2008-06-233-102/+106
| | | | llvm-svn: 52637
* Fix the types for NumElements variables, and add a commentDan Gohman2008-06-231-7/+9
| | | | | | explaining why empty array constants use ValID::createUndef(). llvm-svn: 52636
* Tighten the conditions under which we do PRE, remove some unneeded code, and ↵Owen Anderson2008-06-231-12/+10
| | | | | | | | correct our preserved analyses list, since we do now change the CFG by splitting critical edges during PRE. llvm-svn: 52631
* minor tidying of comments.Chris Lattner2008-06-231-12/+14
| | | | llvm-svn: 52630
* Remove two convenience constructors because they're now private, and theDan Gohman2008-06-231-18/+0
| | | | | | private implementation doesn't really need the convenience. llvm-svn: 52629
* Use std::copy instead of a loop.Dan Gohman2008-06-231-3/+1
| | | | llvm-svn: 52628
* More changes from Chris' review: simplify getIndices and avoidDan Gohman2008-06-231-8/+6
| | | | | | copying its return value. llvm-svn: 52627
OpenPOWER on IntegriCloud