Jakob Stoklund Olesen 
							
						 
					 
					
						
						
							
						
						e10fff6f88 
					 
					
						
						
							
							Prevent infinite growth of SmallPtrSet instances.  
						
						... 
						
						
						
						Rehash but don't grow when full of tombstones.
Patch by José Fonseca!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128566  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-30 18:32:48 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						ab4c366274 
					 
					
						
						
							
							Spelling fix: consequtive -> consecutive.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125563  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-15 09:23:02 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						476b242fe7 
					 
					
						
						
							
							Add missing standard headers. Patch by Joerg Sonnenberger!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122193  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-19 20:43:38 +00:00 
						 
				 
			
				
					
						
							
							
								Michael J. Spencer 
							
						 
					 
					
						
						
							
						
						1f6efa3996 
					 
					
						
						
							
							Merge System into Support.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-29 18:16:10 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						a71f0e1f2a 
					 
					
						
						
							
							Rename NextPowerOfTwo to RoundUpToPowerOfTwo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107297  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 17:24:28 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						2e502577ab 
					 
					
						
						
							
							Clarify that the NextPowerOfTwo template is idempotent.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 15:29:46 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						2a8bf425bd 
					 
					
						
						
							
							Rather than giving SmallPtrSetImpl a member field SmallArray which is magically  
						
						... 
						
						
						
						replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a
pointer to the start of the storage, and have SmallPtrSet pass in the value to use.
This has the disadvantage that SmallPtrSet becomes bigger by one pointer.  It has
the advantage that it no longer uses tricky C++ rules, and is clearly correct while
I'm not sure the previous version was.  This was inspired by g++-4.6 pointing out
that SmallPtrSetImpl was writing off the end of SmallArray, which it was.  Since
SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to
valid memory.  But it was writing off the end of the declared array type - sounds
kind of dubious to me, like it sounded dubious to g++-4.6.  Maybe g++-4.6 is wrong
and this construct is perfectly valid and correctly compiled by all compilers, but
I think it is better to avoid the whole can of worms by avoiding this construct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-30 15:02:37 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						871dc240d0 
					 
					
						
						
							
							Fix a buffer overflow noticed by gcc-4.6: zero is written into  
						
						... 
						
						
						
						SmallArray[SmallSize] in the SmallPtrSetIteratorImpl, and this is
one off the end of the array.  For those who care, right now gcc
warns about writing off the end because it is confused about the
declaration of SmallArray as having length 1 in the parent class
SmallPtrSetIteratorImpl.  However if you tweak code to unconfuse
it, then it still warns about writing off the end of the array,
because of this buffer overflow.  In short, even with this fix
gcc-4.6 will warn about writing off the end of the array, but now
that is only because it is confused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107200  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-29 20:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Duncan Sands 
							
						 
					 
					
						
						
							
						
						05b0b44f8a 
					 
					
						
						
							
							NextPowerOfTwo was already used to ensure that SmallSizePowTwo is a power  
						
						... 
						
						
						
						of two, no need to do it a second time (NextPowerOfTwo is idempotent).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107199  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-29 20:05:34 +00:00 
						 
				 
			
				
					
						
							
							
								Bob Wilson 
							
						 
					 
					
						
						
							
						
						252968a76f 
					 
					
						
						
							
							Fix a comment typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96027  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-02-12 22:34:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						8b67f774e9 
					 
					
						
						
							
							Move DataTypes.h to include/llvm/System, update all users. This breaks the last  
						
						... 
						
						
						
						direct inclusion edge from System to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-10-26 01:35:46 +00:00 
						 
				 
			
				
					
						
							
							
								Douglas Gregor 
							
						 
					 
					
						
						
							
						
						7c718222cd 
					 
					
						
						
							
							Make SmallPtrSet iterators real iterators  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75073  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-08 23:53:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8ee1b5e916 
					 
					
						
						
							
							rename PointerLikeTypeInto to PointerLikeTypeTraits, add trait for  
						
						... 
						
						
						
						# low bits free, and move to its own header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67973  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-29 00:39:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1717f3af08 
					 
					
						
						
							
							declare everything as class to avoid angering the VC++ gods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67931  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-28 07:48:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6de6030718 
					 
					
						
						
							
							add a traits class for SmallPtrSet that allows us to stick things that are  
						
						... 
						
						
						
						"basically pointers" into it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67930  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-28 07:44:53 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						5471a00977 
					 
					
						
						
							
							Change several SmallPtrSetImpl members from public to protected,  
						
						... 
						
						
						
						to make the encapsulation more clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64017  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-07 16:12:23 +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 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						34cd4a484e 
					 
					
						
						
							
							Fix more -Wshorten-64-to-32 warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-05 18:30:58 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						950a4c40b8 
					 
					
						
						
							
							Add explicit keywords.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-03-25 22:06:05 +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 
							
						 
					 
					
						
						
							
						
						373a733be0 
					 
					
						
						
							
							make smallptrset more const and type correct, which caught a few  
						
						... 
						
						
						
						minor bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43782  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-06 22:12:43 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						ebf0303810 
					 
					
						
						
							
							Properly use const qualifiers  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41111  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-15 21:12:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						42e4bdf257 
					 
					
						
						
							
							When clearing a SmallPtrSet, if the set had a huge capacity, but the  
						
						... 
						
						
						
						contents of the set were small, deallocate and shrink the set.  This
