summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Do not overuse std::string. Pass around char * directly.Devang Patel2007-08-102-12/+12
| | | | llvm-svn: 41001
* Clone loop.Devang Patel2007-08-101-5/+25
| | | | llvm-svn: 40998
* Add utility to clone loops.Devang Patel2007-08-101-0/+149
| | | | llvm-svn: 40997
* add Value::getNameStart/getNameLen() accessors.Chris Lattner2007-08-101-0/+15
| | | | llvm-svn: 40989
* Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT toDan Gohman2007-08-101-3/+5
| | | | | | | use an intptr ValueType instead of i32 for the index operand in getCopyToParts. llvm-svn: 40987
* propagate struct size and alignment of byval arguments to the DAGRafael Espindola2007-08-103-3/+25
| | | | llvm-svn: 40986
* For kicks, I though it would be fun to use the correct opcode.Bill Wendling2007-08-101-31/+32
| | | | llvm-svn: 40985
* Adding SSSE3 intrinsics.Bill Wendling2007-08-101-17/+284
| | | | llvm-svn: 40982
* minor simplifications.Chris Lattner2007-08-101-10/+8
| | | | llvm-svn: 40981
* avoid copying strings.Chris Lattner2007-08-101-4/+4
| | | | llvm-svn: 40980
* Remove unncessary duplication.Devang Patel2007-08-101-14/+1
| | | | llvm-svn: 40979
* Calculate exit and start value of true loop and false loop respectively.Devang Patel2007-08-101-2/+28
| | | | llvm-svn: 40978
* ExitCondition and Induction variable are loop constraints Devang Patel2007-08-101-71/+145
| | | | | | not split condition constraints. llvm-svn: 40977
* unbreak the buildChris Lattner2007-08-091-1/+1
| | | | llvm-svn: 40976
* Bug fix. ~1U marks the val# dead.Evan Cheng2007-08-091-1/+1
| | | | llvm-svn: 40975
* 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. llvm-svn: 40974
* Temporarily backing out this change until we know why some dejagnu tests are ↵Evan Cheng2007-08-091-3/+2
| | | | | | failing. llvm-svn: 40973
* 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. llvm-svn: 40972
* when we see a unaligned load from an insufficiently aligned global orChris Lattner2007-08-091-21/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 40971
* 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_. llvm-svn: 40970
* Update per review comments.Dale Johannesen2007-08-091-30/+15
| | | | llvm-svn: 40965
* Make NonLocal and None const in the right way. :-)Owen Anderson2007-08-094-26/+24
| | | | llvm-svn: 40961
* Traverse loop blocks' terminators to find split candidates.Devang Patel2007-08-091-48/+106
| | | | llvm-svn: 40960
* long double 9 of N. This finishes up the X86-32 bitsDale Johannesen2007-08-093-23/+61
| | | | | | | | (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). llvm-svn: 40958
* Fix arguments for some Altivec instructions. From SWB.Dale Johannesen2007-08-091-9/+15
| | | | llvm-svn: 40957
* If a target really needs to custom lower constants, it should be allowedScott Michel2007-08-081-3/+11
| | | | | | to do so. llvm-svn: 40955
* Add more comments to memdep.Owen Anderson2007-08-081-1/+27
| | | | llvm-svn: 40953
* Add cost analysis.Devang Patel2007-08-081-11/+41
| | | | llvm-svn: 40952
* Make memdep fit in 80 cols.Owen Anderson2007-08-081-15/+26
| | | | llvm-svn: 40950
* Preserve dom info while processing one iteration loop.Devang Patel2007-08-081-0/+17
| | | | llvm-svn: 40947
* Change the None and NonLocal markers in memdep to be const.Owen Anderson2007-08-084-24/+24
| | | | llvm-svn: 40946
* Clear split info.Devang Patel2007-08-081-0/+11
| | | | llvm-svn: 40944
* Handle multiple split conditions.Devang Patel2007-08-081-60/+93
| | | | llvm-svn: 40941
* Make getSTDIN return null if the standard input is empty, as the header fileReid Spencer2007-08-081-2/+4
| | | | | | documentation implies and as its uses depend. llvm-svn: 40939
* Allow the filename "-" to be a place holder for stdin. This allows directingReid Spencer2007-08-081-0/+16
| | | | | | stdin through llvm-ld and llvm-link. llvm-svn: 40938
* Global values also don't undead-ify pointers in our dead alloca's set.Owen Anderson2007-08-081-0/+3
| | | | llvm-svn: 40936
* Make handleEndBlock significantly faster with one trivial improvement,Owen Anderson2007-08-081-4/+30
| | | | | | and one hack to avoid hitting a bad case when the alias analysis is imprecise. llvm-svn: 40935
* Small improvement: if a function doesn't access memory, we don't need to scanOwen Anderson2007-08-081-2/+8
| | | | | | it for potentially undeading pointers. llvm-svn: 40933
* Add some comments, remove a dead argument, and simplify some control flow.Owen Anderson2007-08-081-19/+28
| | | | | | No functionality change. llvm-svn: 40932
* eliminate redundant conditions from the signless types conversion.Chris Lattner2007-08-081-7/+4
| | | | llvm-svn: 40927
* Handle functions with no name better.Chris Lattner2007-08-081-1/+2
| | | | llvm-svn: 40926
* Adding kill info to val#.Evan Cheng2007-08-081-3/+10
| | | | llvm-svn: 40925
* significantly speed up constant folding of calls (and thus all clients that useChris Lattner2007-08-081-94/+131
| | | | | | | | ConstantFoldInstruction on calls) by avoiding Value::getName(). getName() constructs and returns an std::string, which does heap allocation stuff. This slightly speeds up instcombine. llvm-svn: 40924
* Speed up updateDFSNumbers with two observations:Chris Lattner2007-08-081-22/+17
| | | | | | | | | | | 1. domtree is a tree, not a graph. There is no need to avoid revisiting nodes with a set. 2. the worklist can contain the child iterator pointers so we don't get N^2 rescanning of children. This speeds up updateDFSNumbers significantly, making it basically free. On the testcase in PR1432, this speeds up loopsimplify by another 3x, dropping it from the 12th most expensive pass to the to the 30th. :) It used to be #1. llvm-svn: 40923
* A few more small cleanups.Owen Anderson2007-08-081-9/+7
| | | | llvm-svn: 40922
* Clean up and bug fix.Evan Cheng2007-08-081-1/+1
| | | | llvm-svn: 40921
* reimplement dfs number computation to be significantly faster. This speeds upChris Lattner2007-08-082-49/+36
| | | | | | | natural loop canonicalization (which does many cfg xforms) by 4.3x, for example. This also fixes a bug in postdom dfnumber computation. llvm-svn: 40920
* First round of cleanups from Chris' feedback.Owen Anderson2007-08-081-51/+58
| | | | llvm-svn: 40919
* - Each val# can have multiple kills.Evan Cheng2007-08-083-12/+10
| | | | | | | - Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. llvm-svn: 40916
* Embrace patch review feedback.Devang Patel2007-08-081-23/+23
| | | | llvm-svn: 40915
OpenPOWER on IntegriCloud