llvm/lib/VMCore
Hans Wennborg 1839858983 Make GlobalOpt be conservative with TLS variables (PR14309)
For global variables that get the same value stored into them
everywhere, GlobalOpt will replace them with a constant. The problem is
that a thread-local GlobalVariable looks like one value (the address of
the TLS var), but is different between threads.

This patch introduces Constant::isThreadDependent() which returns true
for thread-local variables and constants which depend on them (e.g. a GEP
into a thread-local array), and teaches GlobalOpt not to track such
values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168037 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 11:40:00 +00:00
..
AsmWriter.cpp Special calling conventions for Intel OpenCL built-in library. 2012-10-24 14:46:16 +00:00
Attributes.cpp Change ForceSizeOpt attribute into MinSize attribute 2012-10-30 16:32:52 +00:00
AttributesImpl.h Have AttributesImpl defriend the Attributes class. 2012-10-16 05:57:28 +00:00
AutoUpgrade.cpp Attributes Rewrite 2012-10-15 04:46:55 +00:00
BasicBlock.cpp
CMakeLists.txt Don't explicitly require RTTI and EH. 2012-10-26 12:15:29 +00:00
ConstantFold.cpp Fix isEliminableCastPair to work correctly in the presence of pointers 2012-10-30 16:03:32 +00:00
ConstantFold.h
Constants.cpp Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
ConstantsContext.h
Core.cpp Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. 2012-10-15 20:35:56 +00:00
DataLayout.cpp Revert some redundant parts of r142605. 2012-11-14 09:04:56 +00:00
DebugInfo.cpp Fix PR14016. 2012-10-09 08:13:15 +00:00
DebugLoc.cpp
DIBuilder.cpp Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
Dominators.cpp 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 2012-09-27 10:14:43 +00:00
Function.cpp Attributes Rewrite 2012-10-15 04:46:55 +00:00
GCOV.cpp Don't do actual work inside an assert statement. Fixes PR11760! 2012-09-23 03:58:21 +00:00
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp
Instructions.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00
IntrinsicInst.cpp
IRBuilder.cpp Add IRBuilder code for adding !tbaa.struct metadata tags to llvm.memcpy calls. 2012-09-26 22:17:14 +00:00
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp Fix use after free when deleting attributes in a chained folding set. 2012-10-14 08:48:40 +00:00
LLVMContextImpl.h Move the AttributesImpl header file into the VMCore directory so that it can be opaque. 2012-10-15 05:40:12 +00:00
Makefile Don't explicitly require RTTI and EH. 2012-10-26 12:15:29 +00:00
Metadata.cpp
Module.cpp
Pass.cpp 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 2012-09-27 10:14:43 +00:00
PassManager.cpp Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's. 2012-11-15 00:14:15 +00:00
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
TargetTransformInfo.cpp Lowercase the argument for TargetTransformInfo so it's consistent with all other passes. 2012-10-26 18:46:15 +00:00
Type.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00
TypeFinder.cpp
Use.cpp
User.cpp Fix ODR violations: a virtual function must be defined, even if it's never 2012-10-24 00:30:41 +00:00
Value.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp Replace calls to getSizeInBits with getExtendedSizeInBits since its already known its an extended type. 2012-09-26 07:11:42 +00:00
Verifier.cpp Relax the restrictions on vector of pointer types, and vector getelementptr. 2012-11-13 12:59:33 +00:00