| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Avoid spliting loops where two split condition branches are not independent. | Devang Patel | 2007-08-18 | 1 | -1/+11 |
| | | | | | llvm-svn: 41148 | ||||
| * | When one branch of condition is eliminated then head of the other | Devang Patel | 2007-08-17 | 2 | -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 Anderson | 2007-08-16 | 1 | -55/+34 |
| | | | | | llvm-svn: 41131 | ||||
| * | Add some more comments to GVN. | Owen Anderson | 2007-08-16 | 1 | -0/+14 |
| | | | | | llvm-svn: 41129 | ||||
| * | Dominance frontier is now required. | Devang Patel | 2007-08-15 | 1 | -1/+1 |
| | | | | | llvm-svn: 41096 | ||||
| * | Cleanup removeBlocks. | Devang Patel | 2007-08-15 | 1 | -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 Spencer | 2007-08-15 | 1 | -1/+0 |
| | | | | | llvm-svn: 41094 | ||||
| * | Avoid triangle loops. | Devang Patel | 2007-08-15 | 1 | -4/+16 |
| | | | | | llvm-svn: 41093 | ||||
| * | Break infinite loop. | Devang Patel | 2007-08-14 | 1 | -15/+17 |
| | | | | | llvm-svn: 41091 | ||||
| * | Avoid nested loops at the moment. | Devang Patel | 2007-08-14 | 1 | -0/+4 |
| | | | | | llvm-svn: 41090 | ||||
| * | Fix dominance frontier update while removing blocks. | Devang Patel | 2007-08-14 | 1 | -7/+30 |
| | | | | | llvm-svn: 41082 | ||||
| * | Eliminate PHI nodes with constant values during normal GVN processing, even when | Owen Anderson | 2007-08-14 | 1 | -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 Anderson | 2007-08-14 | 1 | -28/+47 |
| | | | | | llvm-svn: 41080 | ||||
| * | Make GVN iterative. | Owen Anderson | 2007-08-14 | 1 | -1/+16 |
| | | | | | llvm-svn: 41078 | ||||
| * | Fix a case where GVN was failing to return true when it had, in fact, modified | Owen Anderson | 2007-08-14 | 1 | -2/+11 |
| | | | | | | | the function. llvm-svn: 41077 | ||||
| * | Handle last value assignments. | Devang Patel | 2007-08-14 | 1 | -14/+42 |
| | | | | | llvm-svn: 41063 | ||||
| * | StartValue is already calculated. | Devang Patel | 2007-08-14 | 1 | -1/+0 |
| | | | | | llvm-svn: 41062 | ||||
| * | Preserve simple analysis. | Devang Patel | 2007-08-13 | 1 | -4/+5 |
| | | | | | llvm-svn: 41054 | ||||
| * | Preserve dominator info. | Devang Patel | 2007-08-13 | 1 | -32/+46 |
| | | | | | llvm-svn: 41053 | ||||
| * | If NewBB dominates DestBB then DestBB is not part of NewBB's dominance frontier. | Devang Patel | 2007-08-13 | 1 | -1/+5 |
| | | | | | llvm-svn: 41051 | ||||
| * | Split loops and do CFG cleanup. | Devang Patel | 2007-08-12 | 1 | -24/+106 |
| | | | | | llvm-svn: 41029 | ||||
| * | Remove unused variables. | Reid Spencer | 2007-08-12 | 1 | -2/+2 |
| | | | | | llvm-svn: 41028 | ||||
| * | Transform a load from an undef/zero global into an undef/global even if we | Chris Lattner | 2007-08-11 | 1 | -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 Patel | 2007-08-10 | 1 | -5/+25 |
| | | | | | llvm-svn: 40998 | ||||
| * | Add utility to clone loops. | Devang Patel | 2007-08-10 | 1 | -0/+149 |
| | | | | | llvm-svn: 40997 | ||||
| * | Remove unncessary duplication. | Devang Patel | 2007-08-10 | 1 | -14/+1 |
| | | | | | llvm-svn: 40979 | ||||
| * | Calculate exit and start value of true loop and false loop respectively. | Devang Patel | 2007-08-10 | 1 | -2/+28 |
| | | | | | llvm-svn: 40978 | ||||
| * | ExitCondition and Induction variable are loop constraints | Devang Patel | 2007-08-10 | 1 | -71/+145 |
| | | | | | | | not split condition constraints. llvm-svn: 40977 | ||||
| * | when we see a unaligned load from an insufficiently aligned global or | Chris Lattner | 2007-08-09 | 1 | -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 Anderson | 2007-08-09 | 3 | -8/+8 |
| | | | | | llvm-svn: 40961 | ||||
| * | Traverse loop blocks' terminators to find split candidates. | Devang Patel | 2007-08-09 | 1 | -48/+106 |
| | | | | | llvm-svn: 40960 | ||||
| * | Add cost analysis. | Devang Patel | 2007-08-08 | 1 | -11/+41 |
| | | | | | llvm-svn: 40952 | ||||
| * | Preserve dom info while processing one iteration loop. | Devang Patel | 2007-08-08 | 1 | -0/+17 |
| | | | | | llvm-svn: 40947 | ||||
| * | Change the None and NonLocal markers in memdep to be const. | Owen Anderson | 2007-08-08 | 3 | -8/+8 |
| | | | | | llvm-svn: 40946 | ||||
| * | Clear split info. | Devang Patel | 2007-08-08 | 1 | -0/+11 |
| | | | | | llvm-svn: 40944 | ||||
| * | Handle multiple split conditions. | Devang Patel | 2007-08-08 | 1 | -60/+93 |
| | | | | | llvm-svn: 40941 | ||||
| * | Global values also don't undead-ify pointers in our dead alloca's set. | Owen Anderson | 2007-08-08 | 1 | -0/+3 |
| | | | | | llvm-svn: 40936 | ||||
| * | Make handleEndBlock significantly faster with one trivial improvement, | Owen Anderson | 2007-08-08 | 1 | -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 scan | Owen Anderson | 2007-08-08 | 1 | -2/+8 |
| | | | | | | | it for potentially undeading pointers. llvm-svn: 40933 | ||||
| * | Add some comments, remove a dead argument, and simplify some control flow. | Owen Anderson | 2007-08-08 | 1 | -19/+28 |
| | | | | | | | No functionality change. llvm-svn: 40932 | ||||
| * | A few more small cleanups. | Owen Anderson | 2007-08-08 | 1 | -9/+7 |
| | | | | | llvm-svn: 40922 | ||||
| * | First round of cleanups from Chris' feedback. | Owen Anderson | 2007-08-08 | 1 | -51/+58 |
| | | | | | llvm-svn: 40919 | ||||
| * | Embrace patch review feedback. | Devang Patel | 2007-08-08 | 1 | -23/+23 |
| | | | | | llvm-svn: 40915 | ||||
| * | Fix new compare instruction's signness. Caught by Chris during review. | Devang Patel | 2007-08-07 | 1 | -5/+7 |
| | | | | | llvm-svn: 40912 | ||||
| * | Don't insert nearly as many redundant phi nodes. | Owen Anderson | 2007-08-07 | 1 | -2/+25 |
| | | | | | llvm-svn: 40909 | ||||
| * | Use eraseFromParent(). | Devang Patel | 2007-08-07 | 1 | -4/+2 |
| | | | | | llvm-svn: 40903 | ||||
| * | Fix comment typo | David Greene | 2007-08-07 | 1 | -1/+1 |
| | | | | | llvm-svn: 40898 | ||||
| * | Fix GLIBCXX_DEBUG error triggered by incrementing erased iterator. | David Greene | 2007-08-07 | 1 | -4/+4 |
| | | | | | llvm-svn: 40897 | ||||
| * | Begin loop index split pass. | Devang Patel | 2007-08-07 | 1 | -0/+384 |
| | | | | | llvm-svn: 40883 | ||||
| * | It's safe to fold not of fcmp. | Nick Lewycky | 2007-08-06 | 1 | -3/+8 |
| | | | | | llvm-svn: 40870 | ||||

