Nadav Rotem 
							
						 
					 
					
						
						
							
						
						bb950854ac 
					 
					
						
						
							
							Fix a bug in the vectorization of wide load/store operations.  
						
						... 
						
						
						
						We used a SCEV to detect that A[X] is consecutive. We assumed that X was
the induction variable. But X can be any expression that uses the induction
for example: X = i + 2;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166388  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 06:49:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						c847872629 
					 
					
						
						
							
							Add support for reduction variables that do not start at zero.  
						
						... 
						
						
						
						This is important for nested-loop reductions such as :
In the innermost loop, the induction variable does not start with zero:
for (i = 0 .. n)
 for (j = 0 .. m)
  sum += ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166387  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 05:52:51 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						f01cad69c1 
					 
					
						
						
							
							Document change. Describe the pass and some papers that inspired the design of the pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166386  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 04:04:25 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						5a418ba5f5 
					 
					
						
						
							
							Vectorizer: fix a bug in the classification of induction/reduction phis.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166384  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 02:38:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						ccaccfa8bf 
					 
					
						
						
							
							Fix an infinite loop in the loop-vectorizer.  
						
						... 
						
						
						
						PR14134.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166379  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-20 20:45:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						bf8772ed2c 
					 
					
						
						
							
							Vectorize: teach cavVectorizeMemory to distinguish between A[i]+=x and A[B[i]]+=x.  
						
						... 
						
						
						
						If the pointer is consecutive then it is safe to read and write. If the pointer is non-loop-consecutive then
it is unsafe to vectorize it because we may hit an ordering issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166371  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-20 08:26:33 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						71a1482239 
					 
					
						
						
							
							Fix a typo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-20 05:03:27 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						e6748f91ea 
					 
					
						
						
							
							Vectorizer: refactor the memory checks to a new function. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166366  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-20 04:59:06 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						4ade92b614 
					 
					
						
						
							
							LoopVectorize: Keep the IRBuilder on the stack.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166354  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-19 23:27:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						5dbe64e2bc 
					 
					
						
						
							
							Vectorizer: Add support for loop reductions.  
						
						... 
						
						
						
						For example:
  for (i=0; i<n; i++)
   sum += A[i] +  B[i] + i;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166351  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-19 23:05:40 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						17f68c52d2 
					 
					
						
						
							
							LoopVectorize: Keep the IRBuilder on the stack.  
						
						... 
						
						
						
						No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166274  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-19 08:42:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						89e7b356f2 
					 
					
						
						
							
							vectorizer: Add support for reading and writing from the same memory location.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166255  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-19 01:24:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						ebd3f27c7e 
					 
					
						
						
							
							cleanup the comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166247  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 23:21:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						6220fb16c1 
					 
					
						
						
							
							fix a naming typo  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166232  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 21:45:31 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						b943d9d497 
					 
					
						
						
							
							Avoid reconstructing the pointer set when searching for duplicated read/write pointers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166205  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 18:34:50 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						bef36ac2a4 
					 
					
						
						
							
							When looking for a vector representation of a scalar, do a single lookup. Also, cache the result of the broadcast instruction.  
						
						... 
						
						
						
						No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166191  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 17:31:49 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						3141d2db03 
					 
					
						
						
							
							remove unused variable to fix a warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166170  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 06:09:21 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						d22d5f9122 
					 
					
						
						
							
							Remove the use of dominators and AA.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166167  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 05:33:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						1953ace81d 
					 
					
						
						
							
							Vectorizer: Add support for loops with an unknown count. For example:  
						
						... 
						
						
						
						for (i=0; i<n; i++){
        a[i] = b[i+1] + c[i+3];
     }
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166165  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-18 05:29:12 +00:00 
						 
				 
			
				
					
						
							
							
								NAKAMURA Takumi 
							
						 
					 
					
						
						
							
						
						6dc0050f6d 
					 
					
						
						
							
							LoopVectorize.cpp: Fix a warning. [-Wunused-variable]  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166153  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-17 23:40:15 +00:00 
						 
				 
			
				
					
						
							
							
								Jakub Staszak 
							
						 
					 
					
						
						
							
						
						c2358eb361 
					 
					
						
						
							
							Remove redundant SetInsertPoint call.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166138  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-17 23:06:37 +00:00 
						 
				 
			
				
					
						
							
							
								Roman Divacky 
							
						 
					 
					
						
						
							
						
						a5401d6730 
					 
					
						
						
							
							Fix some typos and wrong indenting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166128  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-17 21:07:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						d15c0c7ac1 
					 
					
						
						
							
							Add a loop vectorizer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166112  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-17 18:25:06 +00:00