Nadav Rotem 
							
						 
					 
					
						
						
							
						
						353476cbbb 
					 
					
						
						
							
							Fix PR16797 - Support PHINodes with multiple inputs from the same basic block.  
						
						... 
						
						
						
						Do not generate new vector values for the same entries because we know that the incoming values
from the same block must be identical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188185  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-08-12 17:46:44 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						f2855f8886 
					 
					
						
						
							
							SLPVectorizer: Fix PR16777. PHInodes may use multiple extracted values that come from different blocks.  
						
						... 
						
						
						
						Thanks Alexey Samsonov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187663  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-08-02 18:40:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						79c6bee7a9 
					 
					
						
						
							
							SLPVectorier: update the debug location for the new instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187363  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-29 18:18:46 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						3202f6cdb9 
					 
					
						
						
							
							Don't vectorize when the attribute NoImplicitFloat is used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187340  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-29 05:13:00 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						1aaaf34154 
					 
					
						
						
							
							Update the comment  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187316  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-27 23:28:47 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						67a38a2875 
					 
					
						
						
							
							SLP Vectorier:  Don't vectorize really short chains because they are already handled by the SelectionDAG store-vectorizer, which does a better job in deciding when to vectorize.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-26 23:07:55 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						a629c3a4f0 
					 
					
						
						
							
							SLP Vectorizer: Disable the vectorization of non power of two chains, such as <3 x float>, because we dont have a good cost model for these types.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187265  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-26 22:53:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						62657090de 
					 
					
						
						
							
							When we vectorize across multiple basic blocks we may vectorize PHINodes that create a cycle. We already break the cycle on phi-nodes, but arithmetic operations are still uplicated. This patch adds code that checks if the operation that we are vectorizing was vectorized during the visit of the operands and uses this value if it can.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186883  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-22 22:18:07 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						4d11bbd4dd 
					 
					
						
						
							
							Delete unused helper functions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186808  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-22 05:19:22 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						68ccbf648e 
					 
					
						
						
							
							Revert a part of r186420. Don't forbid multiple store chains that merge.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186786  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-21 06:12:57 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						73d9653cec 
					 
					
						
						
							
							fix an 80-col line.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186733  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-19 23:14:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						4e92ea655c 
					 
					
						
						
							
							Use LLVMs ADTs that improve the compile time of this pass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186732  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-19 23:12:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						dc4ddd3201 
					 
					
						
						
							
							SLPVectorizer: Improve the compile time of isConsecutive by reordering the conditions that check GEPs and eliminate two of the calls to accumulateConstantOffset.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186731  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-19 23:11:15 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						39f59f4d95 
					 
					
						
						
							
							Handle constants without going through SCEV.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186593  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-18 18:34:21 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						dfacdd04cd 
					 
					
						
						
							
							SLPVectorizer: Speedup isConsecutive by manually checking GEPs with multiple indices.  
						
						... 
						
						
						
						This brings the compile time of the SLP-Vectorizer to about 2.5% of OPT for my testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186592  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-18 18:20:45 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						5b35d44592 
					 
					
						
						
							
							SLPVectorizer: Speedup isConsecutive (that checks if two addresses are consecutive in memory) by checking for additional patterns that don't need to go through SCEV.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186563  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-18 04:33:20 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						3a79975169 
					 
					
						
						
							
							Fix a comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186541  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-17 22:41:16 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						e65b219edb 
					 
					
						
						
							
							Add a micro optimization to catch cases where the PtrA equals PtrB.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186531  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-17 19:52:25 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						a38edf071d 
					 
					
						
						
							
							SLPVectorizer: Accelerate the isConsecutive check by replacing the subtraction of the two values with a simple SCEV expression that adds the offset to one of the pointers that we compare.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186479  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-17 00:48:31 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						71cc5e4ea2 
					 
					
						
						
							
							flip the scev minus direction to simplify the code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186466  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-16 22:57:06 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						7c8a26030f 
					 
					
						
						
							
							SLPVectorizer: Improve the compile time of isConsecutive by adding a simple constant-gep check before using SCEV.  
						
						... 
						
						
						
						This check does not always work because not all of the GEPs use a constant offset, but it happens often enough to reduce the number of times we use SCEV.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186465  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-16 22:51:07 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						21508bf853 
					 
					
						
						
							
							SLPVectorizer: Reduce the compile time of the consecutive store lookup.  
						
						... 
						
						
						
						Process groups of stores in chunks of 16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186420  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-16 15:25:17 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						135e81efe3 
					 
					
						
						
							
							PR16628: Fix a bug in the code that merges compares.  
						
						... 
						
						
						
						Compares return i1 but they compare different types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186359  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-15 22:52:48 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						6611eaa32f 
					 
					
						
						
							
							SLPVectorizer: change the order in which we search for vectorization candidates. Do stores first and PHIs second.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186277  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-14 06:15:46 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						523cd85b50 
					 
					
						
						
							
							SLPVectorizer: Sink and enable CSE for ExtractElements.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186145  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-12 06:09:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						931b861e3d 
					 
					
						
						
							
							SLPVectorize: Replace the code that checks for vectorization candidates in successor blocks with code that scans PHINodes.  
						
						... 
						
						
						
						Before we could vectorize PHINodes scanning successors was a good way of finding candidates. Now we can vectorize the phinodes which is simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186139  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-12 00:04:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						d6f0c34273 
					 
					
						
						
							
							Remove an argument that we dont use anymore.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186116  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-11 20:56:13 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						ace9ed50b5 
					 
					
						
						
							
							Fix a warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186064  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-11 05:39:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						a8608b8dfd 
					 
					
						
						
							
							SLPVectorizer: refactor the code that places extracts. Place the code that decides where to put extracts in the build-tree phase. This allows us to take the cost of the extracts into account.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186058  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-11 04:54:05 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						30bbf070a2 
					 
					
						
						
							
							Fix PR16571, which is a bug in the code that checks that all of the types in the bundle are uniform.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185970  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-09 21:38:08 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						29b7419428 
					 
					
						
						
							
							Set the default insert point to the first instruction, and not to end()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185953  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-09 17:55:36 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						f564efa591 
					 
					
						
						
							
							This patch changes the saved IRBuilder insert point from BasicBlock::iterator to AssertingVH.  
						
						... 
						
						
						
						Commit 185883 fixes a bug in the IRBuilder that should fix the ASan bot. AssertingVH can help in exposing some RAUW problems.
