Revision: 126020 Author: clattner Date: 2007-04-12 11:50:47 -0700 (Thu, 12 Apr 2007)
Log Message: ----------- Add TLS support, patch by Lauro, thanks! Modified Paths: -------------- apple-local/branches/llvm/gcc/llvm-backend.cpp Modified: apple-local/branches/llvm/gcc/llvm-backend.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-04-12 18:36:45 UTC (rev 126019) +++ apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-04-12 18:50:47 UTC (rev 126020) @@ -538,8 +538,6 @@ // FIXME: Support alignment on globals: DECL_ALIGN. // FIXME: DECL_PRESERVE_P indicates the var is marked with attribute 'used'. - if (TREE_CODE(decl) == VAR_DECL && DECL_THREAD_LOCAL(decl)) - sorry("thread-local data not supported by LLVM yet!"); // Global register variables don't turn into LLVM GlobalVariables. if (TREE_CODE(decl) == VAR_DECL && DECL_REGISTER(decl)) @@ -589,7 +587,11 @@ // Set the initializer. GV->setInitializer(Init); - + + // Set thread local (TLS) + if (TREE_CODE(decl) == VAR_DECL && DECL_THREAD_LOCAL(decl)) + GV->setThreadLocal(true); + // Set the linkage. if (!TREE_PUBLIC(decl)) { GV->setLinkage(GlobalValue::InternalLinkage); @@ -876,6 +878,10 @@ } } + // Set thread local (TLS) + if (TREE_CODE(decl) == VAR_DECL && DECL_THREAD_LOCAL(decl)) + GV->setThreadLocal(true); + SET_DECL_LLVM(decl, GV); } timevar_pop(TV_LLVM_GLOBALS); _______________________________________________ llvm-commits mailing list [EMAIL PROTECTED] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits