aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Test case for 3-address conversion.Evan Cheng2007-10-051-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42664 91177308-0d34-0410-b5e6-96231b3b80d8
* Commute x86 cmove instructions by swapping the operands and change the conditionEvan Cheng2007-10-053-240/+335
| | | | | | | | to its inverse. Testing this as llcbeta git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42661 91177308-0d34-0410-b5e6-96231b3b80d8
* This is done.Evan Cheng2007-10-051-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42656 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable convertToThreeAddress for X86 by default.Evan Cheng2007-10-054-12/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42655 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in updating dominance frontier after loop Devang Patel2007-10-053-29/+151
| | | | | | | | | unswitch when frontier includes basic blocks that are not inside loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42654 91177308-0d34-0410-b5e6-96231b3b80d8
* INC64_32r -> LEA64_32r is better than INC64_32r -> LEA32r, but it still canEvan Cheng2007-10-051-8/+4
| | | | | | | cause performance degradation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42653 91177308-0d34-0410-b5e6-96231b3b80d8
* In 64-bit mode, avoid using leal with 32-bit 32-bit address size, e.g.Evan Cheng2007-10-051-89/+98
| | | | | | | leal 1(%ecx), %edi, which requires 67H prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42647 91177308-0d34-0410-b5e6-96231b3b80d8
* First round of ppc long double. call/return andDale Johannesen2007-10-057-42/+240
| | | | | | | | | | basic arithmetic works. Rename RTLIB long double functions to distinguish different flavors of long double; the lib functions have different names, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42644 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to convert more 64-bit instructions to 3-address instructions.Evan Cheng2007-10-052-8/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42642 91177308-0d34-0410-b5e6-96231b3b80d8
* ADC and SBB uses EFLAGS.Evan Cheng2007-10-052-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42640 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark count method const.Chris Lattner2007-10-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42639 91177308-0d34-0410-b5e6-96231b3b80d8
* Change a few more spaces to tabs in assembly output.Dan Gohman2007-10-051-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42638 91177308-0d34-0410-b5e6-96231b3b80d8
* Change a space to a tab in the assembly output of a .globl directiveDan Gohman2007-10-051-1/+1
| | | | | | | for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42637 91177308-0d34-0410-b5e6-96231b3b80d8
* Legalize support for MUL_LOHI and DIVREM.Dan Gohman2007-10-051-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42636 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2007-10-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42635 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide names for MUL_LOHI and DIVREM operators.Dan Gohman2007-10-051-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42634 91177308-0d34-0410-b5e6-96231b3b80d8
* SMUL_LOHI and UMUL_LOHI are commutative.Dan Gohman2007-10-051-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42633 91177308-0d34-0410-b5e6-96231b3b80d8
* Define target-indepenent SDNode types for multiply and divide thatDan Gohman2007-10-051-0/+9
| | | | | | | produce two results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42632 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in comment.Duncan Sands2007-10-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42631 91177308-0d34-0410-b5e6-96231b3b80d8
* Testing convertToThreeeAddress as X86 llcbeta.Evan Cheng2007-10-051-5/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42630 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix intersectWithComplement bug noticed by Curtis DunhamDaniel Berlin2007-10-051-4/+2
| | | | | | | Optimize |= case for empty RHS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42629 91177308-0d34-0410-b5e6-96231b3b80d8
* New test case.Evan Cheng2007-10-051-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42628 91177308-0d34-0410-b5e6-96231b3b80d8
* Chain producing nodes cannot be moved, not chain reading nodes.Evan Cheng2007-10-051-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42627 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops. Didn't mean to leave this in.Evan Cheng2007-10-051-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42626 91177308-0d34-0410-b5e6-96231b3b80d8
* If a node that defines a physical register that is expensive to copy. TheEvan Cheng2007-10-053-48/+170
| | | | | | | | | | scheduler will try a number of tricks in order to avoid generating the copies. This may not be possible in case the node produces a chain value that prevent movement. Try unfolding the load from the node before to allow it to be moved / cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42625 91177308-0d34-0410-b5e6-96231b3b80d8
* Added storeRegToAddr, loadRegFromAddr, and unfoldMemoryOperand's.Evan Cheng2007-10-052-114/+331
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42624 91177308-0d34-0410-b5e6-96231b3b80d8
* Not needed any more.Evan Cheng2007-10-051-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42623 91177308-0d34-0410-b5e6-96231b3b80d8
* Forgot these.Evan Cheng2007-10-052-0/+72
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42622 91177308-0d34-0410-b5e6-96231b3b80d8
* - Added a few target hooks to generate load / store instructions from / to anyEvan Cheng2007-10-0511-68/+488
| | | | | | | | | address (not just from / to frameindexes). - Added target hooks to unfold load / store instructions / SDNodes into separate load, data processing, store instructions / SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42621 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a variant of getTargetNode() that takes a vector of MVT::ValueType.Evan Cheng2007-10-052-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42620 91177308-0d34-0410-b5e6-96231b3b80d8
* Silence a warning.Evan Cheng2007-10-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42619 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the previous bug a slightly different way (by modifying how find_next works)Daniel Berlin2007-10-041-9/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42613 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix off by one error in iteratorDaniel Berlin2007-10-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42612 91177308-0d34-0410-b5e6-96231b3b80d8
* Support Objective C++ too.Bill Wendling2007-10-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42610 91177308-0d34-0410-b5e6-96231b3b80d8
* Added testcase for creation of metadata with null pointers.Bill Wendling2007-10-041-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42609 91177308-0d34-0410-b5e6-96231b3b80d8
* add a note.Chris Lattner2007-10-041-0/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42607 91177308-0d34-0410-b5e6-96231b3b80d8
* un-XFAIL this test.Bill Wendling2007-10-041-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42606 91177308-0d34-0410-b5e6-96231b3b80d8
* It helps a lot when you check for the end of your list before randomlyDaniel Berlin2007-10-041-1/+2
| | | | | | | dereferencing things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42605 91177308-0d34-0410-b5e6-96231b3b80d8
* Make SparseBitVector::set actually work properly when sets are not in ↵Daniel Berlin2007-10-041-4/+10
| | | | | | ascending or descending order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42604 91177308-0d34-0410-b5e6-96231b3b80d8
* Do use the actual ocaml stdlib (not the install dir) to find theGordon Henriksen2007-10-041-3/+2
| | | | | | caml/*.h headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42599 91177308-0d34-0410-b5e6-96231b3b80d8
* Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.Neil Booth2007-10-032-16/+267
| | | | | | | Useful for diagnostics and debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42598 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely merge the implementation details of DomTree and PostDomTree.Owen Anderson2007-10-037-214/+97
| | | | | | | Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this, git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42593 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a GraphTraits partial specialization to make the inverse of an inverse ↵Owen Anderson2007-10-031-0/+20
| | | | | | be the same as the underlying graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42592 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix 80 col violation.Devang Patel2007-10-031-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42591 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor code in a separate method.Devang Patel2007-10-031-33/+46
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42590 91177308-0d34-0410-b5e6-96231b3b80d8
* Add initial iterator support for folding set.Chris Lattner2007-10-032-0/+83
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42589 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify that shifts that are too large are undefined.Chris Lattner2007-10-031-3/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42588 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify implementation of the FoldingSet circular list, a necessary stepChris Lattner2007-10-031-11/+20
| | | | | | | to giving it iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42586 91177308-0d34-0410-b5e6-96231b3b80d8
* Use empty() member functions when that's what's being tested for insteadDan Gohman2007-10-0317-38/+36
| | | | | | | of comparing begin() and end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a using namespace llvm; in a header file.Dan Gohman2007-10-032-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42584 91177308-0d34-0410-b5e6-96231b3b80d8