Filip Pizlo 
							
						 
					 
					
						
						
							
						
						e94e0984df 
					 
					
						
						
							
							Make PrettyStackTraceEntry use ManagedStatic for its ThreadLocal.  
						
						... 
						
						
						
						This was somewhat tricky because ~PrettyStackTraceEntry() may run after 
llvm_shutdown() has been called. This is rare and only happens for a common idiom 
used in the main() functions of command-line tools. This works around the idiom by 
skipping the stack clean-up if the PrettyStackTraceHead ManagedStatic is not 
constructed (i.e. llvm_shutdown() has been called).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190730  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-09-13 22:59:47 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						4d0a9ff365 
					 
					
						
						
							
							Add support for tsan annotations (thread sanitizer, a valgrind-based tool).  
						
						... 
						
						
						
						These annotations are disabled entirely when either ENABLE_THREADS is off, or
building a release build. When enabled, they add calls to functions with no
statements to ManagedStatic's getters.
Use these annotations to inform tsan that the race used inside ManagedStatic
initialization is actually benign. Thanks to Kostya Serebryany for helping
write this patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144567  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-11-14 20:50:16 +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 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						2da497902a 
					 
					
						
						
							
							Remove dead code.  ManagedCleanup is unused, and contained a serious bug in that  
						
						... 
						
						
						
						the provided cleanup function is never actually called.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113284  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-07 20:53:39 +00:00 
						 
				 
			
				
					
						
							
							
								Alisdair Meredith 
							
						 
					 
					
						
						
							
						
						80c8c31782 
					 
					
						
						
							
							Resolve undefined behaviour when ManagedStatic is instantiated with a fixed-length array type.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75149  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-09 17:26:16 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						94fefe27f5 
					 
					
						
						
							
							Fences are expensive.  Avoid doing them when we're not in multithreaded mode.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73777  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-19 17:50:11 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e3cd5ca7e7 
					 
					
						
						
							
							Move Threading.[h|cpp] from Support to System.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73707  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-18 16:54:52 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						4c7ac18fc9 
					 
					
						
						
							
							Split the thread-related APIs out into their own file, and add a few more  
						
						... 
						
						
						
						calls for convenience.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73512  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-06-16 17:33:51 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						6afe2fa288 
					 
					
						
						
							
							Have llvm_start_multithreaded return a bool indicating whether multithreaded  
						
						... 
						
						
						
						initialization succeeded or not, rather than just asserting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72182  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-20 21:03:06 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						b4d97b78df 
					 
					
						
						
							
							Add llvm_start_multithreaded(), which starts up the LLVM internals in thread-safe mode.  Provide double-check locking  
						
						... 
						
						
						
						initialization of ManagedStatic's when running in thread-safe mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72151  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-20 00:39:20 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						18ad4cb95d 
					 
					
						
						
							
							Back out the thread-safe ManagedStatic for now.  Too many people have too many problems with it for the moment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71931  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-16 07:20:52 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						ca37b511fa 
					 
					
						
						
							
							Factor out some common code, fix more typoes, and add a memory fence that might be needed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71853  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-15 08:22:07 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						d300a28c40 
					 
					
						
						
							
							Fix an unfortunate typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71852  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-15 08:07:23 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						5f00b0c5b6 
					 
					
						
						
							
							Now with working on Leopard!  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71819  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-15 00:01:40 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						87ba22dc67 
					 
					
						
						
							
							Make ManagedStatic threadsafe by using atomic operations.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71796  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-05-14 21:26:50 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						fe2cce63aa 
					 
					
						
						
							
							Removed trailing whitespace.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-20 22:51:36 +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 
							
						 
					 
					
						
						
							
						
						b4d7e35dde 
					 
					
						
						
							
							add a way to register an arbitrary cleanup function.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34442  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-20 06:08:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						68ce9ba666 
					 
					
						
						
							
							add helper method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34155  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-10 19:54:24 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						bdbf5fd1c9 
					 
					
						
						
							
							add a helper to call llvm_shutdown()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32249  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-12-06 01:01:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						771cbf30bc 
					 
					
						
						
							
							new helper class to provide more explicit management of static ctor/dtors.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30638  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-09-28 00:31:55 +00:00