summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Avoid spliting loops where two split condition branches are not independent.Devang Patel2007-08-181-1/+11
| | | | llvm-svn: 41148
* When one branch of condition is eliminated then head of the otherDevang Patel2007-08-172-22/+44
| | | | | | branch is not necessary immediate dominators of merge blcok in all cases. llvm-svn: 41144
* Factor out some code into a helper function.Owen Anderson2007-08-161-55/+34
| | | | llvm-svn: 41131
* Add some more comments to GVN.Owen Anderson2007-08-161-0/+14
| | | | llvm-svn: 41129
* Dominance frontier is now required.Devang Patel2007-08-151-1/+1
| | | | llvm-svn: 41096
* Cleanup removeBlocks. Devang Patel2007-08-151-56/+70
| | | | | | | Use dominance frontier to fixup incoming edges of successor blocks not domianted by DeadBB. Use df_iterator to walk and delete basic blocks dominated by DeadBB. llvm-svn: 41095
* Remove unneeded header file.Reid Spencer2007-08-151-1/+0
| | | | llvm-svn: 41094
* Avoid triangle loops.Devang Patel2007-08-151-4/+16
| | | | llvm-svn: 41093
* Break infinite loop.Devang Patel2007-08-141-15/+17
| | | | llvm-svn: 41091
* Avoid nested loops at the moment.Devang Patel2007-08-141-0/+4
| | | | llvm-svn: 41090
* Fix dominance frontier update while removing blocks.Devang Patel2007-08-141-7/+30
| | | | llvm-svn: 41082
* Eliminate PHI nodes with constant values during normal GVN processing, even whenOwen Anderson2007-08-141-1/+21
| | | | | | they're not related to eliminating a load. llvm-svn: 41081
* Be more aggressive in pruning unnecessary PHI nodes when doing PHI construction.Owen Anderson2007-08-141-28/+47
| | | | llvm-svn: 41080
* Make GVN iterative.Owen Anderson2007-08-141-1/+16
| | | | llvm-svn: 41078
* Fix a case where GVN was failing to return true when it had, in fact, modifiedOwen Anderson2007-08-141-2/+11
| | | | | | the function. llvm-svn: 41077
* Handle last value assignments.Devang Patel2007-08-141-14/+42
| | | | llvm-svn: 41063
* StartValue is already calculated.Devang Patel2007-08-141-1/+0
| | | | llvm-svn: 41062
* Preserve simple analysis.Devang Patel2007-08-131-4/+5
| | | | llvm-svn: 41054
* Preserve dominator info.Devang Patel2007-08-131-32/+46
| | | | llvm-svn: 41053
* If NewBB dominates DestBB then DestBB is not part of NewBB's dominance frontier.Devang Patel2007-08-131-1/+5
| | | | llvm-svn: 41051
* Split loops and do CFG cleanup.Devang Patel2007-08-121-24/+106
| | | | llvm-svn: 41029
* Remove unused variables.Reid Spencer2007-08-121-2/+2
| | | | llvm-svn: 41028
* Transform a load from an undef/zero global into an undef/global even if weChris Lattner2007-08-111-0/+33
| | | | | | | | | | | | | | | | | | | | | have complex pointer manipulation going on. This allows us to compile stuff like this: __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: xorps %xmm1, %xmm1 punpcklbw %xmm1, %xmm0 ret llvm-svn: 41022
* 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
* 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
* 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
* Make NonLocal and None const in the right way. :-)Owen Anderson2007-08-093-8/+8
| | | | llvm-svn: 40961
* Traverse loop blocks' terminators to find split candidates.Devang Patel2007-08-091-48/+106
| | | | llvm-svn: 40960
* Add cost analysis.Devang Patel2007-08-081-11/+41
| | | | llvm-svn: 40952
* 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-083-8/+8
| | | | 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
* 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
* A few more small cleanups.Owen Anderson2007-08-081-9/+7
| | | | llvm-svn: 40922
* First round of cleanups from Chris' feedback.Owen Anderson2007-08-081-51/+58
| | | | llvm-svn: 40919
* Embrace patch review feedback.Devang Patel2007-08-081-23/+23
| | | | llvm-svn: 40915
* Fix new compare instruction's signness. Caught by Chris during review.Devang Patel2007-08-071-5/+7
| | | | llvm-svn: 40912
* Don't insert nearly as many redundant phi nodes.Owen Anderson2007-08-071-2/+25
| | | | llvm-svn: 40909
* Use eraseFromParent().Devang Patel2007-08-071-4/+2
| | | | llvm-svn: 40903
* Fix comment typoDavid Greene2007-08-071-1/+1
| | | | llvm-svn: 40898
* Fix GLIBCXX_DEBUG error triggered by incrementing erased iterator.David Greene2007-08-071-4/+4
| | | | llvm-svn: 40897
* Begin loop index split pass.Devang Patel2007-08-071-0/+384
| | | | llvm-svn: 40883
* It's safe to fold not of fcmp.Nick Lewycky2007-08-061-3/+8
| | | | llvm-svn: 40870
OpenPOWER on IntegriCloud