llvm-6502/lib/Transforms
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
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
InstCombine InstCombineAndOrXor.cpp: Escape bracket in doxygen description. [-Wdocumentation] 2012-11-15 00:35:50 +00:00
Instrumentation [TSan] fix indentation 2012-11-14 14:33:59 +00:00
IPO Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
Scalar Fix a crash observed by Shuxin Yang. The issue here is that LinearizeExprTree, 2012-11-15 09:58:38 +00:00
Utils Figure out <size> argument of llvm.lifetime intrinsics at the moment they are created (during function inlining) 2012-11-13 07:15:32 +00:00
Vectorize Replace std::vector -> SmallVector in BBVectorize 2012-11-14 19:53:27 +00:00
CMakeLists.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LLVMBuild.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
Makefile Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00