avoids having us to memset as much data, significantly speeding up
some pathological cases.  For example, this speeds up the verifier
from 0.3899s to 0.0763 (5.1x) on the testcase from PR1432 in a 
release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40837  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-05 07:32:14 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e992a56ae9 
					 
					
						
						
							
							Allow SmallPtrSet to hold pointers to const data.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40556  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-27 18:07:02 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						845b31de0c 
					 
					
						
						
							
							Unbreak the build by putting calls to free into the implementation file and  
						
						... 
						
						
						
						having that implementation file #include <cstdlib>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39952  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-17 02:16:12 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						1629a1fa87 
					 
					
						
						
							
							Use realloc() to (potentially) resize the contents of SmallPtrSet in place.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39926  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-16 21:27:44 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						4d6f96d699 
					 
					
						
						
							
							Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy  
						
						... 
						
						
						
						ctor while I'm at it.
Thanks to Chris Lattner for help with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38470  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-09 20:59:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						95fd3189f8 
					 
					
						
						
							
							work around an aparent gcc name resolution bug by  
						
						... 
						
						
						
						detemplatizing this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38461  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-09 17:11:53 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						91f0158d4d 
					 
					
						
						
							
							implement operator= for smallptrset  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38460  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-07-09 16:54:03 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						ac58a16f85 
					 
					
						
						
							
							Fix PR1329.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36016  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-14 21:50:21 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						086f186267 
					 
					
						
						
							
							add range version of insert()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35572  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-02 01:21:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ab8fea5283 
					 
					
						
						
							
							add iterator range version of ctor.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34899  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-04 04:04:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						155b6220f7 
					 
					
						
						
							
							Fix PR1234 by working around a compiler bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34845  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-02 18:16:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e237cf934f 
					 
					
						
						
							
							do not let the table fill up with tombstones.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33973  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-07 01:11:25 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ea830ef21f 
					 
					
						
						
							
							provide a definition for uintptr_t  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33592  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 23:52:33 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						894d264f3e 
					 
					
						
						
							
							add some missing API  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33583  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 08:19:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0b930852cf 
					 
					
						
						
							
							implement SmallPtrSet::erase  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33581  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 07:59:10 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						af3056c97e 
					 
					
						
						
							
							Fix a limitation of SmallPtrSet.  Before it would assert if the smallsize  
						
						... 
						
						
						
						was not a power of two.  Now it rounds up to the next power of two internally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33580  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 07:52:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						18b69106b7 
					 
					
						
						
							
							add some comments on the algorithm  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33579  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 07:24:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c95dc987e9 
					 
					
						
						
							
							Add a new SmallSet ADT specialized for pointers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33577  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-27 07:10:46 +00:00