aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Try hard to link aliases. Checks can be too strict by now.Anton Korobeynikov2008-03-051-20/+101
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47968 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a coalescer bug wrt how dead copy interval is shortened.Evan Cheng2008-03-053-13/+54
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47966 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle 'ret' with multiple values.Devang Patel2008-03-051-11/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47965 91177308-0d34-0410-b5e6-96231b3b80d8
* test for something more interesting than not crashingAndrew Lenharth2008-03-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47962 91177308-0d34-0410-b5e6-96231b3b80d8
* sync ops on ptrs, was breaking libgompAndrew Lenharth2008-03-051-0/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47960 91177308-0d34-0410-b5e6-96231b3b80d8
* Add Hybrid Cycle Detection to Andersen's analysis.Daniel Berlin2008-03-051-32/+272
| | | | | | | | Patch by Curtis Dunham. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47959 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify that CALLSEQ_START..END may not be nested,Dale Johannesen2008-03-052-0/+8
| | | | | | | | and add some protection against creating such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47957 91177308-0d34-0410-b5e6-96231b3b80d8
* This patch fixes a problem encountered by the CellSPU backend where variantsScott Michel2008-03-052-53/+132
| | | | | | | | | | | | | | | were being pruned in patterns where a variable was used more than once, e.g.: (or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC))) In this example, $rC is used more than once and is actually significant to instruction selection pattern matching when commuted variants are produced. This patch scans the pattern's clauses and collects the variables, creating a set of variables that are used more than once. TreePatternNode::isIsomorphicTo() also understands that multiply-used variables are significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47950 91177308-0d34-0410-b5e6-96231b3b80d8
* evan implemented this.Chris Lattner2008-03-051-26/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47948 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test not to emit junk into source directoryAnton Korobeynikov2008-03-051-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47947 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for PR2054Anton Korobeynikov2008-03-052-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47946 91177308-0d34-0410-b5e6-96231b3b80d8
* Remember the source->dest mapping when copying aliases. This fixes PR2054Anton Korobeynikov2008-03-051-4/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47945 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify the state-of-the-artAnton Korobeynikov2008-03-051-9/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47944 91177308-0d34-0410-b5e6-96231b3b80d8
* Use AC_PATH_PROG correctly:Bill Wendling2008-03-052-46/+35
| | | | | | | | http://www.gnu.org/software/autoconf/manual/autoconf.html#Generic-Programs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47943 91177308-0d34-0410-b5e6-96231b3b80d8
* isTwoAddress = 1 -> Constraints.Evan Cheng2008-03-051-47/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47941 91177308-0d34-0410-b5e6-96231b3b80d8
* PSLLWri etc. are two-address instructions.Evan Cheng2008-03-051-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47940 91177308-0d34-0410-b5e6-96231b3b80d8
* add a noteChris Lattner2008-03-051-0/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47939 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize FP constant shrinking optimization to apply to any vtChris Lattner2008-03-052-26/+32
| | | | | | | | | except ppc long double. This allows us to shrink constant pool entries for x86 long double constants, which in turn allows us to use flds/fldl instead of fldt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47938 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve comment, pass in the original VT so that we can shrink a long double ↵Chris Lattner2008-03-051-2/+4
| | | | | | | | | constant all the way to float, not stopping at double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47937 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore debugging related instructions if they get this far.Evan Cheng2008-03-051-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47934 91177308-0d34-0410-b5e6-96231b3b80d8
* Rather than asserting. Dump out the MI that we are not able to encode and abort.Evan Cheng2008-03-051-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47933 91177308-0d34-0410-b5e6-96231b3b80d8
* Codegen support for i128 UINT_TO_FP. This just fixes aDan Gohman2008-03-052-6/+2
| | | | | | | | | bug in r47928 (Int64Ty is the correct type for the constant pool entry here) and removes the asserts, now that the code is capable of handling i128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47932 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a target lowering hook to control whether it's worthwhile to compress fp ↵Evan Cheng2008-03-054-1/+24
| | | | | | | | | constant. For x86, if sse2 is available, it's not a good idea since cvtss2sd is slower than a movsd load and it prevents load folding. On x87, it's important to shrink fp constant since fldt is very expensive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47931 91177308-0d34-0410-b5e6-96231b3b80d8
* 64bit CAS on 32bit x86.Andrew Lenharth2008-03-054-8/+75
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47929 91177308-0d34-0410-b5e6-96231b3b80d8
* Codegen support for i128 SINT_TO_FP.Dan Gohman2008-03-054-21/+60
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47928 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor code. Remove duplicated functions that basically do the same thing asEvan Cheng2008-03-0516-187/+170
| | | | | | | findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip functions that return multiple values.Devang Patel2008-03-051-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47924 91177308-0d34-0410-b5e6-96231b3b80d8
* Check struct return type first. Devang Patel2008-03-051-6/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47922 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed spurious EnablePPCRS check.Bill Wendling2008-03-041-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47918 91177308-0d34-0410-b5e6-96231b3b80d8
* Move PPC lowering functions into PPCTargetLoweringDale Johannesen2008-03-042-28/+120
| | | | | | | | | class (cosmetic). First piece of byval implementation; this doesn't work yet. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47917 91177308-0d34-0410-b5e6-96231b3b80d8
* Use -enable-ppc-regscavenger flag for these checksBill Wendling2008-03-041-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47916 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a command-line option to turn register scavenging on/off for PPC.Bill Wendling2008-03-042-39/+51
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47915 91177308-0d34-0410-b5e6-96231b3b80d8
* Print types for all ret operands.Devang Patel2008-03-041-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47911 91177308-0d34-0410-b5e6-96231b3b80d8
* Use while loop.Devang Patel2008-03-041-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47909 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert SmallVector ctor variants.Devang Patel2008-03-042-60/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47908 91177308-0d34-0410-b5e6-96231b3b80d8
* Use cast instead of dyn_cast.Devang Patel2008-03-042-11/+12
| | | | | | | Update test to use multiple return value directly, instead of relying on -sretpromotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47907 91177308-0d34-0410-b5e6-96231b3b80d8
* Filter nested structsDevang Patel2008-03-041-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47906 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle multiple return values.Devang Patel2008-03-042-3/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47904 91177308-0d34-0410-b5e6-96231b3b80d8
* x86-64 atomicsAndrew Lenharth2008-03-042-2/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47903 91177308-0d34-0410-b5e6-96231b3b80d8
* Properly populate lists of defined/undefined symbols in presence of aliasesAnton Korobeynikov2008-03-041-1/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47900 91177308-0d34-0410-b5e6-96231b3b80d8
* Add alias with non-external aliasee to the list of exported symbols of the ↵Anton Korobeynikov2008-03-041-1/+10
| | | | | | library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47899 91177308-0d34-0410-b5e6-96231b3b80d8
* Use appropriate index to get the result value.Devang Patel2008-03-041-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47897 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip sret attribute while preparing attribute list forDevang Patel2008-03-041-11/+21
| | | | | | | new function and new call sites. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47896 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FunctionType ctor variant that takes SmallVector params.Devang Patel2008-03-042-0/+60
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47895 91177308-0d34-0410-b5e6-96231b3b80d8
* Increment counter that keeps track of total number of sret promoted.Devang Patel2008-03-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47892 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip declarations.Devang Patel2008-03-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47890 91177308-0d34-0410-b5e6-96231b3b80d8
* Process externally visible functions also. Later on code generator will do ↵Devang Patel2008-03-041-2/+1
| | | | | | the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47889 91177308-0d34-0410-b5e6-96231b3b80d8
* Collect statistics.Devang Patel2008-03-041-5/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47888 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo noticed by Erick Tryzelaar,Gordon Henriksen2008-03-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47886 91177308-0d34-0410-b5e6-96231b3b80d8
* Some improvements related to the computation of heights, depths of SUnits.Roman Levenstein2008-03-041-21/+93
| | | | | | | The basic idea is that all these algorithms are computing the longest paths from the root node or to the exit node. Therefore the existing implementation that uses and iterative and potentially exponential algorithm was changed to a well-known graph algorithm based on dynamic programming. It has a linear run-time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47884 91177308-0d34-0410-b5e6-96231b3b80d8