Chandler Carruth 
							
						 
					 
					
						
						
							
						
						de2fae4c7b 
					 
					
						
						
							
							Third try at fixing this. ;] Go back to using std::remove_if, which has  
						
						... 
						
						
						
						most of the behavior we want, but wrap the predicate in one which erases
elements from the set if they pass the predicate. Oh what I wouldn't
give for a lambda here.
Let me know if the predicate wrapping is too much magic. ;]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165076  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-03 01:04:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						75eac5f0eb 
					 
					
						
						
							
							Switch the SetVector::remove_if implementation to use partition which  
						
						... 
						
						
						
						preserves the values of the relocated entries, unlikely remove_if. This
allows walking them and erasing them.
Also flesh out the predicate we are using for this to support the
various constraints actually imposed on a UnaryPredicate -- without this
we can't compose it with std::not1.
Thanks to Sean Silva for the review here and noticing the issue with
std::remove_if.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165073  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-03 00:03:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						5c5b3cf5b8 
					 
					
						
						
							
							Teach the new SROA to handle cases where an alloca that has already been  
						
						... 
						
						
						
						scheduled for processing on the worklist eventually gets deleted while
we are processing another alloca, fixing the original test case in
PR13990.
To facilitate this, add a remove_if helper to the SetVector abstraction.
It's not easy to use the standard abstractions for this because of the
specifics of SetVectors types and implementation.
Finally, a nice small test case is included. Thanks to Benjamin for the
fantastic reduced test case here! All I had to do was delete some empty
basic blocks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165065  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-02 22:46:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						5d37976090 
					 
					
						
						
							
							Clean up these doxygen comments to follow the proposed new style. This  
						
						... 
						
						
						
						also makes it more consistent with Clang and several passes' doxygen
style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165064  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-10-02 22:46:40 +00:00 
						 
				 
			
				
					
						
							
							
								Sylvestre Ledru 
							
						 
					 
					
						
						
							
						
						94c22716d6 
					 
					
						
						
							
							Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See:  http://en.wikipedia.org/wiki/If_and_only_if  Commit 164767  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-09-27 10:14:43 +00:00 
						 
				 
			
				
					
						
							
							
								Sylvestre Ledru 
							
						 
					 
					
						
						
							
						
						7e2c793a2b 
					 
					
						
						
							
							Fix a typo 'iff' => 'if'  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-09-27 09:59:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f5c9bd07bc 
					 
					
						
						
							
							add a method to improve compatibility with SmallVector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146928  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-12-20 00:03:41 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						df046f078e 
					 
					
						
						
							
							Make SetVector's remove indicate whether it actually removed something.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114612  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-22 23:20:04 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						f2aac4db4e 
					 
					
						
						
							
							Implement operator== and operator!= for SetVector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105508  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-05 00:26:02 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						a2769a33c9 
					 
					
						
						
							
							Fixed lint errors:  
						
						... 
						
						
						
						* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-20 22:20:18 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						3a54b3dc87 
					 
					
						
						
							
							Removed trailing whitespace.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62000  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-09 19:25:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ed47a1335 
					 
					
						
						
							
							Don't attribute in file headers anymore.  See llvmdev for the  
						
						... 
						
						
						
						discussion of this change.  Boy are my fingers tired. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 19:59:42 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5fcaf3ed14 
					 
					
						
						
							
							Make SmallSetVector useful  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33854  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-04 00:30:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						337cde0d5a 
					 
					
						
						
							
							Convert SetVector to be a true adapter class and add SmallSetVector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33846  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-03 23:56:03 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						cf48cab945 
					 
					
						
						
							
							For PR1094:  
						
						... 
						
						
						
						Make the SetVector::iterator be the vector's const_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-17 02:22:18 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						9769ab2226 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:19:05 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fbb719c7f0 
					 
					
						
						
							
							Use explicit std:: qualification to avoid relying on Koenig lookup, which  
						
						... 
						
						
						
						VC++ does not do properly.  Thanks to Morten Ofstad for the patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16955  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-13 15:11:23 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						70e2d38361 
					 
					
						
						
							
							Fix the replace method to assert if an item was erased from the set but not  
						
						... 
						
						
						
						found in the vector. Previously, it just ignored this condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16296  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-11 20:38:25 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						0bdc620c16 
					 
					
						
						
							
							Implement the remove method for deleting entries from the SetVector.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16283  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-11 04:25:58 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						551ccae044 
					 
					
						
						
							
							Changes For Bug 352  
						
						... 
						
						
						
						Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-01 22:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						3638e9918c 
					 
					
						
						
							
							Fix typo in comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-29 04:22:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f90fcaf572 
					 
					
						
						
							
							Add back() and pop_back() methods to SetVector  
						
						... 
						
						
						
						Move clear to the end of the class
Add assertions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15203  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-25 11:07:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e87754250 
					 
					
						
						
							
							Give SetVector range support  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14855  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-15 08:18:31 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						800473c8df 
					 
					
						
						
							
							Get rid of some cruft in the insert method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14704  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-08 21:50:33 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						4bb2867bc1 
					 
					
						
						
							
							First version of a vector with uniqueness constraints (or a set with  
						
						... 
						
						
						
						deterministic, insertion-order iteration).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-08 19:36:21 +00:00