llvm-6502/lib/Transforms/IPO
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
..
ArgumentPromotion.cpp Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers. 2012-10-15 07:29:08 +00:00
BarrierNoopPass.cpp Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
CMakeLists.txt Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
ConstantMerge.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
DeadArgumentElimination.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
ExtractGV.cpp llvm-extract changes linkages so that functions on both sides of the 2012-10-29 01:59:03 +00:00
FunctionAttrs.cpp Replace some instances of UniqueVector with SetVector, which is slightly cheaper. 2012-10-31 13:45:49 +00:00
GlobalDCE.cpp Implement the isSafeToDiscardIfUnused predicate and use it in globalopt and 2012-06-14 22:48:13 +00:00
GlobalOpt.cpp Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
InlineAlways.cpp Create enums for the different attributes. 2012-10-09 07:45:08 +00:00
Inliner.cpp Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change. 2012-10-10 03:12:49 +00:00
InlineSimple.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
Internalize.cpp Change the internalize pass to internalize all symbols when given an empty 2012-10-26 18:47:48 +00:00
IPConstantPropagation.cpp
IPO.cpp Change the internalize pass to internalize all symbols when given an empty 2012-10-26 18:47:48 +00:00
LLVMBuild.txt
LoopExtractor.cpp Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
Makefile
MergeFunctions.cpp Revert the series of commits starting with r166578 which introduced the 2012-11-01 08:07:29 +00:00
PartialInlining.cpp Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
PassManagerBuilder.cpp 80-col 2012-10-30 18:37:43 +00:00
PruneEH.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
StripDeadPrototypes.cpp
StripSymbols.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00