aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Let MRegisterInfo now owns RegScavenger.Evan Cheng2007-02-271-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34691 91177308-0d34-0410-b5e6-96231b3b80d8
* RegScavenger interface change to make it more flexible.Evan Cheng2007-02-272-20/+50
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34690 91177308-0d34-0410-b5e6-96231b3b80d8
* Let MRegisterInfo owns RegScavenger.Evan Cheng2007-02-271-9/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34689 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass IsImp, IsKill, and IsDead to ChangeToRegister.Evan Cheng2007-02-271-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34688 91177308-0d34-0410-b5e6-96231b3b80d8
* This test passes on x86/Linux now.Reid Spencer2007-02-271-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34686 91177308-0d34-0410-b5e6-96231b3b80d8
* implement CCMatchIfCC in terms of CCMatchIfChris Lattner2007-02-271-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34685 91177308-0d34-0410-b5e6-96231b3b80d8
* build cc infoChris Lattner2007-02-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34684 91177308-0d34-0410-b5e6-96231b3b80d8
* target for generating CC infoChris Lattner2007-02-271-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34683 91177308-0d34-0410-b5e6-96231b3b80d8
* initial support for calling convention generation, still unfinished.Chris Lattner2007-02-274-7/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34682 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to changes in the APInt interface.Reid Spencer2007-02-272-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34681 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve APInt interface:Reid Spencer2007-02-272-55/+67
| | | | | | | | | | | 1. Add unsigned and signed versions of methods so a "bool" argument doesn't need to be passed in. 2. Make the various getMin/getMax functions all be inline since they are so simple. 3. Simplify sdiv and srem code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34680 91177308-0d34-0410-b5e6-96231b3b80d8
* Conform to single person attribution in file comment.Reid Spencer2007-02-271-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34678 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1205:Reid Spencer2007-02-271-14/+5
| | | | | | | | | | | | Implement review feedback: 1. Use new APInt::RoundDoubleToAPInt interface to specify the bit width so that we don't have to truncate or extend in constant folding. 2. Fix a pasteo in SDiv that prevented a check for overflow. 3. Fix the shift operators: undef happens when the shift amount is equal to the bitwidth. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34677 91177308-0d34-0410-b5e6-96231b3b80d8
* Update for constant folding now generating undef and overflow correctly.Reid Spencer2007-02-272-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34676 91177308-0d34-0410-b5e6-96231b3b80d8
* Shifting by the bit width now produces undef, not 0.Reid Spencer2007-02-277-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34675 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Fix three serious bugs in the comparison code.Reid Spencer2007-02-271-18/+22
| | | | | | | | 2. Change RoundDoubleToAPInt to take a bit width parameter. Use that parameter to limit the bit width of the result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34673 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow the RoundDoubleToAPInt function to specify a width to use.Reid Spencer2007-02-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34672 91177308-0d34-0410-b5e6-96231b3b80d8
* a noteChris Lattner2007-02-271-0/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34670 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getPassManagerType() const.Devang Patel2007-02-274-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34669 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix parenthesis for BCTRL_{ELF|Macho} test.Nicolas Geoffray2007-02-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34668 91177308-0d34-0410-b5e6-96231b3b80d8
* Differentiate between the MachO and the ELF ABI the CALL instruction.Nicolas Geoffray2007-02-274-12/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34667 91177308-0d34-0410-b5e6-96231b3b80d8
* Duplicate use of LR, take 2.Jim Laskey2007-02-273-26/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34666 91177308-0d34-0410-b5e6-96231b3b80d8
* Added myselfNicolas Geoffray2007-02-271-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34665 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow the AsmWriter to print out arbitrary precision integers.Reid Spencer2007-02-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34664 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct the implelmentation of ConstantInt::getAllOnesValue() for bitReid Spencer2007-02-271-1/+1
| | | | | | | widths > 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34663 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of extraneous // in file comment.Reid Spencer2007-02-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34662 91177308-0d34-0410-b5e6-96231b3b80d8
* Add calling convention infoChris Lattner2007-02-272-2/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34661 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1205:Reid Spencer2007-02-271-102/+135
| | | | | | | Implement constant folding via APInt instead of uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34660 91177308-0d34-0410-b5e6-96231b3b80d8
* move target independent calling convention stuff to TargetCallingConv.tdChris Lattner2007-02-272-56/+71
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34659 91177308-0d34-0410-b5e6-96231b3b80d8
* fill in some holesChris Lattner2007-02-271-7/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34658 91177308-0d34-0410-b5e6-96231b3b80d8
* switch x86-64 return value lowering over to using same mechanism as argumentChris Lattner2007-02-271-68/+88
| | | | | | | lowering uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34657 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor refactoring of CC Lowering interfacesChris Lattner2007-02-273-78/+107
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34656 91177308-0d34-0410-b5e6-96231b3b80d8
* move CC Lowering stuff to its own public interfaceChris Lattner2007-02-273-146/+200
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34655 91177308-0d34-0410-b5e6-96231b3b80d8
* refactor x86-64 argument lowering yet again, this time eliminating templates,Chris Lattner2007-02-271-166/+179
| | | | | | | 'clients', etc, and adding CCValAssign instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34654 91177308-0d34-0410-b5e6-96231b3b80d8
* ConstantFolding.cpp/h -> ConstantFold.cpp/h to avoid confusion withChris Lattner2007-02-273-55/+2
| | | | | | | lib/Analysis/ConstantFolding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34653 91177308-0d34-0410-b5e6-96231b3b80d8
* Backing out Jim's LR spill changes. This was causing llvm-gcc bootstrappingEvan Cheng2007-02-273-19/+2
| | | | | | | | | | to infinite loop: PPCMachineFunctionInfo.h updated: 1.2 -> 1.3 PPCRegisterInfo.cpp updated: 1.110 -> 1.111 PPCRegisterInfo.h updated: 1.28 -> 1.29 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34652 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL this on x86-Linux until its fixed.Reid Spencer2007-02-271-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34651 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove test cases that produce undefined results.Reid Spencer2007-02-2716-33/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34650 91177308-0d34-0410-b5e6-96231b3b80d8
* forward() should not increment internal iterator. Its client may insert ↵Evan Cheng2007-02-273-5/+32
| | | | | | instruction between now and next forward() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34649 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify and document RoundDoubleToAPInt.Reid Spencer2007-02-271-3/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34648 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1205:Reid Spencer2007-02-262-41/+79
| | | | | | | | | | | Implement the first step towards arbitrary precision integer support in LLVM. The APInt class provides arbitrary precision arithmetic and value representation. This patch changes ConstantInt to use APInt as its value representation without supporting bit widths > 64 yet. That change will come after ConstantFolding handles bit widths > 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34647 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Make sure all delete operators of arrays use the array form of delete.Reid Spencer2007-02-261-19/+45
| | | | | | | | | | | | | | | 2. Rewrite operator=(const APInt& RHS) to allow the RHS to be a different bit width than the LHS. This makes it possible to use APInt as the key of a DenseMap, as needed for the IntConstants map in Constants.cpp 3. Fix operator=(uint64_t) to clear unused bits in case the client assigns a value that has more bits than the APInt allows. 4. Assert that bit widths are equal in operator== 5. Revise getHashValue() to put the bit width in the low order six bits. This should help to make i1 0, i2 0, ... i64 0 all distinct in the IntConstants DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34646 91177308-0d34-0410-b5e6-96231b3b80d8
* Joining an interval with a dead copy instruction. Shorten the live range to ↵Evan Cheng2007-02-262-23/+51
| | | | | | the last use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34645 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix indentation.Reid Spencer2007-02-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34643 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the getHashValue method.Reid Spencer2007-02-261-1/+16
| | | | | | | Fix toString use of getValue to use getZExtValue() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34642 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Split getValue() into getSExtValue() and getZExtValue() to matchReid Spencer2007-02-261-9/+25
| | | | | | | | ConstantInt better. 2. Add a getHashValue() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34641 91177308-0d34-0410-b5e6-96231b3b80d8
* Use efficient container SmallPtrSetDevang Patel2007-02-261-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34640 91177308-0d34-0410-b5e6-96231b3b80d8
* always lower to RETFLAG, never leave it as just ret.Chris Lattner2007-02-262-11/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34639 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not unswitch loop on same value again and again.Devang Patel2007-02-261-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34638 91177308-0d34-0410-b5e6-96231b3b80d8
* fix attributionChris Lattner2007-02-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34637 91177308-0d34-0410-b5e6-96231b3b80d8