Nadav Rotem 
							
						 
					 
					
						
						
							
						
						a5a3a61c5f 
					 
					
						
						
							
							Refactor the VectorTargetTransformInfo interface.  
						
						... 
						
						
						
						Add getCostXXX calls for different families of opcodes, such as casts, arithmetic, cmp, etc.
Port the LoopVectorizer to the new API.
The LoopVectorizer now finds instructions which will remain uniform after vectorization. It uses this information when calculating the cost of these instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166836  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-26 23:49:28 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						3ef9dfa685 
					 
					
						
						
							
							LoopVectorize: Teach the cost model to query scalar costs as scalar types and not vectors of 1.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166715  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-25 21:03:48 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						8dbac7b529 
					 
					
						
						
							
							Add support for additional reduction variables: AND, OR, XOR.  
						
						... 
						
						
						
						Patch by Paul Redmond <paul.redmond@intel.com >.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166649  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-25 00:08:41 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						2652c50f74 
					 
					
						
						
							
							Implement a basic cost model for vector and scalar instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166642  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-24 23:47:38 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						7c6de1d6e5 
					 
					
						
						
							
							whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166622  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-24 20:58:40 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						50bec6f8c4 
					 
					
						
						
							
							LoopVectorizer: Add a basic cost model which uses the VTTI interface.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166620  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-24 20:36:32 +00:00 
						 
				 
			
				
					
						
							
							
								Micah Villmow 
							
						 
					 
					
						
						
							
						
						b8bce928f4 
					 
					
						
						
							
							Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166596  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-24 17:25:11 +00:00 
						 
				 
			
				
					
						
							
							
								Micah Villmow 
							
						 
					 
					
						
						
							
						
						2f87640b86 
					 
					
						
						
							
							Delete a directory that wasn't supposed to be checked in yet.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-24 17:20:04 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						6457001f31 
					 
					
						
						
							
							Use the AliasAnalysis isIdentifiedObj because it also understands mallocs and c++ news.  
						
						... 
						
						
						
						PR14158.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166491  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-23 18:44:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						782090aa02 
					 
					
						
						
							
							Don't crash if the load/store pointer is not a GEP.  
						
						... 
						
						
						
						Fix by Shivarama Rao <Shivarama.Rao@amd.com >
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166427  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-22 18:27:56 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						5f7d810223 
					 
					
						
						
							
							Rename a variable.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166410  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-22 04:53:05 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						565048e78a 
					 
					
						
						
							
							Vectorizer: optimize the generation of selects. If the condition is uniform, generate a scalar-cond select (i1 as selector).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166409  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-22 04:38:00 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						e0fa403e23 
					 
					
						
						
							
							Update the loop vectorizer docs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166408  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-22 03:52:53 +00:00 
						 
				 
			
				
					
						
							
							
								Anders Carlsson 
							
						 
					 
					
						
						
							
						
						5bb5a75b1e 
					 
					
						
						
							
							Avoid an extra hash lookup when inserting a value into the widen map.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166395  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 16:26:35 +00:00 
						 
				 
			
				
					
						
							
							
								Jakub Staszak 
							
						 
					 
					
						
						
							
						
						ffe5008fd3 
					 
					
						
						
							
							Simplify code. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166393  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 15:36:03 +00:00 
						 
				 
			
				
					
						
							
							
								Jakub Staszak 
							
						 
					 
					
						
						
							
						
						b75209cb66 
					 
					
						
						
							
							Simplify code. No functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166392  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-21 15:29:19 +00:00 
						 
				 
			
				
					
						
							
							
								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