Thanks Ben and Alexey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185886  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-08 23:31:13 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						c7ffbc019f 
					 
					
						
						
							
							Clear the builder insert point between tree-vectorization phases.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185777  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-07 14:57:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						369cc938d2 
					 
					
						
						
							
							SLPVectorizer: Implement DCE as part of vectorization.  
						
						... 
						
						
						
						This is a complete re-write if the bottom-up vectorization class.
Before this commit we scanned the instruction tree 3 times. First in search of merge points for the trees. Second, for estimating the cost. And finally for vectorization.
There was a lot of code duplication and adding the DCE exposed bugs. The new design is simpler and DCE was a part of the design.
In this implementation we build the tree once. After that we estimate the cost by scanning the different entries in the constructed tree (in any order). The vectorization phase also works on the built tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-07 06:57:07 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						6227d5c690 
					 
					
						
						
							
							Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185606  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-04 01:31:24 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						d4a9ebc734 
					 
					
						
						
							
							We preserve the CFG and some of the analysis passes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-29 05:38:15 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						08e20fbea1 
					 
					
						
						
							
							Update docs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185250  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-29 05:37:19 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						ac26786846 
					 
					
						
						
							
							SLP Vectorizer:  Add support for trees with external users.  
						
						... 
						
						
						
						To support this we have to insert 'extractelement' instructions to pick the right lane.
We had this functionality before but I removed it when we moved to the multi-block design because it was too complicated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185230  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-28 22:07:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						9367c79e62 
					 
					
						
						
							
							No need to use a Set when a vector would do.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185047  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-27 00:14:13 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						70d695801a 
					 
					
						
						
							
							SLP: When searching for vectorization opportunities scan the blocks in post-order because we grow chains upwards.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185041  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-26 23:44:45 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						1e1c694dcd 
					 
					
						
						
							
							SLP: Dont erase instructions during vectorization because it prevents the outerloops from iterating over the instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185040  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-26 23:43:23 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						e26fa2dd73 
					 
					
						
						
							
							Erase all of the instructions that we RAUWed  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184969  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-26 17:16:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						29acf7e03a 
					 
					
						
						
							
							Do not add cse-ed instructions into the visited map because we dont want to consider them as a candidate for replacement of instructions to be visited.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184966  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-26 16:54:53 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						805e8a01fe 
					 
					
						
						
							
							SLPVectorizer: support slp-vectorization of PHINodes between basic blocks  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184888  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-25 23:04:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						58bf5ea452 
					 
					
						
						
							
							Fix a typo in the code that collected the costs recursively.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184827  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-25 05:30:56 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						f4b0e81085 
					 
					
						
						
							
							Rename the variable to fix a warning. Thanks Andy Gibbs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184749  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-24 15:59:47 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						25961b469a 
					 
					
						
						
							
							SLP Vectorizer: Add support for vectorizing parts of the tree.  
						
						... 
						
						
						
						Untill now we detected the vectorizable tree and evaluated the cost of the
entire tree.  With this patch we can decide to trim-out branches of the tree
that are not profitable to vectorizer.
Also, increase the max depth from 6 to 12. In the worse possible case where all
of the code is made of diamond-shaped graph this can bring the cost to 2**10,
but diamonds are not very common.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184681  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-24 02:52:43 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						722b0a4d29 
					 
					
						
						
							
							SLP Vectorizer: Fix a bug in the code that does CSE on the generated gather sequences.  
						
						... 
						
						
						
						Make sure that we don't replace and RAUW two sequences if one does not dominate the other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-23 21:57:27 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						787ad64b98 
					 
					
						
						
							
							SLP Vectorizer: Erase instructions outside the vectorizeTree method.  
						
						... 
						
						
						
						The RAII builder location guard is saving a reference to instructions, so we can't erase instructions during vectorization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184671  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-23 19:38:56 +00:00 
						 
				 
			
				
					
						
							
							
								Nadav Rotem 
							
						 
					 
					
						
						
							
						
						6959f08f44 
					 
					
						
						
							
							SLP Vectorizer: Implement a simple CSE optimization for the gather sequences.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184660  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-06-23 06:15:46 +00:00