aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Now that llvm-ld can accept - as input from stdin, use this feature to extractReid Spencer2007-08-111-2/+2
| | | | | | | the pass arguments that it supports. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41019 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a comment typo noticed by Sandro Magi.Reid Spencer2007-08-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41018 91177308-0d34-0410-b5e6-96231b3b80d8
* 64-bit SSSE3 ops that use MMX registers don't require 16-byte alignment.Bill Wendling2007-08-111-6/+21
| | | | | | | Make a 'memop' pattern just for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41017 91177308-0d34-0410-b5e6-96231b3b80d8
* Code to maintain kill information during register coalescing.Evan Cheng2007-08-114-45/+205
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41016 91177308-0d34-0410-b5e6-96231b3b80d8
* Use subregs to improve any_extend code generation when feasible.Christopher Lamb2007-08-103-17/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41013 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test so it passes.Christopher Lamb2007-08-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41012 91177308-0d34-0410-b5e6-96231b3b80d8
* Increase efficiency of sign_extend_inreg by using subregisters for ↵Christopher Lamb2007-08-105-51/+101
| | | | | | truncation. As the README suggests sign_extend_subreg is selected to (sext(trunc)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41010 91177308-0d34-0410-b5e6-96231b3b80d8
* Edit README in light of previous LEA16 commit.Christopher Lamb2007-08-101-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41009 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 2-addr to 3-addr promotion code that allows 32-bit LEA to be used via ↵Christopher Lamb2007-08-102-10/+70
| | | | | | subregisters when 16-bit LEA is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41007 91177308-0d34-0410-b5e6-96231b3b80d8
* Move isSubRegOf into MRegisterInfo. Fix a missed move elimination in ↵Christopher Lamb2007-08-102-17/+35
| | | | | | LowerSubregs and add more debugging output there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41005 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not overuse std::string. Pass around char * directly.Devang Patel2007-08-103-15/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41001 91177308-0d34-0410-b5e6-96231b3b80d8
* Clone loop.Devang Patel2007-08-101-5/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40998 91177308-0d34-0410-b5e6-96231b3b80d8
* Add utility to clone loops.Devang Patel2007-08-102-0/+158
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40997 91177308-0d34-0410-b5e6-96231b3b80d8
* Add #ifndef guard.Devang Patel2007-08-101-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40991 91177308-0d34-0410-b5e6-96231b3b80d8
* add #ifndef guardsChris Lattner2007-08-101-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40990 91177308-0d34-0410-b5e6-96231b3b80d8
* add Value::getNameStart/getNameLen() accessors.Chris Lattner2007-08-102-1/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40989 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a test script for counting lines. This can be used instead of theDan Gohman2007-08-101-0/+17
| | | | | | | | | "| grep foo | wc -l | grep 2" idiom used by many tests, so that, for example, tests don't mistakenly accept a count of 12 when 2 is expected. Also, the new form is more consice: "| grep foo | count 2". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40988 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT toDan Gohman2007-08-102-3/+16
| | | | | | | | use an intptr ValueType instead of i32 for the index operand in getCopyToParts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40987 91177308-0d34-0410-b5e6-96231b3b80d8
* propagate struct size and alignment of byval arguments to the DAGRafael Espindola2007-08-106-4/+40
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40986 91177308-0d34-0410-b5e6-96231b3b80d8
* For kicks, I though it would be fun to use the correct opcode.Bill Wendling2007-08-101-31/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40985 91177308-0d34-0410-b5e6-96231b3b80d8
* memcpy with zero length is hugely expensive, so avoid it. This speeds up ↵Chris Lattner2007-08-101-1/+5
| | | | | | coallescing from 1.17s to 0.88s on siod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40984 91177308-0d34-0410-b5e6-96231b3b80d8
* small speedup in the case where a smallvector is default ctor'd fromChris Lattner2007-08-101-1/+2
| | | | | | | an empty vector. This speeds up llc slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40983 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding SSSE3 intrinsics.Bill Wendling2007-08-102-19/+400
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40982 91177308-0d34-0410-b5e6-96231b3b80d8
* minor simplifications.Chris Lattner2007-08-101-10/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40981 91177308-0d34-0410-b5e6-96231b3b80d8
* avoid copying strings.Chris Lattner2007-08-102-6/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40980 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unncessary duplication.Devang Patel2007-08-101-14/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40979 91177308-0d34-0410-b5e6-96231b3b80d8
* Calculate exit and start value of true loop and false loop respectively.Devang Patel2007-08-101-2/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40978 91177308-0d34-0410-b5e6-96231b3b80d8
* ExitCondition and Induction variable are loop constraints Devang Patel2007-08-101-71/+145
| | | | | | | not split condition constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40977 91177308-0d34-0410-b5e6-96231b3b80d8
* unbreak the buildChris Lattner2007-08-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40976 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix. ~1U marks the val# dead.Evan Cheng2007-08-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40975 91177308-0d34-0410-b5e6-96231b3b80d8
* Patch 10 for long double. Doing constants right needs expanding ConstantFPDale Johannesen2007-08-093-7/+28
| | | | | | | | | | | | | | to handle values bigger than double. If we assume host==target and host long double works correctly, this is not too bad, but we don't want to have that limitation longterm. I could implement accepting double constants as long double or something like that, which would lead to incorrect codegen with no errors; the more I think about that the worse it seems. Rather than do such a hack that would be backed out later, I'm settling for giving reasonable error messages, for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40974 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily backing out this change until we know why some dejagnu tests are ↵Evan Cheng2007-08-091-3/+2
| | | | | | failing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40973 91177308-0d34-0410-b5e6-96231b3b80d8
* divb / mulb outputs to ah. Under x86-64 it's not legal to read ah if the ↵Evan Cheng2007-08-092-4/+46
| | | | | | instruction requires a rex prefix (i.e. outputs to r8b, etc.). So issue shift right by 8 on AX and then truncate it to 8 bits instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40972 91177308-0d34-0410-b5e6-96231b3b80d8
* when we see a unaligned load from an insufficiently aligned global orChris Lattner2007-08-092-21/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | alloca, increase the alignment of the load, turning it into an aligned load. This allows us to compile: #include <xmmintrin.h> __m128i foo(__m128i x){ static const unsigned int c_0[4] = { 0, 0, 0, 0 }; __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0); x = _mm_unpacklo_epi8(x, v_Zero); return x; } into: _foo: punpcklbw _c_0.5944, %xmm0 ret .data .lcomm _c_0.5944,16,4 # c_0.5944 instead of: _foo: movdqu _c_0.5944, %xmm1 punpcklbw %xmm1, %xmm0 ret .data .lcomm _c_0.5944,16,2 # c_0.5944 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40971 91177308-0d34-0410-b5e6-96231b3b80d8
* GR16_ sub-register class should be GR8_, not GR8. That is, it should only be ↵Evan Cheng2007-08-091-3/+4
| | | | | | 8-bit registers in 32-bit mode. Ditto for GR32_. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40970 91177308-0d34-0410-b5e6-96231b3b80d8
* Update per review comments.Dale Johannesen2007-08-092-32/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40965 91177308-0d34-0410-b5e6-96231b3b80d8
* Make NonLocal and None const in the right way. :-)Owen Anderson2007-08-095-32/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40961 91177308-0d34-0410-b5e6-96231b3b80d8
* Traverse loop blocks' terminators to find split candidates.Devang Patel2007-08-091-48/+106
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40960 91177308-0d34-0410-b5e6-96231b3b80d8
* long double 9 of N. This finishes up the X86-32 bitsDale Johannesen2007-08-094-23/+96
| | | | | | | | | (constants are still not handled). Adds ConvertActions to control fp-to-fp conversions (these are currently defaulted for all other targets, so no changes there). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40958 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix arguments for some Altivec instructions. From SWB.Dale Johannesen2007-08-091-9/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40957 91177308-0d34-0410-b5e6-96231b3b80d8
* If a target really needs to custom lower constants, it should be allowedScott Michel2007-08-081-3/+11
| | | | | | | to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40955 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more comments to memdep.Owen Anderson2007-08-081-1/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40953 91177308-0d34-0410-b5e6-96231b3b80d8
* Add cost analysis.Devang Patel2007-08-081-11/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40952 91177308-0d34-0410-b5e6-96231b3b80d8
* Make memdep fit in 80 cols.Owen Anderson2007-08-081-15/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40950 91177308-0d34-0410-b5e6-96231b3b80d8
* Add one more comment.Owen Anderson2007-08-081-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40949 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup and comment-ize the memdep header.Owen Anderson2007-08-081-11/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40948 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve dom info while processing one iteration loop.Devang Patel2007-08-081-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40947 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the None and NonLocal markers in memdep to be const.Owen Anderson2007-08-085-30/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40946 91177308-0d34-0410-b5e6-96231b3b80d8
* Separate program name from error message with a :Reid Spencer2007-08-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40945 91177308-0d34-0410-b5e6-96231b3b80d8
* Clear split info.Devang Patel2007-08-081-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40944 91177308-0d34-0410-b5e6-96231b3b80d8